hola tengo líos con el bucle de este programa que lee un archivo de sonido y lo evalúa. lo que quiero es que para cada variación de t guarde un valor en cada espacio de los vectores a(n), b(n) luego de eso usar el valor que guardaron a(n) y b(n) evaluarlos y el resultado guardarlos en 2 nuevas variables An, tetan.
Para el caso de tetan guardarlo en un vector tetan(n) para poder graficar (t tetan).
Para el caso de An hago otra operación y guardo el resultado en el vector P(n) para poder graficar (W P).
Nota: u_hombre esta grabado en mono así que es solo un vector
A este momento no estoy seguro de:
t no se si sea un vector ademas de ser el contador del ciclo for así que no se si puedo usar plot(t,tetan).
El código es este.
Código C++:
Ver originalclc;
clear;
[F,Fs]=wavread('u_hombre');
wavplay(F,Fs);
t=size(F,1)/Fs;
n=0:1/Fs:t;
plot(n(2:end),F)
xlim([0 t])
wo=(2*pi)/t
%aproximadamente un ciclo
%T=size(nboch,1)/Fs
for t=0.005283:0.0001:t
n=0
wo=(2*pi)/t
a(n)=ao +(1/t)*trapz(t,F);
a(n)=0;
a
(n
)= a
(n
)+(2/t
)*trapz
(n
,F.
*cos(n
*wo
*t
));b(n)=0;
b
(n
)= b
(n
)+(2/t
)*trapz
(n
,F.
*sin(n
*wo
*t
));%A[n] toma el valor de a[n] y b[n] en cada ciclo
An
=sqrt(a
(n
)^2+b
(n
)^2); %calculo la potencia
P
(n
)=Ao
^2+(a
(n
)^2/sqrt(2))^2if a(n)>0&&b(n)>0
tetan
(n
)=atan(-b
(n
)/a
(n
));else if a(n)<0&&b(n)>0
tetan
(n
)=90+atan(-b
(n
)/a
(n
));else if a(n)<0&&b(n)<0
tetan
(n
)=180+atan(-b
(n
)/a
(n
));else if a(n)>0&&b(n)<0
tetan
(n
)=270+atan(-b
(n
)/a
(n
));%calculo el angulo
%ingreso el valor de cada An, P y w0 en un vector para poder graficarlos
W(n)=wo
n=n+1
end
plot(W,P)
plot(t,tetan)