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.

leadLag.m
function [out, memoria, parametros] = leadLag(in, memoria, ...
                                             fs, primera, parametros)
%------------------------------------------------------------------------
%| function [out, memoria, parametros] = leadLag(in, memoria, ...
%|                                             fs, parametros)
%------------------------------------------------------------------------
%|   Funcin que simula la accin de un fltro Lead Lag activo. Se ha
%|  implementado empleando la transformacin bilineal.
%|
%|     Est diseada para filtrar una sola muestra y devolver
%|  las condiciones finales. Se debe llamar dentro de un bucle.
%|     Hay operaciones redundantes, ya que solo hara falta 
%|  realizarlas 1 vez y se harn tantas veces como iteraciones
%|  tenga el bucle. Se ha escogido as por legibilidad del cdigo.
%|  
%|    NO REALIZA VALIDACIN DE LOS PARMETROS DE ENTRADA
%|
%|    Entradas:
%|       1.- IN      =  muestra de la seal de entrada.
%|       2.- MEMORIA = vector fila con las condiciones a aplicar
%|       3.- FS      = frecuencia de muestreo
%|       4.- PRIMERA = bandera que indica si es la 1 iteracin
%|       5.- PARAMETROS = matriz que contiene todos lo parmetros
%|                        del receptor:
%|                 PLL                      : [ Kv  ,  Wn , Psi, resp ]
%|                 FILTRO-LAZO              : [ TAU1, TAU2,  0 , 0    ]
%|                 CTES. FILTRO-LAZO DIGITAL: [ b0  ,  b1 ,  1 , b1   ];
%|
%|     La matriz de parmetros est ideada para que el PLL conforme un bloque,
%|   del que el usuario solo debe conocer los parmetros tpicos del lazo del
%|   PLL (1 fila)
%|     El resto de parmetros los calcularn funciones particulares, de 
%|   esta forma es muy simple reemplazar el Lead-Lag empleado por otro
%|  filtro del lazo cualquiera o usar una transformacin Invariante al Impulso
%|  en lugar de una Bilineal.
%|
%|     Salidas:
%|       1.- OUT       = muestra de salida tras el filtrado
%|       2.- MEMORIA   = vector con las cond. finales
%|       3.- PARAMETROS = matriz con los parmetros del demodulador BPSK
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

% 1.- Clculo de las ctes. del filtro
%------------------------------------

pCTES = 3; % Posicin de los parmetros del filtro digital

if primera,
   pLEAD = 2;
   TAU1  = 1;
   TAU2   = 2;
   cte = 2*fs;
    
    % Numerador [b0 , b1]
    parametros(pCTES, 1:2) = [1+cte*parametros(pLEAD, TAU2) 1-cte*parametros(pLEAD, TAU2)]; 
    
    % Denominador [b0 , b1 , a0 , a1]
    parametros(pCTES, 3:4) = [1+cte*parametros(pLEAD, TAU1) 1-cte*parametros(pLEAD, TAU1)];    
    
    % Normalizacin [b0/a0 , bi/a0 , 1 , a1/a0]
    parametros(pCTES, 1:4) = parametros(pCTES, 1:4)./parametros(pCTES, 3);
 end;

% 2.- Filtrado
%-------------
out        = parametros(pCTES, 1) *in + memoria(1);
memoria(1) = parametros(pCTES, 2) *in - parametros(pCTES, 4) *out;

Contact us