2014-07-08 2 views
0

모두에게 좋은 날!매트릭스와 벡터 사이의 회선

나는 Tx의 각 열과 필터 h 사이의 회선을 수행하고있는 MATLAB 프로그램을 작성 중이다. (필자는 필터 열을 필터 열로 원한다 : 첫 번째 열은 필터 h이고 두 번째 열은 필터 h이다. ... 등등

Tx = complex(randn(165,12), randn(165,12)); 
h=[0.1 -0.05 0.2 -0.5 0.3 0.02]; 
  • 이 어떻게 필터 (H)와, 전체 송신 매트릭스를 필터링하도록 진행할 수)에?

내 MATLAB 코드 :

Tx = complex(randn(165,12), randn(165,12));  
h=[0.1 -0.05 0.2 -0.5 0.3 0.02]; 
[r c]=size(Tx); 

for i=1:c 
    Rx=conv(h,Tx(:,i).'); 
end 
  • 내가 전체 결과 수신 행렬을 절약하려면?
+1

사용할 수 있습니까? – Dan

+0

@ Dan : 감사합니다. conv2의 예를 들어 주시겠습니까? – user3070338

+1

그녀는'conv'와 정확히 똑같이 작동합니다 ... 예를 들어'conv2 (h ', Tx)'를 시도하십시오. 문서를 읽고 놀면됩니다. – Dan

답변

0

원본 크기를 유지하거나 전체 회선을 유지하지 않고 매개 변수 'same'을 사용하여 conv2()를 사용합니다.

예 :

conv2(ones(5),[1,2.5,-0.7],'same') 
conv2(ones(5),[1,2.5,-0.7]','same') 

필터와 제 convolvs 각 행과 각 열의 제 컨볼 루션.

당신은 당신이`conv2` 봤어

Rx =conv2(Tx,h','same'); 
+0

내 코드가 수정되어 다음과 같이 나타납니다. x = conv2 (Tx. ', h); 그게 내가 Tx의 각 열을 필터링하려고 노력하고 있다는 것을 의미하고, 마지막 행렬은 전체 행렬 Rx를 보존 하는가? – user3070338

+0

예. 그러나 작은 필터를 조 변경하는 것이 더 빠릅니다. 매트릭스를 조 변경하는 것 (거대합니다)입니다. 또한, Rx가 Tx보다 큰 경우 '동일'을 사용하지 않으면 – DanielHsH