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.

cosenoAlzado.m
function [Linea, memoria, retardo]  = cosenoAlzado (PAM, fs, Rb, memoria,...
                                                        RollOff, primera)
%--------------------------------------------------------------------------
%  function [Linea, memoria, retardo]  = cosenoAlzado (PAM, fs, Rb,... 
%                                                      memoria, RollOff)
%--------------------------------------------------------------------------
%|     Funcion que realiza el filtrado coseno alzado de una
%|   seal PAM.
%|
%|   ENTRADAS
%|     1.- PAM      = seal PAM de entrada
%|     2.- FS       = frecuencia de muestreo
%|     3.- RB       = Rgimen binario
%|     4.- MEMORIA  = condiciones iniciales a aplicar en el filtro
%|     5.- ROLL_OFF = factor de Roll Off del filtro alzado.
%|                    Valor por defecto: 1
%|
%|   SALIDAS:
%|     1.- LINEA    = linea tras filtrado coseno alzado
%|     2.- MEMORIA  = condiciones finales del filtro coseno alzado
%|     3.- RETARDO  = retardo maximo introducido por el filtro.
%--------------------------------------------------------------------------
%   Autor: Cesar Delgado Gonzalez
%   Fecha: 19- Abril -2.004
%--------------------------------------------------------------------------

if nargin < 4
    Disp ('ERROR: en el numero de parametros de entrada de la funcion cosenoAlzado');
else
    if nargin < 5
       RollOff=1;
       primera=1;       
    elseif nargin < 6,
       primera=1;       
    end;
    
    % 1.- Diseo del filtro coseno alzado
    %-------------------------------------
   h = rcosfir(RollOff,[-3 3],round(fs/Rb),1);    
   
   retardo = 0;
   if primera,
        gd = grpdelay(h,1,fs,'whole');
        retardo = ceil(max(gd));       
    end;
        
    % 2.- Filtrado de la seal de entrada
    %------------------------------------
    %Linea = rcosflt(Y,fs,fd) es otra forma de calcular esto    
    [Linea, aux]= filter(h,1,PAM,memoria(1:length(h)-1)); 
    memoria(1:length(h)-1) = aux';    
    
    % 3.- Eliminamos retardo inicial
    %-------------------------------
    if primera,
        Linea = Linea(retardo+1:length(Linea));
    end;    
end    
        
   

Contact us