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的信号都无法被分辨,且出现了频谱泄露现象。这是因为对非周期信号进行截取时,总会引起频谱泄露。只有当截取的信号段为原信号周期的整数倍时,才不会产生频谱泄露。
热门推荐
江西傩舞:古老艺术的现代传承
如何从心理学角度理解股市行为
探秘美式咖啡:二战起源到全球风靡的秘诀
鹧鸪天苏轼:词人的情怀与自然风景的交融
如何通俗的解释计算机是如何实现1+1=2计算的
四大天王:道教与佛教的守护神
网络设备中的光模块种类大全:从1G到800G,一文读懂!
修仙家族模拟器2手游名人玩法最详细介绍!
国产汽车发动机参数从不输,实战从没赢,真实的水平到底啥样?
三文鱼刺身的正确吃法
高海拔对呼吸系统健康的影响及适应性措施
基于基因编辑的脑机接口增强技术取得新进展
川味诱惑:秘制麻婆豆腐的艺术之旅
纤维肌痛症真是「公主病」?全身肌肉、皮肤痛 症状、原因一覽
咳嗽吃什么药、什么程度该上医院?看完这篇就都明白了!
50人诈骗团伙利用“美女主播”设桃色陷阱,涉案1317万全部获刑
复旦大学附属眼耳鼻喉科医院信息化建设实践
0-3岁宝宝营养补充表:维生素D、钙、铁、锌、DHA怎么补?
太行一号旅游公路详细路线与自驾攻略
冬季火了一种新穿法:叫“上面大衣,下面裙子长裤”,适合小个子
NBA全明星前瞻:王鹤棣再战名人赛 新秀赛四队竞争正赛名额
绝句与律诗:诗歌形式的细致对比
2025蛇年春节AI音乐春晚震撼登场,一起见证AI的无限可能
女朋友生气了怎么办?15个实用技巧帮你轻松化解矛盾
机箱风扇最佳的安装方向
旅行达人推荐:三清山到景德镇的必玩之地
云龙公园:城市中的自然与历史瑰宝
辰州傩戏:中国民俗文化的瑰宝
美国交通规则中文版
全能型AI与专业型AI,你怎么选?