2011-05-09 255 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位,而不是存储完整表示的复数并写入定制的逻辑,它利用这个事实来创建比通用目标更复杂的乘法器。