c - C 编程中的格子冷杉滤波器?

标签 c algorithm filtering signal-processing

我想在 C 中实现lattice fir滤波器。我的问题是如何设置延迟时间(z-1)。我尝试计算每次迭代的前一个样本,但是对于第 M 个第一个样本,我有一个负值。

您可以找到算法here

最佳答案

p 是一个指向 float 的指针,i 是一个 short int。您在循环条件中将 p 分配给 i:

void LatticeFIR(…, float *p)
{
    short i;
    …
    for (i=1;i=p;i++)

这实际上没有任何意义。如果你这样做,你的编译器应该会发出大量警告。

编辑: 只是为了给您一个想法,这就是 clang -Wall 对此的说法:

x.c:4:14: warning: incompatible pointer to integer
conversion assigning to 'short' from 'float *' [-Wint-conversion]
    for(i=1;i=p;i++)
             ^~
x.c:4:14: warning: using the result of an assignment
as a condition without parentheses [-Wparentheses]
    for(i=1;i=p;i++)
            ~^~
x.c:4:14: note: place parentheses around the assignment
to silence this warning
    for(i=1;i=p;i++)
             ^
            (  )
x.c:4:14: note: use '==' to turn this assignment into
an equality comparison
    for(i=1;i=p;i++)
             ^
             ==
2 warnings generated.

关于c - C 编程中的格子冷杉滤波器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44496859/

相关文章:

php - 为 php/mysql CMS 预处理和后处理多语言用户输入的最佳方法

c - 从 execlp() 获取返回

c - 如果数据左对齐,读取 MSB 和 LSB

在数组中查找奇数项(没有对)的算法?

java - 如何改进这个填充日历网格的算法?

jQuery 隐藏了所有的 <li> 标签

c - 向后读取文件(最后一行在前)

c - 如何使用 sscanf 在回车符上拆分字符串?

algorithm - 解决不容易以 MT 形式表示的递归关系

wpf - 设置过滤器后如何更新 RadGridView?