GNU Radio 中 FFT 模块的窗函数包括以下几种:矩形窗(Rectangular Window)、汉明窗(Hamming Window)、汉宁窗(Hann Window)、黑曼窗(Blackman Window)、黑曼-哈里斯窗(Blackman-Harris Window)、凯泽窗(Kaiser Window)、巴特利特窗(Bartlett Window)、平顶窗(Flattop Window),本文对窗函数实现的结果做一个记录对比。
首先我们先创建一个简单的 grc 图,将信号源变成标签流通过限流器后再分两路,一路接给示波器1和频谱仪1,另一路通过 FFT 再进行归一化后再送给 IFFT 然后送给示波器2,我们主要考察的是使用不同窗函数所带来的信号变化。
对 FFT 模块和 IFFT 模块均做如下修改:
window.rectangular(fft_len)
运行结果如下:
①、时域对比:
使用矩形窗后,原信号经过 FFT 和 IFFT 可以复原原信号。
②、频谱对比:
对 FFT 模块和 IFFT 模块均做如下修改:
window.hamming(fft_len)
运行结果如下:
①、时域对比:
使用汉明窗后,原信号经过 FFT 和 IFFT 不可以复原原信号。
②、频谱对比:
对 FFT 模块和 IFFT 模块均做如下修改:
window.hann(fft_len)
运行结果如下:
①、时域对比:
使用汉宁窗后,原信号经过 FFT 和 IFFT 不可以复原原信号。
②、频谱对比:
对 FFT 模块和 IFFT 模块均做如下修改:
window.blackman(fft_len)
运行结果如下:
①、时域对比:
使用黑曼窗后,原信号经过 FFT 和 IFFT 不可以复原原信号。
②、频谱对比:
对 FFT 模块和 IFFT 模块均做如下修改:
window.blackman_harris(fft_len)
运行结果如下:
①、时域对比:
使用黑曼-哈里斯窗后,原信号经过 FFT 和 IFFT 不可以复原原信号。
②、频谱对比:
对 FFT 模块和 IFFT 模块均做如下修改:
window.kaiser(fft_len, 7)
运行结果如下:
①、时域对比:
使用凯泽窗后,原信号经过 FFT 和 IFFT 不可以复原原信号。
②、频谱对比:
对 FFT 模块和 IFFT 模块均做如下修改:
window.bartlett(fft_len)
运行结果如下:
①、时域对比:
使用巴特利特窗后,原信号经过 FFT 和 IFFT 不可以复原原信号。
②、频谱:
对 FFT 模块和 IFFT 模块均做如下修改:
window.flattop(fft_len)
运行结果如下:
①、时域对比:
使用平顶窗后,原信号经过 FFT 和 IFFT 不可以复原原信号。
②、频谱对比: