首页 > 代码库 > 为什么用卷积滤波,而不是很简单的在频率领域内进行数据的频率处理
为什么用卷积滤波,而不是很简单的在频率领域内进行数据的频率处理
卷积,为了更好的“动态”滤波!
问题来了,为什么用卷积滤波,而不是很简单的在频率领域内进行数据的频率处理?
为了强调我认为的答案,已经用blog标题给出了。卷积,为了更好的“动态”滤波!
有心人可能会思考这样的问题,对于带有噪声的输入信号,要滤去高频噪声(如下图中的信号,我特意假定输入为y = sin(10x)+sin(1000x)的输入信号,可以明显的观察到强烈的高频噪声)
如果想搞定这个滤去高频噪声本身不是难事,直接fft 转换到频率领域,然后把高频部分直接置0,然后逆向fft转换回时间领域。搞定。。。
(为了方便,这里直接调用matlab的fft,当然我们也可以用自己写的fft)
下面是fft得到的频谱,我们可以很直观的看到中间的两道直峰是高频段,左右两边的是低频断,如果想低通滤波就直接把高频段直接置0就可以了,这很“简单粗暴”。
下面是输入信号和输出信号的对比
效果很好嘛,不管什么类型的滤波,反正我在频率内操作数据,然后逆向变换到时间领域就是了。
但是,问题来了,以上的fft都是基于有一定规模的数据,说直接点就是已经得到了数据,然后处理数据。
实际的通信的信号处理往往不会这样,比方说打电话,别人说了一段话了,不可能等手机处理器采集足够多的数据然后处理了,接着再把处理好的数据利用功放播放出来吧!
这里就涉及到一个实时信号处理的问题。一旦要求信号处理实时操作,那么上述的变换到频率领域再变换回时间领域的方法不再适用。怎么办? 频率内的乘法对应时间领域内的卷积!
所以,当下面这种带有复杂频率信息的信号实时连续的输入系统时,我们为了实时处理就要用卷积,把滤波的工作完全在时间领域内搞定。
文章引发的问题也就得到了解决。时间领域内,卷积能够更好的实时滤波。
进而才会有各种卷积函数的设计。不搞清楚为什么用卷积而不是直接的频率领域内处理很难让人有足够的动力去看那些为了更好的设计卷积函数而附带的繁杂的关于卷积函数设计的数学分析。
为什么用卷积滤波,而不是很简单的在频率领域内进行数据的频率处理