matlab 频谱图例子_多分辨率频谱分析

d860c92c8c7ca393276869d200650217.png

来源:杭州锐达数字技术有限公司微信公众号,作者:James Zhuge,翻译:杭州锐达数字技术有限公司。

一、引言

机械结构和声学应用中的很多问题要求谱分析采用非均匀的频率分辨率。在这些应用中,我们更倾向于用对数刻度来描述频率轴,由此低频段有比高频段更高的频率分辨率。在介绍之后我们会讨论一些例子。

在CI产品描述0001《动态信号分析技术》[2]中,我们讨论了各种频谱是如何计算的,包括线性谱、自谱、互谱、相位谱、相关函数和频率响应函数。在现代动态信号分析仪产品中,这些谱都是通过Cooley-Tukey FFT算法计算的[1]

离散傅里叶变换 (DFT) 的基本公式:

0ae72334ac7476e68601e4f45757c219.png

其中,x(n) 时域波形样本;n 为样本下标;N 为样本总数;k 为有限分析频率,对应FFT中心;X(k) 为x(n) 的离散傅里叶变换形式。

在多数情况下,我们采用基数为2的FFT算法,要求样本总数是2的整数幂。

e91c7cd8c458bf748e1f8b55448223c6.png

图1 FFT算法结构的一个例子

FFT的一个显著特点是将采样率均匀的时域信号转换成频域信号,会在整个频率范围内产生均匀的频率分辨率。频率分辨率dF,是时域块信号的时长和块大小N 乘积的倒数。比如,将FFT应用到时长0.5s、块大小N=1024的时域块信号,那么频率分辨率为1/(0.5 sec*1024)=0.001953125Hz。

时域信号经FFT变换后,频谱的频率分辨率在分析频率范围内应均匀分布。10Hz处的频率分辨率和1000Hz处的频率分辨率相等。当分析中要求采用非均匀分布的频率分辨率时,基于FFT的谱分析就不适用了。

DFT计算次数的量级是N*N,FFT计算次数的量级是NlogN,其中N 是时域信号的块大小。如果1965年Cooley和Tukey没有发明出FFT算法,人们会使用效率较低的离散傅里叶变换 (DFT) 算法进行谱分析。DFT的优点是频谱的分辨率不必均匀分布。实际上,在做DFT变换时,频率分辨率可以任意分布,从这一点看DFT算法似乎优于FFT算法,然而DFT的计算花费太高了。

如果我们能够找到一种计算效率和FFT一样高,并且可以使频谱的分辨率非线性分布(尤其是对数分布)的算法,将会是革命性的。

经过20多年的研发,晶钻仪器公司成功将多分辨率频谱分析方法引入并应用到其多个产品中,包括CI随机振动控制器、动态信号分析仪和模态数据采集仪。多分辨率频谱分析方法解决上述提到的问题并具有一系列的优点,这篇文章将讨论它的应用和结果。

二、要求采用非均匀频率分辨率的例子

在这一节,我们讨论几个要求采用非均匀频率分辨率的例子。

1. 音乐频率

钢琴键盘上不同音调的频率不是沿线性尺度均匀分布,而是沿对数尺度均匀分布。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB中使用FFT做频谱分析时频率分辨率问题-频率分辨率.rar MATLAB中使用FFT做频谱分析时频率分辨率问题 最近做FFT时,使用的采样频率和信号长度的取舍一直没有搞清楚,后来在论坛上发了一个贴子《总结一下使用FFT和维纳-辛钦定理求解PSD问题》(讨论见https://www.ilovematlab.cn/thread-27150-1-1.html,特别感谢会员songzy41,他的问题给了我很大启示),跟帖中给了我不少启示,并且让我对“频率分辨率”这个概念有了更深入的理解。再次一并感谢论坛的高手们。 频率分辨率,顾名思义,就是将信号中两个靠的很近的频谱分开的能力。 信号x长度为Ts,通过傅氏变换后得到X,其频率分辨率为Δf=1/T(Hz),若经过采样后,假设采样频率为fs=1/Ts,而进行频谱分析时要将这个无穷长的序列使用窗函数截断处理,假设使用矩形窗,我们知道,矩形窗的频谱为sinc函数,主瓣宽度可以定义为2*pi/M,M为窗宽,那么,时域相乘相当于频域卷积,频域内,这一窗函数能够分辨出的最近频率肯定不可能小于2*pi/M了,也就是如果数据长度不能满足2*pi/M<|w2-w1|(w2,w1为两个靠的很近的频率),那么在频谱分析时,频谱上将不能分辨出这两个谱,由于w2-w1=2*pi/fs=2*pi*Δf/fs也就是2*pi/M<2*piΔf/fs,得到Δf的限制为fs/M,这就是窗函数宽度的最小选择,就是说,根据Shannon采样定理确定了采样频率后,要根据靠的最近的谱峰来确定最小的采样长度,这样,所作出来的频谱才能分辨出那两个谱峰,也就是拥有了相应的频率分辨率。 几个例子: 考虑双正弦信号:x = sin sin;根据Shannon采样定理,采样频率要大于截止频率的两倍,这里选采样频率为80,那么,我们可以看到,Δf为0.2Hz,那么,最小的数据长度为0.2/80=400,但是对正弦信号的频谱分析经验告诉我们,在截断时截断时的数据要包含整周期,并且后面不宜补零以避免频谱泄露(这一点见胡广书《数字信号处理导论》,清华大学出版社),那么,我们要选择至少980个点,才能保含到一个整周期,另外,FFT的经验告诉我们作分析时最好选择2的整数次幂,我们选择靠的最近的1024点。分析结束。 [CODE] Fs = 80; n = 0:1/Fs:1023*1/Fs; x = sin sin; N = length; figure; X = fftshift); plot*Fs/N,abs*2/N); grid on; axis; 这是按照我们的分析进行的编程和形 zheng.jpg 可以看出这两个谱峰很好的被分辨开来,9.8Hz不在谱线上,所以幅值不为1,以下是一些对比: [CODE] Fs = 80; n = 0:1/Fs:1023*1/Fs; x = sin sin; N = length; X = fftshift); figure; subplot plot*Fs/N,abs*2/N); grid on; axis; title; n = 0:1/Fs:979*1/Fs; x = sin sin; N = length; X = fftshift); subplot plot*Fs/N,abs*2/N); grid on; axis; title; n = 0:1/Fs:399*1/Fs; x = sin sin; N = length; X = fftshift); figure; subplot plot*Fs/N,abs*2/N); grid on; axis; title; Fs = 20; n = 0:1/Fs:1024*1/Fs; x = sin sin; N = length; X = fftshift); subplot plot*Fs/N,abs*2/N); grid on; axis; title; 结果如下: 1024.jpg 400.jpg 这是我在做FFT以及论坛中的问题时所得到的一点启发,不当之处还请大家指正。OO~ 频率分辨率.rar 为了方便大家,我将doc版报告和m文件一起上传,和帖子内容一样。OO~

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值