2017-12-26 23 views
-1

받기 I가 다음의 행렬 A : 이제원래 매트릭스

1 2 3 4 
5 6 7 8 
9 10 11 12 
13 14 15 16 

I 수행 상기 매트릭스에 다음과 같은 작업 :

B = fft2(A); 
amp = abs(B); 
amp_norm = amp/max(max(amp)); 
p = angle(B); 
p_norm = p/pi; 

지금, 나는이 행렬이있는 경우 amp_normp_norm 및 수행 어떻게이 두 행렬이 원래의 행렬로부터 얻어지는 지 알지 못한다면 어떻게 원래의 행렬을 되 찾을 수 있습니까? A?
5-10 % 오류는 정상입니다.

+1

사실상 정보가 없다면 그 행렬을 얻는 방법이 없습니다. ba ck 무한 히트와 시련 이외의 것 –

+0

이것은 수학적 질문이 더 많을 수도 있습니다. – chessofnerd

+0

'amp_norm'에서'amp'를 찾는데 문제가 있습니다. 휴식은 쉽습니다. – Haz

답변

0

원본 행렬 A을 재구성 할 때의 문제점은 사용자가 amp 행렬을 정규화한다는 사실에서 비롯됩니다. 어딘가에서 max(max(amp)) 값을 저장하지 않으면 해당 신호 정보가 영원히 손실됩니다. 다음과 같이

을 감안할 때 pamp는 원래 매트릭스 A 재구성 할 수 있습니다

B_orig = amp .* exp(p .* 1i); 
A_orig = round(real(ifft2(B_orig))); 

을 감안할 때 p_normamp_norm을 대신, 당신은 ... 원래 p하지만 amp를 재 구축 할 수 있습니다 상기 정규화 계수하지 않는 한 어딘가에 저장됩니다 :

k = 136; % the original max(max(amp)) value 
p_orig = p_norm .* pi; 
amp_orig = amp_norm .* k; 
B_orig = amp_orig .* exp(p_orig .* 1i); 
A_orig = round(real(ifft2(B_orig)));