Matlab - programa_matlab_duda

 
Vista:

programa_matlab_duda

Publicado por Esteban (1 intervención) el 07/02/2008 17:03:19
Buenas tardes, es que estoy programando en matlab una funcion que me represente la cuantificacion de dos señales Qn y Qr, que son salida de dos contadores; resulta que cuando que en la salida (en el plot), no obtengo la cuenta final de Qn, mientras que para Qr sí; los parámetros de entrada son R (cuenta máx contador Qr), N (cuenta máx contador Qn) y t (desfase entre clkant y clkant2, pero que en principio lo he puesto a cero). He creado la variable periodo con dos bits mediante la funcion ones y zeros, les pongo por aquí el programa, porque le he dado muchas vueltas pero ya no sé lo que le pasa, gracias a todo@s, saludos.
Programa:

function fase2(R,N,t)
%t argumento para el desfase
x = 1;
y = 1;

Qr=zeros(10001,1);
Qn=zeros(10001,1);
restafase = zeros( 10000,1 );
divisionentera = zeros (10000,1 );

%Operaciones

periodo = [ones(1,x) zeros(1,y)];% creo el periodo de la señal: 1 0

clkant = 0;
clkant2 = 0;

for i = 1: 10000,

% if (Qr(i) < divisionentera(i))
% AQ = R;
% else
% AQ = 0;
% end;

if ( (clkant == 0 ) & periodo(rem(i,1)+1) ),

Qn(i+1) = rem( Qn(i) + 1, N ); % contador digital N; cuantificacion
end;

if ( (clkant2 == 0 ) & periodo(rem(i+t,1)+1) ),

Qr(i+1) = rem( Qr(i) + 1, R ); % contador digital R; cuantificacion
end;

clkant = periodo(rem(i,2)+1); % actualización del periodo clkant

clkan2 = periodo(rem(i+t,2)+1); % actualización del periodo clkant2

divisionentera(i) = floor((Qn(i)*R)/N);

restafase(i) = Qr(i) - divisionentera(i);

%restafase(i) = Qr(i) + AQ - divisionentera(i);

end;


plot (restafase(1:2000))

figure (2);

plot( Qn (1:2000));hold on;plot(Qr (1:2000), 'r'); hold off;

%figure (3);

%plot(periodo)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder