news 2026/10/24 2:53:47

直接上干货,今天手把手教你在MATLAB里用FFT搞信号频谱分析。准备好你的MATLAB 2018b以上版本,咱们边写代码边唠嗑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
直接上干货,今天手把手教你在MATLAB里用FFT搞信号频谱分析。准备好你的MATLAB 2018b以上版本,咱们边写代码边唠嗑

matlab fft 快速傅里叶变换 双边谱,单边谱,相位谱 基于matlab2018b及以上版本实现 对信号做fft,然后绘制其双边谱,单边谱,和对应的相位谱 有详细介绍并附带注释,保证可以运行 附带一份数据,可以查看数据格式来调整你的数据最后使用代码运行。

先来个实战案例:假设采样频率Fs=1000Hz,采样时间1秒。构造个含50Hz和120Hz的正弦波信号,加个随机噪声更有真实感:

Fs = 1000; % 采样率 T = 1/Fs; % 采样间隔 L = 1000; % 信号长度 t = (0:L-1)*T; % 时间轴 S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); % 原始信号 X = S + 2*randn(size(t)); % 加噪版本

先看原始信号长啥样:

figure(1) plot(Fs*t(1:100),X(1:100)) % 显示前0.1秒 title('原始信号(含噪声)') xlabel('时间 (ms)')

双边谱绘制:

Y = fft(X); % 核心就这一句,直接调用fft P2 = abs(Y/L); % 双边幅度谱计算 P1 = P2(1:L/2+1); % 截取前半段 P1(2:end-1) = 2*P1(2:end-1); % 能量守恒修正 f = Fs*(0:(L/2))/L; % 频率轴生成 figure(2) plot(f,P1) title('单边幅频特性') xlabel('频率 (Hz)') ylabel('幅度')

看到这可能有疑问:为啥要截一半还乘2?因为FFT结果是对称的,负频率部分其实是正频率的镜像。实际工程中更常用单边谱,直接把能量集中到正频率部分。

相位谱的坑要注意:

phase = angle(Y(1:L/2+1)); % 取相位角 phase_unwrap = unwrap(phase); % 解除相位缠绕 figure(3) subplot(2,1,1) plot(f,phase*180/pi) title('原始相位谱') subplot(2,1,2) plot(f,phase_unwrap*180/pi) title('解缠绕相位谱')

这里用unwrap函数解决相位跳变问题,实测发现当信号存在噪声时,相位谱在非信号频率点会出现随机波动,这是正常现象。

matlab fft 快速傅里叶变换 双边谱,单边谱,相位谱 基于matlab2018b及以上版本实现 对信号做fft,然后绘制其双边谱,单边谱,和对应的相位谱 有详细介绍并附带注释,保证可以运行 附带一份数据,可以查看数据格式来调整你的数据最后使用代码运行。

完整代码套餐:

% 数据生成部分 Fs = 1000; T = 1/Fs; L = 1000; t = (0:L-1)*T; S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); X = S + 2*randn(size(t)); % FFT计算 Y = fft(X); P2 = abs(Y/L); P1 = P2(1:L/2+1); P1(2:end-1) = 2*P1(2:end-1); f = Fs*(0:(L/2))/L; % 绘图全家桶 figure subplot(3,1,1) plot(f,P1) title('单边幅频特性') xlabel('Hz') subplot(3,1,2) plot(f,20*log10(P1)) % 转dB单位更直观 title('对数幅频特性') xlabel('Hz') phase = angle(Y(1:L/2+1)); subplot(3,1,3) plot(f,unwrap(phase)*180/pi) title('解缠绕相位谱(度)') xlabel('Hz') % 补充:查看你的数据格式时注意 % 如果是导入外部数据,确保数据是列向量 % 可通过X = your_data(:,1); 选取所需通道

数据适配提示:

当使用自己的数据时:

  1. 确认数据是单列向量
  2. 调整Fs为实际采样率
  3. 数据长度L需要是偶数(方便截断)
  4. 噪声过大会淹没信号特征(可通过加窗改善)

跑完代码应该能看到在50Hz和120Hz处有明显的谱峰,相位谱在这两个点有明确相位值(其他位置是噪声相位随机分布)。如果发现频谱泄露严重,下次可以聊聊加窗技巧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 19:39:03

Bayes-CNN贝叶斯优化卷积神经网络多输入单输出回归预测(Matlab) 1

Bayes-CNN贝叶斯优化卷积神经网络多输入单输出回归预测(Matlab)1.命令窗口输出MAE、MSE、RMSEP、R^2、RPD和MAPE 2.贝叶斯优化算法优化参数为学习率、批处理样本大小和、正则化参数。 3.输入6个特征,输出1个变量直接上干货,今天咱…

作者头像 李华
网站建设 2026/10/19 9:54:04

聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位

为加强扬州市网络和数据安全技术支撑体系建设,提升网络和数据安全应急处置和风险防范能力,扬州市委网信办公开遴选2026年度网络和数据安全服务资源池单位。经自主申报、资质审查、专家评议等环节,最终确定包括聚铭网络在内的24家企业入选《20…

作者头像 李华
网站建设 2026/10/23 14:02:14

AI实战:念念不忘小程序上线啦,带你重温美好时光

还在担心珍贵瞬间被遗忘?微信小程序「念念不忘」正式上线!AI智能分析你的照片,自动生成百字回忆——时间、地点、人物、故事,一键呈现。首页每日推送一张专属老照片,生日前两周自动展示靓照,纪念日临近也能…

作者头像 李华
网站建设 2026/10/22 7:05:39

2026别错过!8个降AI率软件降AIGC网站评测:自考论文降重全攻略

在2026年,随着AI技术的不断进步,学术论文中AI生成内容(AIGC)的比例也在逐年上升。对于自考学生而言,如何有效降低论文的AIGC率、去除AI痕迹并优化查重率,已成为一项关键任务。传统的人工修改方式不仅耗时耗…

作者头像 李华