0

我正在尝试在 Labview 中实现一维 DCT II 型滤波器。这个公式可以在这里看到

如您所见,xk = 涉及 n 次迭代的 sum 函数的总和。

这是我尝试的框图

据我所知,嵌套的 for 循环应该使用移位寄存器处理函数,保持输出的总和。我的问题在于矩阵 xk 的输出。矩阵只有一个输出,或者由于没有 indexig,每个输出都会覆盖最后一个输出。试图将矩阵放在 for 循环中会导致移位寄存器和矩阵之间出现错误:

You have connected two terminals of different types. 
The source is a double and the sink is a 1D array of double

有人知道我如何将输出索引到数组吗?

4

2 回答 2

1

我相信这应该有效。请检查数学。

在此处输入图像描述

于 2013-04-10T13:23:34.670 回答
1

内部 for 循环将运行 8 次,或者数组 xn 中有许多元素。LabVIEW使用较小的数字来确定迭代次数。因此,如果 xn 为空,则 for 循环根本不会运行。如果是 20,for 循环将运行 8 次。

无论如何,外部循环总是运行 8 次,所以 xk 总共有 8 个元素。

此外,在 for 或 while 循环开始时未初始化值的移位寄存器可能会导致问题,除非您打算这样做。第一次运行后存储在移位寄存器中的值可能在第二次运行时出现问题。

于 2013-04-10T13:34:41.797 回答