problema con una tonteria de matlab
Publicado por Niko (1 intervención) el 18/06/2008 10:53:33
una funcion de un archivo de matlab me trae frito. la funcion es si es esta:
% sumador |
% |
% IN_A: entrada A. |
% NB_Sum: numero de bits del sumador. |
% N_Sim: numero de ciclos a simular. |
%_________________________________________________________________________|
function out = sumador(IN_A, NB_Sum, N_Sim)
max_data = 2^(NB_Sum);
old_data = 0;
for i = 1:N_Sim,
data = IN_A + old_data;
res(i) = data;
if data > (max_data - 1)
res(i) = data - max_data;
end
old_data = data;
end
out = res;
end
como es facil de adivinar, es un acumulador con desbordamiento, es decir, se le mete un numero que va sumando repetidas veces asta que satura y vuelve al principio. si representaramos la salida, deberia salir algo asi como una funcion en diente de sierra, sube linealmente y decae cuando satura. el problema es que a mi solo me satura una la primera vez, luego suma indefinidamente y se pasa el control de desbordamiento por el forro. yo estoy harto de darle vueltas porque no tiene sentido y no veo forma de corregirlo. a primera vista parece una tonteria pero a mi me tienen frito. un saludo y gracias.
% sumador |
% |
% IN_A: entrada A. |
% NB_Sum: numero de bits del sumador. |
% N_Sim: numero de ciclos a simular. |
%_________________________________________________________________________|
function out = sumador(IN_A, NB_Sum, N_Sim)
max_data = 2^(NB_Sum);
old_data = 0;
for i = 1:N_Sim,
data = IN_A + old_data;
res(i) = data;
if data > (max_data - 1)
res(i) = data - max_data;
end
old_data = data;
end
out = res;
end
como es facil de adivinar, es un acumulador con desbordamiento, es decir, se le mete un numero que va sumando repetidas veces asta que satura y vuelve al principio. si representaramos la salida, deberia salir algo asi como una funcion en diente de sierra, sube linealmente y decae cuando satura. el problema es que a mi solo me satura una la primera vez, luego suma indefinidamente y se pasa el control de desbordamiento por el forro. yo estoy harto de darle vueltas porque no tiene sentido y no veo forma de corregirlo. a primera vista parece una tonteria pero a mi me tienen frito. un saludo y gracias.
Valora esta pregunta


0