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.

leadLag(in, memoria, ...
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 at files@mathworks.com