如何用MATLAB实现快速傅立叶变换FFT?

作者:烟中隐约闪现 | 创建时间: 2023-03-21
傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅立叶变换算法利用直接测量到的原始...
如何用MATLAB实现快速傅立叶变换FFT?

操作方法

读入时域采集信号,定义采样频率,计算信号点数量,生成采样时间点 clear;clc;close all load('example') Fs=2500; T=1/Fs; N=length(y); t=(0:1:N-1)*T; t=t';

绘制时域信号图形 figure plot(t,y)

使用MATLAB自带的fft函数,对信号做傅里叶变换,注意:频谱的前半部分为有效谱图 Y=fft(y); Y=Y(1:N/2+1); A=abs(Y); f=(0:1:N/2)*Fs/N; f=f';

方法/步骤2

对原始频谱的幅值就行修正,才能将频域的幅值与时域信号的幅值对应上 A_adj=zeros(N/2+1,1); A_adj(1)=A(1)/N; A_adj(end)=A(end)/N; A_adj(2:end-1)=2*A(2:end-1)/N;

绘制幅频特性图 figure subplot(2,1,1) plot(f,A_adj)

绘制相频特性图 subplot(2,1,2) phase_angle=angle(Y); phase_angle=rad2deg(phase_angle); plot(f,phase_angle)

温馨提示

MATLAB FFT的返回结果,需要对幅值进行修正,才能与时域信号的幅值对应得上
点击展开全文

更多推荐