matlab filter 函数,C++ 实现matlab filter()函数
时间: 2023-11-03 15:17:49 浏览: 81
Matlab中的filter函数是用于数字信号滤波的函数,可以根据给定的滤波器系数对输入信号进行滤波操作。在C++中,可以使用DSP库中的函数实现相同的功能。
以下是一个简单的示例代码:
```c++
#include <iostream>
#include <vector>
#include <dsp.h>
using namespace std;
int main()
{
vector<double> input{1, 2, 3, 4, 5}; // 输入信号
vector<double> b{1, 2, 3}; // 滤波器系数的分子部分
vector<double> a{1, 0.5}; // 滤波器系数的分母部分
vector<double> output(input.size()); // 输出信号
filter(b.data(), b.size(), a.data(), a.size(), input.data(), output.data(), input.size());
for(auto out : output)
{
cout << out << " ";
}
cout << endl;
return 0;
}
```
在上面的代码中,我们使用了DSP库中的filter函数,该函数需要传入滤波器系数的分子部分b、滤波器系数的分母部分a、输入信号input以及输出信号output等参数。最后,我们将输出的信号打印到控制台上。
需要特别注意的是,这里的输入信号、输出信号以及滤波器系数等都是使用vector容器来存储的,这是因为vector具有动态分配内存的特性,可以根据实际情况自动调整大小,因此非常方便使用。
阅读全文