测不准原理

记录,科技 2019-05-21 7 条评论 访问: 1,968 次

问题:如何利用FFT测量信号的频率以及基频幅值?
设定:FFT点数N,采样率Fs>=2omega,信号基频omega,幅值Amp
fft.jpg

测量频率
根据FFT原理,N点FFT计算得出的是长度为N的向量(频谱),频谱关于N/2点镜像对称,
对于正弦,方波,三角波等简单信号,FFT得出的频谱向量[0]为0频,即直流分量,[1]-[N/2]为各个频点的幅值数据。
fft_dsp.png

由于是离散系统,向量索引即为频率,频率分辨率为Fs/N,故实际频率与[0]-[N/2]中幅值最大者的索引成线性关系,但是由于频率被离散掉,并不能得出准确的频率,那么如何得到准确的频率?方法是提高FFT点数,降低采样率Fs,故FFT点数N一定时,降低Fs至2*omega可以得到最高频率分辨率,即以此方法计算得到的频率精度最高。
测量幅值
由于采样序列无法满足为信号整周期序列,会存在频谱泄露情况,故为尽量减小此效应要尽量降低频率分辨率,让真实信号的频率分量尽量集中,这样可以减少频谱泄露效应,提高幅值精度,方法时提高采样率Fs,降低采样点数N,如当FFT点数N一定时,提高采样率取Fs=20*omega进行采样。于此同时,可以将幅值最大者索引以及其周边某一深度的索引对应得幅值分量求和,注意这里得求和指的是FFT计算得出的实部与虚部求模再求和再开方,以此作为最终的信号基频幅值。以这样的方法做处理可以得到精度较高的幅值。(当然也可以加窗)
freq_amp.png

综上,那么如何利用FFT测量信号的频率以及基频幅值?
前提FFT点数为N
1.在信号频率范围内,以信号的最高频率的2倍进行采样,采样,FFT,得出基频后以2倍基频的采样率进行采样,再得出基频,如此往复,直到得到的频率的2倍与此次采样率的差值小于某设定值,即可认为该频率为信号最优频率。
2.在已知信号的最优频率f之后,以20倍f进行采样,(越高越好,但采样序列至少要包含信号的一个整周期,故由采样率有上限),以除0频外的幅值最大者与其旁侧深度为n的各频点的实部虚部平方和的开方作为最优幅值。

由此可以看出,你永远也无法同时得出准确的幅值与频率,这也许就是测不准原理吧?(不确定性原理)
不确定性原理(Uncertainty principle)是由海森堡于1927年提出,这个理论是说,你不可能同时知道一个粒子的位置和它的速度。用海森堡自己的话说:“在因果律的陈述中,即‘若确切地知道现在,就能预见未来’,所得出的并不是结论,而是前提。我们不能知道现在的所有细节,是一种原则性的事情。”
薛定谔的猫.jpg
cat.jpg

但是工程应用中,并不是测不准,而是真的不准。你ADC基准电压不准,稳压电源示数不准(做个毛跟随器,漂移能到1.5v?!),万用表没电不准,信号发生器示波器不准,晶振不准,最有意思的是你人也不准,你以为它工作在72MHz,实际上你根本没配置时钟,你TM工作在8MHz!

好,真香。
相关阅读:嗯VIEW-基于信号FFT频谱的幅频测量方案
8MHz
51.jpg

72MHz
stm32.jpg


除非注明,嗯VIEW文章均为原创,转载请以链接形式标明本文地址
本文地址:https://www.umview.com/Indeterminacy-Principle

本文由 nash.zhao 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

7 条评论

  1. 程志辉
    程志辉

    看不懂系列,感觉像是网络方面......

    1. nash.zhao
      nash.zhao

      嘻嘻,信号处理方向

  2. yuukkkki
    yuukkkki

    嗨。你也算做过两次信号了。哈哈哈水深吧

    1. nash.zhao
      nash.zhao

      水深+1,水深+1,仅此而已。

    2. sdh
      sdh

      你的头像为什么会旋转。。。先用两倍频率得到频率(周期)?再20倍的频率求幅值?有空带我走一波17年的题吧(卑微)。

      1. yuukkki
        yuukkki

        在我这看你的头像也能旋转emmmmmmmmm小龙虾杀手

      2. nash.zhao
        nash.zhao

        Gravatar,了解一下,emmm不知道对不对

添加新评论