<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    頻譜泄漏和hann窗?

    相關文檔: 頻域信號處理

    對于8kHz取樣頻率的200Hz 300Hz的疊加波形進行512點FFT計算其頻譜,比較矩形窗和hann窗的頻譜泄漏。

    # -*- coding: utf-8 -*-
    #用hann窗降低頻譜泄漏
    #
    import numpy as np
    import pylab as pl
    import scipy.signal as signal
    
    sampling_rate = 8000
    fft_size = 512
    t = np.arange(0, 1.0, 1.0/sampling_rate)
    x = np.sin(2*np.pi*200*t)  + 2*np.sin(2*np.pi*300*t)
    
    xs = x[:fft_size] 
    ys = xs * signal.hann(fft_size, sym=0)
    
    xf = np.fft.rfft(xs)/fft_size
    yf = np.fft.rfft(ys)/fft_size
    freqs = np.linspace(0, sampling_rate/2, fft_size/2+1)
    xfp = 20*np.log10(np.clip(np.abs(xf), 1e-20, 1e100))
    yfp = 20*np.log10(np.clip(np.abs(yf), 1e-20, 1e100))
    pl.figure(figsize=(8,4))
    pl.title(u"200Hz和300Hz的波形和頻譜")
    pl.plot(freqs, xfp, label=u"矩形窗")
    pl.plot(freqs, yfp, label=u"hann窗")
    pl.legend()
    pl.xlabel(u"頻率(Hz)")
    
    a = pl.axes([.4, .2, .4, .4])
    a.plot(freqs, xfp, label=u"矩形窗")
    a.plot(freqs, yfp, label=u"hann窗")
    a.set_xlim(100, 400)
    a.set_ylim(-40, 0)
    pl.show()
    

    上一篇文章

    三維標量場觀察器

    下一篇文章

    FFT卷積的速度比較

    97av