Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Qué amable persona puede proporcionar el programa fuente del algoritmo FFT de 256 puntos? Urgente por favor

¿Qué amable persona puede proporcionar el programa fuente del algoritmo FFT de 256 puntos? Urgente por favor

función [PW,AW,f,Ph]=cftbyfft(wt,t,flag)

%cftbyfft.m

%Transformada de Fourier de funciones continuas

%Este programa completa la Transformada Rápida de Fourier, como se explica en Matlab 6.5, p174, el programa cftbyfft.m en el Ejemplo 4.13.3.2-1

% Agrega el algoritmo de base dos basado en el programa original agrega Algoritmo; para forzar números complejos "pequeños" a 0 (consulte la página 172 de "Dominar Matlab6.5")

% El programa fzzyfft.m en el ejemplo 4.13.2.3-3

% El Programa fzzyfft.m en el ejemplo 4.13.2.3-3

% Este programa necesita ingresar los parámetros de los datos de forma de onda de tiempo (wt, t), es decir, el vector de resultado de la prueba wt y el vector de coordenadas de tiempo correspondiente t; seleccione la bandera de entrada para determinar el programa para mostrar gráficos

% Nota: El espectro de amplitud calculado por este programa es muy preciso, pero el espectro de fase es muy inexacto, por lo que es Se recomienda que los datos de salida sean AW y f, y que la fase Ph sea Completa

if nargin==2;flag=0;end %La frecuencia de muestreo es fs=N/T;flag=0, dibuje el diagrama de rango de potencia media [0, fs/2], que es la frecuencia efectiva Rango de análisis (teorema de muestreo) espectro de un solo lado, amplitud AW multiplicada por 2

%flag=1, dibuja una frecuencia simétrica diagrama de rango [-fs/2, +fs/2], la amplitud AW es el valor original

%flag=2,; dibuja todo el rango de frecuencia [0, fs] y la amplitud AW es el valor original

N=longitud(t);

T=t(longitud(t))-t(1); T/(N-1); %

NFFT=2^nextpow2(N); %Algoritmo básico dos

if N

W0=fft(wt, N); el %W0 obtenido con este comando se transformará inversamente, es decir, ift(W0) puede obtenerse de la forma de onda de tiempo original

W=dt*W0;

z_W=find(abs(W)<1.0e-10); producido por operaciones de longitud de palabra limitada

W(z_W)=zeros(length(z_W),1 % Fuerza que estos pequeños números complejos devuelvan 0

W(z_W)=zeros); (length(z_W),1); forzar que estos pequeños números complejos devuelvan 0

W(z_W)=zeros(length( z_W),1 %Forzar que estos pequeños números complejos devuelvan 0

df=1/T; %

n=0:1:(N-1);

% Calcule el espectro de amplitud y fase a continuación

si bandera==0

n=0:(N/2-1);

W=2*W(1:N/2);

elseif flag= =1

n=-N/2: (N/2-1);

W=fftshift(W);

else

n=0:(N-1);

end

f=n*df % frecuencia

AW=abs(W); % amplitud del módulo

PW=W.*conj(W); % espectro de potencia

Ph=ángulo(W)

; %Fase (no recomendado porque la fase es muy inexacta)

if nargout==0 %Llamar a la función cftbyfft sin solicitar datos de salida

figura(2)

plot(f,AW).grid,xlabel('frecuencia f');ylabel('espectro de amplitud |w(f)|')

figura(3)

plot(f,Ph); grid,xlabel('frecuencia f');ylabel('espectro de fase Ph')

figura(4)

plot(f,PW); grid,xlabel('frecuencia f');ylabel('función de densidad espectral de potencia PDF')

end

Matlab ha sido compilado

youzhishi.com" target="_blank">Red de conocimientos turísticos All Rights Reserved.