2011-05-09 6 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 ]; 

는 기본적으로, 나는 시뮬링크 (자일링스)에서이를 구현해야 결국 하드웨어의 :

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

제 질문, 복잡한 벡터로 행렬 곱셈을 모델하는 방법. 제 이해는 Complex Multiplier입니다. 하지만 그것은 단지 2 개의 복소 벡터를 곱하는 것입니다.

단일 시계에서 2 개 이상의 복소수 벡터를 곱해야한다면 가능할 것입니다. 어떤 문제를 읽기

감사합니다, 키란를 해결하는 경우

나는 모델 자체 만 가능한 접근/방향과 같은 어떤 대답을 기대하고 있지 않다

답변

4

간단하게 결과 낮은 수준의 방정식을 쓰기 당신의 행렬 곱하기. 출력의 각 요소는 입력 벡터 & 행렬의 요소 곱셈의 합계 결과입니다.

빨리 처리해야하는 경우 필요한만큼 복잡한 곱셈기와 덧셈기를 입력하고 입력 요소를 연결합니다. 그러면 모든 출력이 한꺼번에 제공되므로 모든 입력은 한 번에 사용할 수 있습니다.

또는 입력을 메모리 블록 (또는 벡터의 경우 2 개, 매트릭스의 경우 1 개)에두고 해당 메모리 블록에 올바른 주소를 공급하여 적절한 요소를 반복하는 논리를 정렬하십시오 주문. 이러한 입력은 복소 곱셈기로 이동 한 다음 복소 누산기로 이동합니다 (가산기 및 재설정 가능 레지스터에서 모델링해야 할 수도 있음). 귀하의 제어 논리는 주기적으로이 누적기를 재설정해야합니다.

누적 기의 출력은 다음 단계로 공급되거나 다른 메모리 블록 (관리 논리를 관리 할 다른 주소)에 저장할 수 있습니다.

인코딩 테이블이 항상 집합 (1, -1, j, -j)의 요소 만 가지려고하는 경우 완전히 표현 된 전체 복소수를 저장하지 않고 2 비트로 인코딩 할 수 있습니다. 이 사실을 이용하여 범용 목적보다 훨씬 단순한 복소 곱셈기를 생성하는 로직의 커스텀 부분.