MATLAB Realización de la transformada rápida de Fourier FFT

Hola niño bonito/niña hada, si hay un conocimiento en matemáticas avanzadas que has escuchado muchas veces pero no lo entiendes bien, y mucho menos cómo usarlo, entonces la transformada de Fourier debe estar en la lista. La mayoría de las personas que intentan por primera vez tendrán la leve sensación de que la transformada de Fourier es complicada y difícil de comenzar. De hecho, este no es el caso. Este blog usará solo una o dos páginas para permitirle comprender rápidamente el principio y la aplicación de la transformada de Fourier, de modo que incluso si comienza desde Xiaobai, puede comenzar rápidamente y dominar este artefacto matemático.


1. Conocimientos básicos

Cuando la mayoría de los estudiantes alcancen el nivel de posgrado, encontrarán más o menos un momento en el que necesitarán realizar un análisis de espectro. Luego revisé el libro y encontré la siguiente fórmula:
X ( ω ) = 1 T ∫ − ∞ ∞ x ( t ) e − j ω tdt X(\omega)=\frac{1}{T}\int_{-\ infinito}^{\infin}{x(t)e^{-j\omega t}}dtX ( ω )=T1x ( t ) mij ω t ret
dondex ( t ) x(t)x ( t ) es una cantidad variable en el tiempo denominada señal en el dominio del tiempo, como una señal electrónica variable en el tiempo. X ( ω ) X(\omega)X ( ω ) es la amplitud de la señal transformada al dominio de la frecuencia,ω \omegaω es la frecuencia. Por ejemplo, una señal en el dominio del tiempo esx ( t ) = a sin ⁡ ( kx ) = 0.5 sin ⁡ ( 4 π t ) x(t)=a\sin(kx)=0.5\sin(4\pi t)x ( t )=apecado ( k x )=0 _ 5sin ( 4 π t ) , la señal es en realidad una señal con una amplitud de 0.5 y una frecuencia dek 2 π = 4 π 2 π = 2 \frac{k}{2\pi}=\frac{4\pi} {2\pi}=214:00 _k=14:00 _4 p. m.=2 señales. EntoncesX ( ω ) X(\omega)X ( ω ) solo enω = 2 \omega=2Vaya=0,5 para 2 y 0 para los demás.

Sin embargo, en los cálculos numéricos reales, todos los problemas físicos están discretizados, por lo que la señal generada también es un vector. Entonces, la transformada de Fourier en la fórmula anterior se puede escribir como una matriz de transformada de Fourier discreta FFF se multiplica por una señal discreta en el dominio del tiempo y se divide por el número de muestras. Es decir:
X = 1 NF x X = \frac{1}{N}FxX=norte1F x
específico sobreFFEl conocimiento del álgebra lineal de F no se introducirá aquí, solo necesita saber que se trata de una matriz. A continuación, hablemos de cómo usarlo, aquí usamos MATLAB para aplicarlo.


2. Aplicación específica

Mire directamente el código fuente.Este ejemplo también está copiado de la documentación de ayuda oficial de MATLAB, que es muy ilustrativa.

Fs=100; % 采样频率
L=150;  % 采样个数
t=(0:L-1)/Fs; % 时间


S = 0.7*sin(2*pi*20*t)+sin(2*pi*40*t);  % 时域信号
X = S + 1*randn(size(t)); % 添加随机噪动,也可以不加,下面给出二者对比图

subplot(2,1,1);
plot(t,X,'b.-'); % 画出时域信号
title("Siginal in time domain");
xlabel('t');
ylabel('X');
hold on;

% FFT 变换
Y = fft(X);

% fft()之后的频域信号的幅值还需要做一点处理才可以完全对应时域信号的幅值
P1=abs(Y);
P2=P1(1:L/2+1);
P2=P2/L;
P2(2:end-1)=P2(2:end-1)*2;
f = Fs*(0:L/2)/L;

subplot(2,1,2);
% 画出频域信号
plot(f,P2,'r.-');
title('Amplitude Spectrum of X');
xlabel('f (Hz)');
ylabel('|P2(f)|');

El significado de este código es: una señal de frecuencia 20 con amplitud igual a 0,7 se superpone a otra señal de amplitud 1 y frecuencia 40 para realizar una transformada discreta de Fourier sobre la señal formada. Doy los resultados del dominio de frecuencia después de la perturbación del ruido o no. Gráficos de dominio de tiempo y frecuencia de la señal sin ruido añadido:
Gráficas de dominio de tiempo y dominio de frecuencia de la señal con ruido agregado:
Se puede ver que cuando los dos transforman la señal en el dominio del tiempo en una señal en el dominio de la frecuencia, se encuentran las señales con frecuencias de 20 y 40 y amplitudes de 0,7 y 1.

Lo que es un poco difícil de entender en el código es el procesamiento de la señal en el dominio del tiempo después de la transformación DFT: tomar la mitad de la señal en el dominio de la frecuencia y escalarla. No necesitas entender esto, puedo decirte qué hacer.
La declaración P1=abs(Y);obtiene la longitud del volumen intermedio después de la transformación fft. Dado que la frecuencia de muestreo Fssolo puede resolver Fs/2la frecuencia como máximo, se opera P2=P1(1:L/2+1);. Para hacer corresponder la amplitud de la señal transformada con la amplitud de la señal en el dominio del tiempo, también es necesario escalar la señal.La primera y la última señal se dividen por el número de muestras de señal discreta, y la señal intermedia se divide por el Lnúmero L/2a obtener el resultado final.

Chicos bonitos, hadas, aquí, la transformada discreta de Fourier entiende aproximadamente cómo usarla. Está bien si no entiendes, comuniquémonos en el área de comentarios~


También puede ir al enlace del artículo de mi jardín de blogs actualizado sincrónicamente para jugar.Personalmente, me gusta el jardín de blogs, que es relativamente limpio y simple.

Supongo que te gusta

Origin blog.csdn.net/Meiyuan2021/article/details/124464505
Recomendado
Clasificación