samer@32: function X=imagspec(A,P) samer@32: % IMAGSPEC - convert mag/phase spectrum to wave samer@32: % samer@32: % imagspec :: [[M+1,L]]~'magnitude', [[M+1,L]]~'phase' -> [[2*M,L]]~'signal'. samer@32: % imagspec :: [[M+1,L]]~'magnitude' -> [[2*M,L]]~'signal'. samer@32: % samer@32: % Second form uses random phases. samer@32: samer@32: n=size(A,1); samer@32: if nargin<2, samer@32: % make up random phases samer@32: P=exp(2*i*pi*rand(size(A))); samer@32: end samer@32: A=[A; A(n-1:-1:2,:)]; samer@32: phi=[P; conj(P(n-1:-1:2,:))]; samer@32: X=real(ifft(phi.*A)); % get waveform samer@32: samer@32: samer@32: