MATLAB如何做傅里叶变换--MATLAB-fft函数频谱分析教程
作者:NorthPath
时间:2026-05-28
浏览:0
MATLAB的fft函数通过快速傅里叶变换将时域信号转换到频域,仅需一行代码完成变换,进而计算幅度谱与相位谱,绘制单边频谱图,从而直观分析信号的频率成分、幅度及相位特征,便于信号处理与频谱分析。
在信号处理的世界里,将时域信号转换到频域,就像给信号做一次“成分体检”——哪些频率在起作用、强度如何、相位怎样,一目了然。而MATLAB中的fft函数,正是完成这项工作的核心利器。
先理清一个基本逻辑:傅里叶变换的目标是把随时间变化的信号,拆解成不同频率的正弦波组合。这听起来有点抽象,但操作起来非常直接。假设我们已经有了一个时域信号x,那么用fft对它做变换,只需要一行代码:
x = [具体的时域信号数据];

x = fft(x);
这一步之后,x里存放的就是信号的频域表示——不过它还处于复数形式,需要进一步处理才能变成我们熟悉的频谱图。
接下来就是真正的频谱分析环节。频谱图能直观告诉我们信号里藏着哪些频率成分,以及它们的幅度和相位。通常我们只关心正频率部分,所以会绘制单边频谱。下面是一段标准做法:
n = length(x);
f = (0:n-1)*(1/(n*ts)); % ts为采样周期,若均匀采样可省略此步
magx = abs(x)/n; % 计算幅度谱
phasex = angle(x); % 计算相位谱

figure;

subplot(2,1,1);
plot(f, magx(1:n/2));
title('Magnitude Spectrum');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
subplot(2,1,2);
plot(f, phasex(1:n/2));
title('Phase Spectrum');
xlabel('Frequency (Hz)');
ylabel('Phase (radians)');
这段代码里,abs(x)/n给出了各频率分量的真实幅度,angle(x)则给出了对应的相位。把这两张图上下排布,上面看谁“嗓门大”,下面看谁“起跑线”不同——结合起来就能对信号有完整的认识。
在实际工程中,频谱分析的价值往往体现在细节里。比如检测设备振动中是否混入了特定频率的噪声,或者从雷达回波里提取目标的多普勒频移。掌握了fft的基本用法和频谱绘制方法,就等于拿到了一把打开频域大门的钥匙,剩下的就是根据具体问题灵活应用了。
作者最新文章
贵州省住建厅与贝壳集团签署旅居战略合作:五大维度落地方案解析
2026-09-08 18:13
上海链家安住APP:业主主动卖房功能与成交数据解析
2026-09-08 18:11
如何批量将PPT转成PDF格式?PPT转PDF工具怎么选?
2026-09-04 16:03
PDF文件怎么压缩?3个小技巧帮你减小体积
2026-09-03 18:03
小批量试产总结报告:新产品量产导入评审实战指南
2026-09-02 19:48
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































