1 0 0

强大的BASS频谱扩展;采用FFT4096绘制

2022-10-14 615
FFT称为细化的快速傅立叶变换,又称为选带快速傅立叶变换。功能是对信号的频率进行局部细化放大,使感兴趣的频带获得较高的频率分辨率。实现FFT细化功能的算法有几种,如频移法-、相位补偿法和最大熵谱法等,目前应用最关的是频移法。频移细化FFT的方法是基于离散傅立叶变幻的频移原理




假设信号为:fn,时域信号直接进行fft变换前,先进行去除直流分量,即X每一元素值减去平均值,得到Xn;(也可以进行一次高通滤波);

 

 

得到的新序列进行fft变换(我们假设fft的点数N=4096个点),然后就得到其频域信号。




进行fft变换后,采样频率Fs = 3.2258×106 Hz,fft变换点数N=4096;fft之后的频谱图前半部分为上图,上图是只取前半部分共2048个点。

 

 

在1-2048个点的范围之内寻找最大值点的位置loc_peak,并计算出最大值的频率点值,即得到粗略的中频:f_peak = (loc_peak-1)*3.2MHz/4096;

 

 

这个计算的频率,由于fft自身限制往往是精确度不高。对于需要高精度测量的场合,例如工业测量要求毫米级的测量无法满足,需要进行频谱细化。

【弹性绘制方式:采用贝塞尔曲线组绘制】
此方法只是介绍具体实现方法 并不提供code


这种我们要对原频谱重新采样;原有信号的个数有2016个(0-2015),重新采样就是每间隔D-1=127个数据采样一次,采样点数大大减少。看起来没那么拥挤

【经典的风格】


像这种风格我们就可以全频段绘制;比如我们重新采样2048个点;
如果没有那么多即补充一部分零,使得整个数组达到2048个点。然后进行fft变换,fft的点数仍然采用4096个点,并取其绝对值(abs)我们还可以细化频谱。

细化后的频谱

可以看出在同样的频段内,数据点增加:19→4096

 

在这段频段内寻找最大值,即为要求的频率峰值点:,这也是频谱细化的最直接表示,即单位频段(距离)内可表达的点数增加,从而精度增大。


【更多风格】
只要清楚了各个频段的采样数据我们就可以做出想要的效果:


提供的code中我们用到了BASS;已经打包到网盘http://joui.ysepan.com/ 直接下载放在目录即可运行哦。




上传的附件:
最新回复 (1)
  • langyi 2022-10-24
    0 引用 2

    这个更贵

请先登录后发表评论!

返回
请先登录后发表评论!