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的信号都无法被分辨,且出现了频谱泄露现象。这是因为对非周期信号进行截取时,总会引起频谱泄露。只有当截取的信号段为原信号周期的整数倍时,才不会产生频谱泄露。
热门推荐
硒与肝病:适当补硒有利于慢性肝炎患者
办公软件怎么调字的颜色
如何正确保养平板电脑(保持平板电脑的长久使用和良好性能)
简述印花税的作用是什么呢
AI 聊天机器人让用户去死,大学生吓到崩溃,官方紧急道歉
汽车变速箱类型全解析:MT、AT、DCT、AMT、CVT 大揭秘
精确数据驱动增长:微信小游戏开发者必备数据分析思路
右佐匹克隆,治疗老年人失眠的6大优势!
Fate红A为什么叫红茶:详解命运中的红A身份及人物背景
龙骨是什么东西
选址定生死——加盟店的位置如何选?
全国平均工资大揭秘:京沪领跑,西藏反超粤苏浙,河南垫底
国际法基本特征与应用
DeepSeek“出圈”,政务智能化“借力”
如何做好标准俯卧撑
上海专家临床研究:手术改善脑淋巴循环,延缓重度阿尔茨海默病进展
一线城市最后一个,上海开放全无人驾驶!小马智行:全无人载客是新的开始
如何深入研究券商的个股选择策略?这些策略在实际应用中有哪些注意事项?
都是退热止痛药,对乙酰氨基酚和布洛芬有什么不同?
信阳十大美食:从热干面到南湾鱼,每一道都藏着信阳故事
湖北六个圆丨如何准备导游资格证考试,看这一篇就够了!
主流服务器的硬件配置介绍
电影《哪吒》之问:传统文化在魔童的呐喊中重生还是消亡?
蒲地蓝消炎口服液适应症及使用注意事项
打生长激素,解决不了身高焦虑
大学生户口迁移新政策与农村城镇化:挑战与机遇
全球旅行电话卡选择指南:价格、网络速度与安全性全方位评测
实验室制乙炔:步骤、原理与应用
文玩核桃的文盘与武盘
茶的种类及其健康功效