2011-05-09 304 views
4

兩個問題真的,但我想,使其更具描述:矩陣乘法

我實現這涉及複雜的向量的矩陣乘法調製器:

只給一個例如:

cck_encoding_table(1,:)= [ 1j 1 1j -1 1j 1 -1j 1 ]; 
cck_encoding_table(2,:)= [ -1j -1 -1j 1 1j 1 -1j 1 ]; 
cck_encoding_table(3,:)= [ -1j 1 -1j -1 -1j 1 1j 1 ]; 
cck_encoding_table(4,:)= [ 1j -1 1j 1 -1j 1 1j 1 ]; 

基本上,我需要在Simulink公司(Xilinx)來實現這個最終在硬件:

cck_n_code=exp(1j*Phi1)*cck_encoding_table(index+1,:); 

我的問題,如何建模複雜向量的矩陣乘法。我的理解是使用Complex Multiplier。但是,這只是乘以2個複合向量

如果我必須在一個時鐘中乘以2個以上的複數向量,這是可能的。

我不希望像模型本身,但可能的方法/方向的任何答案,如果有解決問題

感謝您的閱讀, 基蘭

回答

4

簡單地寫出來,從產生的低級別方程式您矩陣乘法。輸出的每個元素將是對來自輸入矢量矩陣的元素的乘法集合進行求和的結果。

如果您需要快速完成,請根據需要放置儘可能多的複數乘法器和加法器,並將輸入元素連接到它們上面 - 這會一次性爲您提供所有輸出,並要求您擁有所有輸入一次可用。

或者,把你的輸入放入一個內存塊(或者可能是2,一個用於向量,另一個用於矩陣),並安排一些邏輯,將正確的地址送入該內存塊,以迭代適當的元素訂購。這些輸入進入一個複數乘法器,然後進入一個複雜的累加器(您可能必須從一個加法器和可復位寄存器中對其進行建模)。您的控制邏輯將需要定期重置該累加器。

累加器的輸出可以反饋到下一個階段,或者存儲在另一個內存塊(另一個控制邏輯管理的地址)中。

如果你的編碼表總是隻包含來自集合(1,-1,j,-j)的元素,那麼你可以將它們編碼爲2位,而不是存儲完整表示的複數並寫入定製的邏輯,它利用這個事實來創建比通用目標更復雜的乘法器。