%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% VALIDACIN DE PARMETROS DE GENERA CRC
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 1.- Validacin de Parmetros de Entrada
%----------------------------------------
% 1.1.- Nmero de parmetros de entrada
if nargin < 1
disp('ERROR: faltan parametros en generaCRC');
elseif isempty(trama)
disp('ERROR: trama vaca en generaCRC');
else
% 1.2.- Asignacin de valores por defecto en caso de omisin
if nargin < 2
codigo = 4;
tramo = 7;
metodo = 'hamming';
validados = 0;
elseif nargin < 3
tramo = 7;
metodo = 'hamming';
validados = 0;
elseif nargin < 4,
metodo = 'hamming';
validados = 0;
elseif nargin < 5,
validados = 0;
end;
% 1.3.- Conversin a vector fila
tamano = size(trama);
if tamano(1) > 1
trama = trama(:,1); % Nos quedamos con 1 columna
trama = trama'; % Convertimos a fila
end
% 1.4.- Se toman valores absolutos
codigo = abs(codigo);
tramo = abs(tramo);
% 1.5.- Validacin de Parmetros
if length(trama) < tramo
disp ('ERROR: no se puede escoger un tramo de ms longitud que la propia trama en generaCRC');
else
if ~validados
[validados, metodo, tramo, codigo] = ...
validaParametrosCRC(metodo, tramo, codigo, 1);
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
%%%%%%%%%%%%%% VALIDACIN DE PARMETROS DEL MODULADOR I-Q
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 1.- Comprobacin de Parmetros
%-------------------------------
% 1.1.- Numero de parametros introducidos
if nargin < 4
disp ('ERROR: faltan parmetros en la funcin moduladorIQ');
else
if nargin < 5
Rb = 2400;
RollOff = 0.5;
QPSK = 0;
fase = 0;
elseif nargin < 6
RollOff = 0.5;
QPSK = 0;
fase = 0;
elseif nargin < 7
QPSK = 0;
fase = 0;
elseif nargin < 8
fase = 0;
end;
% 1.2.- Trama se transforma a vector fila si no lo fuera
Tamano = size(trama);
if Tamano(1) > 1
trama = trama(:,1); % Nos quedamos con la 1 columna
trama = trama'; % Transformamos el vector fila en columna
end;
% 1.3.- Relacion entre frecuencias
FS_FI = 1; % Constantes
FI_RB = 2;
FS_RB = 3;
% 1.3.1.-La relacion fi/Rb ha de ser un numero
% entero y mayor de 10
relacion(FI_RB) = ceil(fi/Rb);
if relacion(FI_RB) < 2,
relacion(FI_RB) = 2;
end;
fi = relacion(FI_RB)*Rb;
% 1.3.2.- La relacion fs/fi debera ser constante
% y mayor de 2
relacion(FS_FI) = ceil(fs/Rb);
if relacion(FS_FI) < 2
relacion(FS_FI) = 4
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555
%%%%%%%%%%%%%% VALIDACIN DE PARMETROS DE DEMODULADOR I-Q
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% -- 1.1.- Valores por defecto
if (nargin < 3), % Reposo inicial por defecto
memoria = zeros(8,34);
N = 20;
parametros = zeros(4,3);
pPLL = 1;
pKv = 1;
pWn = 2;
pPsi = 3;
parametros(pPLL, pKv) = 5e4; % Hz/V
parametros(pPLL, pWn) = 30.8e3; % rad/sg
parametros(pPLL, pPsi) = 1/(sqrt(2));
elseif (nargin < 4),
N = 20;
parametros = zeros(4,3);
pPLL = 1;
pKv = 1;
pWn = 2;
pPsi = 3;
parametros(pPLL, pKv) = 5e4; % Hz/V
parametros(pPLL, pWn) = 30.8e3; % rad/sg
parametros(pPLL, pPsi) = 1/(sqrt(2));
elseif (nargin < 5), % Parmetros del PLL por defecto
if N>50, N=50; end;
parametros = zeros(4,3);
pPLL = 1;
pKv = 1;
pWn = 2;
pPsi = 3;
parametros(pPLL, pKv) = 5e4; % Hz/V
parametros(pPLL, pWn) = 30.8e3; % rad/sg
parametros(pPLL, pPsi) = 1/(sqrt(2));
else
if isempty(memoria), memoria = zeros(8,34); end;
if isempty(N), N=20; elseif N>50, N=50; end;
if isempty(parametros),
parametros = zeros(4,3);
pPLL = 1; % Columna que ocupan los parmetros del PLL
pKv = 1;
pWn = 2;
pPsi = 3;
parametros(pPLL, pKv) = 5e4; % Hz/V
parametros(pPLL, pWn) = 30.8e3; % rad/sg
parametros(pPLL, pPsi) = 1/(sqrt(2));
else
aux = zeros(4,3)
if (size(parametros,1) > 4),
parametros(5:size(parametros,1),:)= [];
end;
if (size(parametros,2) > 3),
parametros(:,3:size(parametros,2))= [];
end;
aux(1:size(parametros,1), 1:size(parametros,2)) = parametros;
parametros=aux;
clear aux;
end;
end;
% -- 1.2.- Se transforma la entrada a vector fila
if size(bandaFI,1) > 1, % Si tiene ms de una columna
bandaFI = bandaFI(:,1); % nos quedamos con la 1 columna
bandaFI = bandaFI'; % y trasponemos.
end;