FFT的局限、采样率与采样时间的设计

68 篇文章 0 订阅
41 篇文章 2 订阅

1.FFT的局限

很多从事应用工作的人,对所用到的数学工具,乃至各种计算机算法,无法完全弄清楚它的运行机制,这是可以接受的。知识是分层的。但是,各种算法的适用性,能做什么,不能做什么,要了解清楚。昨天遭遇到了这样一件事——我处理的信号在基频信号(<100Hz)上叠加有一些载波,载波频率不定,能量最大的载波频率会摆动,而且有更多丰富的谐波。

紫色的部分,就是那条目标数据的时域图样,已放大10倍,它能放大到极其精细的程度

我有一个非常棒的示波器,存储深度能达到 M Sample级别。然后我离线采集了多组500ms定长的数据,每笔数据有1M个采样点。我遇到的问题是,我需要对其进行整周期截断。因为波形细节极其清晰,最初我采用的是直接在时域处理。后来发现有一组数据,用这种方法处理时,算法有瑕疵,有时会多采半个周期,然后就想到利用FFT直接提取基准频率就行了——你不动手去做的时候,可以一直有这种期待,但是你真正动手做的时候,问题就会显现——你会发现对于500ms的采样区间。FFT算法的频率分辨率,仅仅能达到2Hz这样的级别

随着采样深度的加密,FFT能识别到更高频的谐波,但是如果你的示波器档位不变,比如始终是50ms档,你的频谱的粒度,那种分辨率是固定的。如果一个信号的周期是3.125Hz....那么,你仅仅能觉察到在频谱上在2Hz和4Hz的谱线上,会有一个双峰。这无法满足测量要求。

这个情形的原理很简单。FFT反馈的是以采集信号区间为基准频率的倍次谐波。

要搞清楚各种公式,各种趁手的工具函数的输入输出参数。像使用家里的饮水机,电饭煲一样熟悉他们。你不需要知道电饭煲是怎么把电转化成热的。但是你得大致了解,多长时间它能做熟一锅饭。你不需要知道饮水机的内部结构设计,但是你得非常熟练的开关电源,换水桶,接水,然后处理水的溢出。。。。类似这样。

ps:有一些人已经在尝试用变通的方法,尝试处理FFT在采样周期无法过渡延展的这种“近视”,但是,我没有时间去跟踪这些算法,最终,我也没有再完善时域的那个,有瑕疵的上升沿查询算法,而是直接用光标手工测量了周期。FFT算法的采样率,采样周期的具体参数选择,是非常重要的。

2.FFT频谱的频域特性简介

FFT生成的频谱,会有两个非常核心的指标:

  • 频率分辨率   ............ 频谱中,两条相邻谱线的间距,它仅仅取决于采样时长
  • 频谱范围 .................. 也就是频谱中高频部分能延伸多远,它仅仅取决于采样周期。

频谱可以想象成是以采样区间的1倍频,2倍频,3倍频,不断地用更高频的信号叠加,去描摹这个时域波形。一级一级的倍频谱线的间距,只可能等于最低频率。

        最低频率 = 1/采样时长

这就是那个频率分辨率的由来。

而频谱范围呢,为了识别出足够小的信号,你至少每周期得采两个点吧。所以,FFT所能识别到的信号的最高频率其实等于采样周期的2倍,然后取倒数。即:

                                                                最高频率 = 1/(采样周期*2)

[0Hz,最高频率]:这就是那个频谱范围的概念

3.采样率与采样时间的规划

进行FFT计算时,通常是为了求得基准频率,有时候,对高频信号的范围也会有要求,比如说,必须达到基准频率的100倍,比如。根据上面的分析过程,我们知道,相应的时域采样参数是非常容易获取的:

比如:为了得到精确的基准频率(如果频率值可能是个小数),你需要采集尽可能多的周期,它相当于在做周期平均。然后,为了得到基准频率的更丰富高频细节,你需要尽可能缩减采样周期。如果需要得到基准频率100倍的细节,那么你需要把采样率设置到至少:2*100*FreqOfSig的程度才行。

这两者不可得兼,对不对?

在实际是使用过程中,往往依赖于信号的具体特征,然会做相应的简化处理。

比如:如果信号的基准频率很低,这个时候,如果想要直接使用FFT,以周期平均的方式,来得到信号的基频,往往不现实。100倍基准频率的信号采集时间,比如你需要用100秒的采样时长,才能把1Hz附近的基准频率值测到1%的准确度。这个时候,就不如在时域里直接判断上升沿实现。顶再多取一到两个周期校验一下。类似这样。低频和高频信号的特征值测量,类比大尺度物体和小尺度物体的测量,历来就是多种方法并重。

物体小,尺子大,那就排成100个再测。

物体大,尺子小,那就用尺子一点点量,对吧?

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子正

thanks, bro...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值