No BSD License  

Highlights from
BPSK Simulator for Low Rate Transmisions

image thumbnail

BPSK Simulator for Low Rate Transmisions

by

 

01 Jun 2004 (Updated )

BPSK Simulator for didactical purposes. Systemic coding style.

constelacion.m
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