No BSD License  

Highlights from
BPSK Simulator for Low Rate Transmisions

image thumbnail
from BPSK Simulator for Low Rate Transmisions by César Delgado González
BPSK Simulator for didactical purposes. Systemic coding style.

constelacion(ruta, TX, fase, nTrama, bitsTrama, frec)
function constelacion(ruta, TX, fase, nTrama, bitsTrama, frec)
%------------------------------------------------------------------------
%|  function constelacion(ruta, TX, fase, nTrama, bitsTrama, frec)
%------------------------------------------------------------------------
%|    Funcin que representa un diagrama de ojos. Extrae la informacion
%|  de linea de os ficheros generados tanto por el transmisor como el 
%|  receptor BPSK
%|
%|       NO REALIZA VALIDACIN DE PARMETROS DE ENTRADA
%|
%|    Entradas:
%|       1.- RUTA= ruta donde se encuentran los ficheros.
%|
%|       2.- TX: entero que indica el tipo de representacion a realizar
%|                   0 = diagrama de ojos del RX a pantalla completa
%|                   1 = diagrama de ojos del TX a pantalla completa
%|                   2 = diagrama de ojos del TX en pantalla superior
%|                                          y RX en la pantalla inferior
%|                   3 = diagramas de ojos del TX y RX superpuestos en la
%|                       misma pantalla.
%|       3.- FASE        = Origen de fases
%|       4.- N_TRAMA     = entero con el nmero de trama a representar
%|       5.- BITS_TRAMA  = n de bits/trama
%|       6.- FREC        = vector fila [Rb fi fs].
%-------------------------------------------------------------------------
%   Autor: Cesar Delgado
%   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

% 1.- Calculos previos
%---------------------
%>>>>>> 1.1.- Forma de Representacion
Tbit = frec(3)/(frec(1)); % N muestras / bit.
N = 3;                    % N Periodos / ventana => Ojos
fase = fase*pi/180;


% 2.- Creamos y ubicamos la ventana 
%----------------------------------
switch TX,
     case 0,
         % 1.- Representamos Constelacion del Receptor   
         %--------------------------------------------
         %>>>>>> 1.1.- Extraemos seal de Linea del Receptor
        [b, signal] = extraeSignal(ruta, 7, nTrama, bitsTrama, frec, -1);         
        
        %>>>>>> 1.2.- Desplazamos segun origen de fases
        I = signal.*cos(fase+pi/4); %I = I./max(abs(I));
        Q = signal.*sin(fase+pi/4); %Q = Q./max(abs(Q));
        
        %>>>>>> 1.3.- Calculamos energias de bit
        I = enerBit(I,Tbit);
        Q = enerBit(Q,Tbit);
        
        %>>>>>> 1.4.- Representamos seal        
        fig = scatterplot(I+j.*Q, 1,0,'bd');
        hold on;        
        
        
        % 2.- Representamos Constelacion del Transmisor
        %--------------------------------------------
        %>>>>>> 2.1.- Extraemos seal de Linea del Transmisor
        I = []; Q = [];
        [b, I] = extraeSignal(ruta, 2,  nTrama, bitsTrama, frec, -1);        
        [b, Q] = extraeSignal(ruta, 3,  nTrama, bitsTrama, frec, -1);
        
        %>>>>>> 2.2.- Desplazamos segun origen de fases
        I = I.*cos(fase+pi/4); %I = I./max(abs(I));
        Q = Q.*sin(fase+pi/4); %Q = Q./max(abs(Q));   
        
        %>>>>>> 2.3.- Calculamos energias de bit
        I = enerBit(I,Tbit);
        Q = enerBit(Q,Tbit);
        
        %>>>>>> 2.4.- Representamos seal
        scatterplot(I+j.*Q, 1, 0, 'ro',fig); 
        legend('Receptor','Transmisor');               
        set(fig,'Visible','On','Number','off', ... 
                'Name','Constelacion: Banda Base del Transmisor y Receptor', ...
                'NextPlot','Replace');        
        grid on;
        hold off; 
        
        
      case 1, %%%%%%%%%%%% REPRESENTACION CONTELACION LABORATORIO
          
        % 1.- Representamos Constelacion IQ   
        %--------------------------------------------
        %>>>>>> 1.1.- Extraemos seal de Linea del Receptor
        [b, I] = extraeSignal(ruta, 2, nTrama, bitsTrama, frec, -1);         
        [b, Q] = extraeSignal(ruta, 3, nTrama, bitsTrama, frec, -1);                 
        
        %>>>>>> 1.2.- Calculamos energias de bit
        I = enerBit(I,Tbit);
        Q = enerBit(Q,Tbit);
        
        %>>>>>> 1.3.- Representamos seal
        fig = scatterplot(I+j.*Q, 1,0,'bd');
        hold on;      
        
        % 2.- Representamos Constelacion IQ compensadas
        %------------------------------------------------
        %>>>>>> 2.1.- Extraemos seal de Linea del Transmisor
        I = []; Q = [];
        [b, I] = extraeSignal(ruta, 4,  nTrama, bitsTrama, frec, -1);        
        [b, Q] = extraeSignal(ruta, 5,  nTrama, bitsTrama, frec, -1);
        
        %>>>>>> 2.2.- Calculamos energias de bit
        I = enerBit(I,Tbit);
        Q = enerBit(Q,Tbit);
        
        %>>>>>> 2.3.- Representamos seal
        scatterplot(I+j.*Q, 1, 0, 'ro',fig); 
        legend('IQ','IQ Compensadas');               
        set(fig,'Visible','On','Number','off', ... 
                'Name','Constelacion: Banda Base del Transmisor y Receptor', ...
                'NextPlot','Replace');        
        grid on;
        hold off;        
          
      otherwise, %%%%%%%%%% REPRESENTACION CONSTELACIONES SUPERPUESTAS
        
        % 1.- Representamos Constelacion del Receptor   
        %--------------------------------------------
        %>>>>>> 1.1.- Extraemos seal de Linea del Receptor
        [b, signal] = extraeSignal(ruta, 7, nTrama, bitsTrama, frec, -1);         
        
        %>>>>>> 1.2.- Desplazamos segun origen de fases
        I = signal.*cos(fase+pi/4); %I = I./max(abs(I));
        Q = signal.*sin(fase+pi/4); %Q = Q./max(abs(Q));
       
        %>>>>>> 1.3.- Calculamos energias de bit
        I = enerBit(I,Tbit);
        Q = enerBit(Q,Tbit);
        
        %>>>>>> 1.4.- Representamos seal
        fig = scatterplot(I+j.*Q, 1,0,'bd');
        hold on;    
        
        
        % 2.- Representamos Constelacion del Transmisor
        %--------------------------------------------
        %>>>>>> 2.1.- Extraemos seal de Linea del Transmisor
        I = []; Q = [];
        [b, I] = extraeSignal(ruta, 2,  nTrama, bitsTrama, frec, -1);        
        [b, Q] = extraeSignal(ruta, 3,  nTrama, bitsTrama, frec, -1);
        
        %>>>>>> 2.2.- Desplazamos segun origen de fases
        I = I.*cos(fase+pi/4); 
        Q = Q.*sin(fase+pi/4);    
        
        %>>>>>> 2.3.- Calculamos energias de bit
        I = enerBit(I,Tbit);
        Q = enerBit(Q,Tbit);
        
        %>>>>>> 2.4.- Representamos seal
        scatterplot(I+j.*Q, 1, 0, 'ro',fig); 
        legend('Receptor','Transmisor');               
        set(fig,'Visible','On','Number','off', ... 
                'Name','Constelacion: Banda Base del Transmisor y Receptor', ...
                'NextPlot','Replace');        
        grid on;
        hold off;        
        
end;

    



Contact us at files@mathworks.com