Programa FFT del método de extracción de frecuencia
clc;
borrar todo
%Ingrese f, N, T, si agregar ceros (cuántos ceros agregar)
f=input('Frecuencia de entrada de la señal: f\n');
N=input('Número de puntos de entrada: N\n'); =input('Tiempo de muestreo de entrada: T\n');
flag=input('¿Agregar cero a la señal de muestreo o no? yes=1 no=0\n'); p> if(flag)
ZeroNum=input('Ingrese el número de ceros\n');
else
ZeroNum=0;
end
% genera una señal, la señal es la señal original. La señal es la señal de muestreo.
fs=1/T;
t=0:0.00001:T*(N+ZeroNum-1);
señal=sin(2*pi); *f*t);
t2=0:T:T*(N+ZeroNum-1);
señal2=sin(2*pi*f*t2); /p>
if (flag)
signal2=[signal2 zeros(1, ZeroNum)];
end
% dibuja la señal original y señal de muestra.
figura;
subplot(2,1,1);
plot(t,señal); (s)');
ylabel('Amplitud(voltios)');
título('Singnal');
espera; >
subplot(2,1,1);
stem(t2,signal2,'r');
eje([0 T*(N+ZeroNum) - 1 1]);
% realiza la transformación FFT, calcula su amplitud, la normaliza y dibuja el espectro.
Y = fft(señal2,N);
Pyy = Y.* conj(Y
Pyy=(Pyy/suma(Pyy)) *2;
f=0:fs/(N-1):fs/2;4
subtrama(2,1,2); bar(f,Pyy(1:N/2));
xlabel('Frecuencia(Hz)');
ylabel('Amplitud'); p>title('Componentes de frecuencia de la señal');
axis([0 fs/2 0 ceil(max(Pyy))])
grid on;