Matlab信号处理:FFT频谱分辨率详解
创作时间:
作者:
@小白创作中心
Matlab信号处理:FFT频谱分辨率详解
引用
CSDN
1.
https://blog.csdn.net/qq_38967414/article/details/133071302
在信号处理领域,FFT(快速傅里叶变换)是分析信号频谱特性的常用工具。本文将通过具体示例,介绍FFT频谱分辨率的概念及其影响因素,帮助读者理解如何通过调整采样参数来优化频谱分析效果。
频谱分辨率
频谱分辨率是衡量FFT分析中能够区分的最小频率间隔的能力。其计算公式为:
$$
\text{频谱分辨率} = \frac{f_s}{N}
$$
其中:
- (f_s) 为采样频率
- (N) 为采样点数
为了更好地理解频谱分辨率的影响,我们通过两个示例进行说明。假设我们有三个正弦信号,频率分别为 (f_1 = 1\text{Hz}),(f_2 = 10\text{Hz}),(f_3 = 40\text{Hz})。
示例1:采样时长1秒
当采样频率 (f_s = 1000\text{Hz}),采样时长为1秒时,采样点数为1000,采样间隔为0.001秒。代入公式计算得到频谱分辨率为1Hz。
下面是相应的Matlab代码实现:
fs = 1000;
t = 0:1/fs:1-1/fs; % 采样时长1s,采样间隔0.001s,采样点数1000
f1 = 1; f2 = 10; f3 = 40;
y = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);
y_fft = fft(y);
len = length(y_fft);
P1 = abs(y_fft/len);
P2 = P1(1:len/2+1);
P2(2:end-1) = 2*P2(2:end-1);
f = fs*(0:len/2)/len;
stem(f,P2);
从FFT频域图可以看出,1Hz、10Hz和40Hz的信号都能够被清晰分辨。
示例2:采样时长0.05秒
当采样时长缩短为0.05秒时,采样点数变为50。此时,频谱分辨率为20Hz。
下面是相应的Matlab代码实现:
fs = 1000;
t = 0:1/fs:0.05-1/fs; % 采样时长0.05s,采样间隔0.001s,采样点数50
f1 = 1; f2 = 10; f3 = 40;
y = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);
y_fft = fft(y);
len = length(y_fft);
P1 = abs(y_fft/len);
P2 = P1(1:len/2+1);
P2(2:end-1) = 2*P2(2:end-1);
f = fs*(0:len/2)/len;
stem(f,P2);
从FFT频域图可以看出,此时1Hz和10Hz的信号都无法被分辨,且出现了频谱泄露现象。这是因为对非周期信号进行截取时,总会引起频谱泄露。只有当截取的信号段为原信号周期的整数倍时,才不会产生频谱泄露。
热门推荐
西方哲学史上最伟大的10位哲学家
如何合法查找个人名下所有银行卡
如何安全查询银行卡实名信息?避免隐私泄露!
腰尾部UP主崛起,电商内容生态的新格局
三原色调色公式是什么
道教说的六道 道家六道是什么意思
天国拯救2不辞而别任务 隐藏通道全指南与在哪里推荐
知识付费:个人品牌的变现之道与深化平台
天涯海角在海南:追寻那片遥远而美丽的净土
Midjourney AI绘画进阶:引导线构图技巧详解
雨棚遮阳棚安装方法及使用注意事项
下雨天或者阴天有时会头疼头胀
2025年奥尔良大师赛:拉尼尔主场夺冠
袋装咖啡豆怎么密封保存?千万别把咖啡豆装在透明密封罐中爆晒!
学霸分享的高效背记方法,赶快收藏吧
物联网主要应用领域及应用前景
为什么中医专业会冷门?什么样的人适合学中医?
人工智能行业,人少、钱多、速来!
面试必问!鸿蒙开发中的FA模型和Stage模型是什么?他们分别有什么区别?
构建第一个ArkTS应用之@Stage模型开发概述
毛笔这样保养,寿命延长3倍!
心脏彩超报告单怎么看数据
【循证科普】运动和认知训练:对抗轻度认知障碍的两大法宝
2025年农历怀孕吉日 2025年结婚上等吉日
败血症治疗:从抗感染到器官支持的全面指南
热电偶的工作原理、使用方法及维护技巧
西藏各族干部群众加强交往交流交融 雪域高原盛开民族团结之花
水牛肉和黄牛肉的区别,牛肉中的‘双胞胎’,差异竟如此之大!
战争的残酷与国家担当:二战胜败国赔款之路探析
人民法院王志强:司法为民的践行者与法律事业的忠诚守护者