2013-04-10 55 views
0

我正試圖在Labview中實現一維DCT II型濾波器。可以看到這個公式:here試圖在labview中實現8點1D DCT-II;只能在我的輸出數組中放入一個值

正如你所看到的xk =一個涉及n的迭代的和函數的和。

This is a block diagram of my attempt

據我知道嵌套的for循環應該處理與保持的運行總計輸出的移位寄存器的功能。我的問題在於輸出矩陣xk。矩陣中只有一個輸出,或者每個輸出由於沒有索引而覆蓋最後一個輸出。試圖把裏面的矩陣for循環會導致錯誤的移位寄存器和基體之間:

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

任何人都知道我可以索引輸出到數組?

回答

1

我相信這應該起作用。請檢查數學。

enter image description here

+0

對不起 - 但我完全是新的labview,我很困惑 - 我怎麼「鏈接」我的陣列到Xn輸入和XK輸出?另外 - 是k「鏈接」到別的東西。謝謝 – 2013-04-11 13:56:24

+0

這些是控制和指標。您可以在前面板上創建它們,或者右鍵單擊導線並創建 - >控制/指示器。 另外,請看看以下內容: http://www.ni.com/gettingstarted/labviewbasics/ – 2013-04-12 15:33:43

+0

我看了一眼,看起來已經弄清楚了。什麼讓我懊惱是自動索引與將數組傳遞給for循環,現在我已經發現我可以右鍵單擊將數組傳遞到循環並更改這些設置的位置。感謝您的幫助 – 2013-04-12 18:17:30

1

內部for循環將運行或者8倍,或然而,許多元件處於所述陣列XN。 LabVIEW使用較小的數字來確定迭代計數。所以如果xn是空的,for循環根本不會運行。如果是20,for循環將運行8次。

無論如何,外層循環總是運行8次,所以xk總共有8個元素。

此外,在for或while循環的開始處沒有初始化值的移位寄存器可能會導致問題,除非您的意思是這樣做。第一次運行後存儲在移位寄存器中的值可能會在第二次運行時出現問題。

+0

關於移位寄存器的事情,我已經注意到,但不知道爲什麼會發生。現在我明白了。 – 2013-04-10 14:15:42

相關問題