diff dsp/imagspec.m @ 32:c3b0cd708782

Imported core dsp tools.
author samer
date Sun, 20 Jan 2013 13:48:47 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dsp/imagspec.m	Sun Jan 20 13:48:47 2013 +0000
@@ -0,0 +1,19 @@
+function X=imagspec(A,P)
+% IMAGSPEC - convert mag/phase spectrum to wave
+%
+% imagspec :: [[M+1,L]]~'magnitude', [[M+1,L]]~'phase' -> [[2*M,L]]~'signal'.
+% imagspec :: [[M+1,L]]~'magnitude' -> [[2*M,L]]~'signal'.
+%
+% Second form uses random phases.
+
+n=size(A,1);
+if nargin<2,
+	% make up random phases
+	P=exp(2*i*pi*rand(size(A)));
+end
+A=[A; A(n-1:-1:2,:)];
+phi=[P; conj(P(n-1:-1:2,:))];
+X=real(ifft(phi.*A));	% get waveform
+
+
+