news 2026/6/10 4:50:21

直接上干货,今天手把手教你在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/6/1 0:58:24

1.4 事务消息机制:如何确保重要通知100%送达用户?

1.4 事务消息机制:如何确保重要通知100%送达用户? 引言 在分布式系统中,确保重要消息的可靠传递是一个关键挑战。特别是在金融、电商等对数据一致性要求极高的场景中,任何一条重要通知的丢失都可能导致严重的业务后果。例如,用户支付成功后没有收到确认通知,或者系统关…

作者头像 李华
网站建设 2026/6/10 11:25:54

打造你的家庭 AI 助手(二):飞书机器人接入你的 OpenClaw

在上一篇文章中,我们完成了 OpenClaw 的安装和基础配置。现在,让我们把这只「小龙虾」接入飞书,用手机就能远程控制你的 AI 助手。 第一步:在飞书开放平台创建应用 1.1 进入飞书开放平台 打开浏览器,访问飞书开放平台&…

作者头像 李华
网站建设 2026/6/10 11:24:36

2026冲刺用!千笔写作工具,顶流之选的AI论文平台

你是否曾为论文选题发愁,反复修改却总对表达不满意?是否在深夜面对空白文档文思枯竭,又担心查重率过高?论文写作的每一个环节都让人倍感压力。而今,随着2026届毕业季临近,越来越多学生开始寻找高效、专业的…

作者头像 李华
网站建设 2026/6/10 11:23:55

2.1 业务方接入方案:让所有团队都能快速集成通知服务

2.1 业务方接入方案:让所有团队都能快速集成通知服务 引言 在构建平台类服务时,如何让业务方能够快速、安全地接入是至关重要的。一个好的接入方案不仅需要提供简单易用的API,还需要具备完善的安全机制、灵活的配置管理以及良好的文档支持。 本节我们将深入探讨通知平台的…

作者头像 李华
网站建设 2026/6/10 11:27:54

网安实战必备!5 款漏洞挖掘扫描工具,从入门到进阶全覆盖

网安人想挖漏洞赚钱,没有趁手的工具怎么行呢? 今天来为大家介绍5款进阶版漏洞挖掘扫描工具,掌握后保证挖到高危,真正实现财富自由! 第一款:Trivy 一款开源漏洞扫描程序,使用很容易&#xff0…

作者头像 李华
网站建设 2026/6/10 11:19:55

无锡黑锋 HF2278 同步升压DC-DC变换器技术解析

在追求更高功率密度与更优动态响应的便携设备电源设计中,提高开关频率与降低静态功耗是两个永恒的优化方向。HF2278 作为黑锋科技同步升压系列中的高频、低功耗代表,在继承**“三元件极简外围”设计哲学的同时,将开关频率推升至1MHz**&#x…

作者头像 李华