Red de conocimiento informático - Consumibles informáticos - Programa FFT del método de extracción de frecuencia

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;