diff m-toolbox/test/utils/test_eigcsd.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/test/utils/test_eigcsd.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,102 @@
+% A test script for utils.math.eigcsd
+% 
+% L. Ferraioli 18-11-08
+% 
+% $Id: test_eigcsd.m,v 1.2 2009/06/10 16:12:06 luigi Exp $
+% 
+
+%%
+
+clear all
+
+%% CSD Noise models and TF
+
+[CSD,TF] = get_2D_test_obj_tf_psd();
+
+% get noise coherence
+% coh = CSD(1,2)./sqrt(abs(CSD(1,1).*CSD(2,2)));
+% rcoh = real(coh);
+% rcoh.setName;
+% icoh = imag(coh);
+% icoh.setName;
+
+%% Get Noisegen TFs numerically
+
+[tf11,tf12,tf21,tf22] = utils.math.eigcsd(CSD(1,1).y,CSD(1,2).y,CSD(2,1).y,CSD(2,2).y,'USESYM',0,'DIG',50,'OTP','TF');
+
+% Build AOs
+h11 = ao(plist('xvals', TF(1,1).x, 'yvals', tf11, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h11.setName;
+h12 = ao(plist('xvals', TF(1,1).x, 'yvals', tf12, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h12.setName;
+h21 = ao(plist('xvals', TF(1,1).x, 'yvals', tf21, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h21.setName;
+h22 = ao(plist('xvals', TF(1,1).x, 'yvals', tf22, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h22.setName;
+
+
+%% Checking generated TFs
+
+iplot(abs(abs(TF(1,1))-abs(h11)))
+iplot(abs(abs(TF(1,2))-abs(h12)))
+iplot(abs(abs(TF(2,1))-abs(h21)))
+iplot(abs(abs(TF(2,2))-abs(h22)))
+
+%% Calculate psd
+
+xx11 = h11.*conj(h11)+h12.*conj(h12);
+xx12 = h11.*conj(h21)+h12.*conj(h22);
+xx22 = h22.*conj(h22)+h21.*conj(h21);
+xx21 = conj(xx12);
+xx11.setName;
+xx12.setName;
+xx21.setName;
+xx22.setName;
+
+%% Compare
+
+iplot(CSD(1,1),xx11)
+iplot(CSD(1,2),xx12)
+iplot(CSD(2,1),xx21)
+iplot(CSD(2,2),xx22)
+
+%% Get Noisegen TFs symbolically
+
+[tf11,tf12,tf21,tf22] = utils.math.eigcsd(CSD(1,1).y,CSD(1,2).y,CSD(2,1).y,CSD(2,2).y,'USESYM',1,'DIG',50,'OTP','TF');
+
+% Build AOs
+h11 = ao(plist('xvals', TF(1,1).x, 'yvals', tf11, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h11.setName;
+h12 = ao(plist('xvals', TF(1,1).x, 'yvals', tf12, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h12.setName;
+h21 = ao(plist('xvals', TF(1,1).x, 'yvals', tf21, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h21.setName;
+h22 = ao(plist('xvals', TF(1,1).x, 'yvals', tf22, 'fs', TF(1,1).fs, 'dtype', 'fsdata'));
+h22.setName;
+
+
+%% Checking generated TFs
+
+iplot(abs(abs(TF(1,1))-abs(h11)))
+iplot(abs(abs(TF(1,2))-abs(h12)))
+iplot(abs(abs(TF(2,1))-abs(h21)))
+iplot(abs(abs(TF(2,2))-abs(h22)))
+
+%% Calculate psd
+
+xx11 = h11.*conj(h11)+h12.*conj(h12);
+xx12 = h11.*conj(h21)+h12.*conj(h22);
+xx22 = h22.*conj(h22)+h21.*conj(h21);
+xx21 = conj(xx12);
+xx11.setName;
+xx12.setName;
+xx21.setName;
+xx22.setName;
+
+%% Compare
+
+iplot(CSD(1,1),xx11)
+iplot(CSD(1,2),xx12)
+iplot(CSD(2,1),xx21)
+iplot(CSD(2,2),xx22)
+