0
$\begingroup$

Im trying to do a problem of ICA from a Image Processing book, but when I finish I got the Matrix C different from the one in the exercise. This is the Exercise: Exercise Exercise2 This is my Matlab Code:

t=1:1000;
f=sin(t*pi/19);
g=sin(pi*t/5)+sin(pi*t/31);
h=mod(.3*t,1.5);
m1=.3*f+.4*g+.3*h;
m2=.5*f+.2*g+.3*h;
m3=.1*f+.1*g+.8*h;
mn=[m1;m2;m3];
m1p=m1-mean2(mn);
m2p=m2-mean2(mn);
m3p=m3-mean2(mn);
mnp=[m1p;m2p;m3p;];
C=(mnp*mnp')/3;
[V,D]=eig(C);
eigenvalues=diag(D);
eigenvector=V;

My result in the Matrix C is:

C =

   77.2656   60.7483   26.2664
   60.7483   64.0480   23.0485
   26.2664   23.0485   56.4664

This are the steps of the algorithm: Step0-1 Step2-3 Then there is some info about applying to Signal Processing: enter image description here

My problem is I don't get the same Matrix C from the exercise.

$\endgroup$

1 Answer 1

2
$\begingroup$

In the line

C=(mnp*mnp')/3

you're dividing by 3 when you should really be dividing by the number of observations, which is 1000 in your case.

$\endgroup$
1
  • $\begingroup$ Oh you are right, it didnt look the same, but very close : C = 0.2318 0.1822 0.0788 0.1822 0.1921 0.0691 0.0788 0.0691 0.1694 ! thank you very much $\endgroup$
    – Pulse9
    Apr 22, 2015 at 12:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.