news 2026/5/10 21:22:04

直接上干货,今天手把手教你在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/5/10 23:13:40

专科生必看!千笔,倍受青睐的降AI率工具

在AI技术迅速渗透学术写作领域的当下,越来越多的学生开始借助AI工具提升论文撰写效率。然而,随着查重系统对AI生成内容的识别能力不断增强,如何有效降低AI率和重复率,已成为毕业论文写作中的核心难题。许多学生在使用各类降AI率工…

作者头像 李华
网站建设 2026/4/29 7:43:03

算力租赁选择指南:如何根据应用场景匹配计算资源

人工智能技术当下的快速发展进程里,算力已然成了驱动创新的核心资源,对于多数企业、研究机构以及开发者来讲,自行建造高性能的计算中心,不但成本极其高昂,而且还面临着技术迭代飞快,运维复杂不已&#xff0…

作者头像 李华
网站建设 2026/5/9 0:49:42

dp->单变量记录优化

lc1653dp/* 输入&#xff1a;s "aababbab" 输出&#xff1a;2 */ class Solution { public:int minimumDeletions(string s){int ns.size();vector<vector<int>> dp(n1,vector(2,0));for(int i1;i<n;i){if(s[i-1]a){dp[i][0]dp[i-1][0];dp[i][1]dp[i…

作者头像 李华
网站建设 2026/5/10 0:21:50

深度测评!千笔,MBA论文写作神器

你是否曾为论文选题而苦恼&#xff1f;是否在撰写过程中感到思路混乱、资料不足&#xff1f;又或者&#xff0c;面对查重率和格式问题反复修改却依然无法达到满意效果&#xff1f;MBA论文写作不仅需要扎实的学术功底&#xff0c;更考验时间管理和效率。在无数个深夜里&#xff…

作者头像 李华
网站建设 2026/5/9 19:30:51

论文写不动?口碑爆棚的AI论文工具 —— 千笔

你是否曾为论文选题发愁&#xff0c;绞尽脑汁却毫无头绪&#xff1f;是否在深夜面对空白文档&#xff0c;文思枯竭、无从下笔&#xff1f;又是否反复修改仍对表达不满意&#xff0c;查重率始终高居不下&#xff1f;论文写作的每一步都像一场硬仗&#xff0c;让无数学生倍感压力…

作者头像 李华