一维卷积的实现

    xiaoxiao2021-03-25  98

    ouble convfft(vector<double> &a, vector<double> &b, vector<double> &cx) { unsigned int sz = a.size() + b.size() - 1; cx.resize(sz); int b_len = b.size(); int a_len = a.size(); for (int n = 0; n < sz; n++) { int kmin = (n >= b_len - 1) ? n - (b_len - 1) : 0; int kmax = (n < a_len - 1) ? n : a_len - 1; for (int k = kmin; k <= kmax; k++) { cx[n] += a[k] * b[n - k]; } }

    return 0;

    这种是根据卷积的特点进行计算的,还有就是通过傅里叶进行求卷积;先将原来的数据扩展,长度为信号的长度+滤波器的长度-1;之后求各自的傅里叶变换,之后求乘积,在求逆傅里叶变换。这种还没有实现。

    转载请注明原文地址: https://ju.6miu.com/read-11080.html

    最新回复(0)