尝试在labview中实现8点1D DCT-II;只能在我的输出数组中放一个值

时间:2013-04-10 12:28:52

标签: signal-processing labview

我正在尝试在Labview中实现一维DCT II型滤波器。可以看到here

的公式

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

This is a block diagram of my attempt

据我所知,嵌套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

任何人都知道我如何将输出索引到数组?

2 个答案:

答案 0 :(得分:1)

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

enter image description here

答案 1 :(得分:1)

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

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

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