计算机系统应用教程网站

网站首页 > 技术文章 正文

「信号与处理 二 」FFT滤波与卷积滤波的比较

btikc 2024-11-03 13:18:14 技术文章 9 ℃ 0 评论

用FFT和iFFT实现滤波:

图1对应代码链接:https://gitee.com/anjiang2020_admin/fft/blob/master/fft.py
ys 为一个由频率为180,390,600的正弦波叠加而成的信号

ys_390是ys中频率为390的那个信号。用以下代码对ys进行了滤波,只剩下390频率的信号。图1中的ys filterd by H就是滤波后的信号,其与ys_390基本一样。


fft(ys)为ys的频谱。可以看到,频率在180,390,600时是峰值。

filtered signal's fft: 是 ys filtered by H的频谱,可以看到,因为被H滤波了,只剩下f=390的频率了。

the time signal of H:H的反傅立叶变换。这个信号要和ys做卷积,同样会产生滤波效果。

filter H:就是滤波器了,这是个带通滤波器,只剩下频率在390附近的信号,其它频率的信号过滤掉。

用卷积实现滤波:



图2中的convH就是用卷积实现滤波的效果,可以看起,其曲线与ys_390一致。

卷积的代码如下:


引入scipy.signal里的convolve函数


conv(ys,filter_h_org)实现了卷积滤波。这里的filter_h_org是由ifft(H)得到的。将ifft(H)的后半部分平移到前半部分即可。

总结:可以看到,用fft和ifft实现的滤波结果和卷积实现的滤波结果一致。

所以说:卷积神经网络里的卷积操作,其实是对输入信号的滤波。

关于卷积FFT与 DFT以及DFT的源码实现,请参考:

赵明明:[信号与处理]傅立叶变换中的DFT实现以及与scipy.fft的对比:https://www.toutiao.com/i7047374338911224357/


参考:理解Scipy卷积:https://link.zhihu.com/?target=https%3A//blog.csdn.net/weixin_39715997/article/details/110968470



Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表