FIR 维纳滤波器的 mex 函数实现,真是挺实用的好东西。直接用 C 写的子例程,配合 MATLAB 搞定 Yule-walker 方程,响应也快,代码也简单。嗯,像lu_decomposition
这种运算量大的场景合适。
代码结构还比较清晰,想要继续扩展也方便。你要是习惯写mex
,就能体会到 C 和 MATLAB 之间指针转换那点小麻烦,但也算不上难事。用熟了就知道,组合现有 C 库是真的省事。
还挺适合用作模板哦,比如以后想搞均衡器
或者DFiltMPFIR
也能照着思路写。别忘了看下CT 环去除滤波器那个例子,和这思路也蛮像。
如果你常在 MATLAB 里跑大矩阵计算,建议把LU 分解
部分也单独抽出来写成mex
,响应速度会快一大截。