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