这个做移动平均线的代码是否正确?
y=conv(x, ones(1,100)/100);
我想用代码中的移动平均滤波器过滤我的语音信号。我认为我可以为此使用卷积。
这个做移动平均线的代码是否正确?
y=conv(x, ones(1,100)/100);
我想用代码中的移动平均滤波器过滤我的语音信号。我认为我可以为此使用卷积。
假设您使用的是 Matlab 或 GNU Octave,那么是的,应该没问题。 与本教程比较使用卷积进行移动平均。
您已经在内核上完成了除法,但是无论您在此处还是在卷积之后执行它都没有数学上的区别。实际上,如果您按照自己的方式进行操作(扩展内核),将花费更少的时间。
您可能会发现移动平均线不足以进行音频处理。然后,您将需要考虑在 Matlab 中使用适当的方法创建过滤器。一些与Matlab一起搜索的关键字:filter、butter。
@jojek 的好建议。平滑通过卷积进行移动平均,但也有其他选项。如果您有大量数据需要过滤,它还可以利用 GPU 来加快处理速度。