PROBLEM 1 >> load('handel.mat') t0=cputime; Y=fft(y); yTime=cputime-t0 yTime = 0.4910 >> hallelujah=y(1:65536); t0=cputime; Y=fft(hallelujah); yTime=cputime-t0 yTime = 0.0770 >> [y_size, t]=size(y); y_size y_size = 73113 >> % Since the original size of y is 73113x1 and hallelujah is 65536x1 >> % hallelujah is smaller than y and hence requires less cpu time. PROBLEM 2 >> load('handel.mat') i=sqrt(-1); F4=[1 1 1 1; 1 i -1 -i; 1 -1 1 -1; 1 -i -1 i] R=[1 0 0 0; 0 0 0 1; 0 0 1 0; 0 1 0 0] % Since F is symmetric, F* is the same as conj(F4) R_HerF=R*(conj(F4)) F4minusRHerF=F4-R_HerF F4 = 1.0000 1.0000 1.0000 1.0000 1.0000 0 + 1.0000i -1.0000 0 - 1.0000i 1.0000 -1.0000 1.0000 -1.0000 1.0000 0 - 1.0000i -1.0000 0 + 1.0000i R = 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 R_HerF = 1.0000 1.0000 1.0000 1.0000 1.0000 0 + 1.0000i -1.0000 0 - 1.0000i 1.0000 -1.0000 1.0000 -1.0000 1.0000 0 - 1.0000i -1.0000 0 + 1.0000i F4minusRHerF = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> % Note that F-RF*=0, which means F=RF*, or F=R*conj(F), since F* is the same as conj(F) % due to the fact that F is always symmetric, so F=F' always. Since s=Fx is the Fourier % transformation of a real sequence x and s is the complex conjugate of s, % we have the same case as F-RF*. Thus, we can conclude that s-R*conj(s)=0, which % means s=R*conj(s). % Since s=R*conj(s) and power(s)=power(conj(s)), power(s)=Power(R*conj(s))=Power(R*s). % Therefore, the only way that the power(s) can equal to Power(R*s) is if the graph is % symmetric.