I'm attempting to reconstruct a signal from the DFT of the signal. I tried to do it by extracting the individual sinusoids and adding them up, but the answer I get is incorrect.
s = [3 1 4 1 5 9 2 6]#Some random signal(first few digits of pi in this case) t = 0:(1/7):1;#Sampling at each of these equally spaced time intervals f = fft(s); a = abs(f);#Magnitude of each DFT component an = arg(f);#Phase of each DFT component recs = (a(1)/8)*cos(0*pi*t + arg(1)) + (a(2)/8)*cos(2*pi*t + arg(2)) + (a(3)/8)*cos(4*pi*t + arg(3)) + (a(4)/8)*cos(6*pi*t + arg(4)) + (a(1)/8)*cos(8*pi*t + arg(5)); #The above equation is derived(hopefully correctly) from the theory given in the question description recs s
This is a program I wrote in GNU Octave(should work on Matlab too). And the basis for using that particular expression for recs is based on some info I got from http://www.robots.ox.ac.uk/~sjrob/Teaching/SP/l7.pdf.
I don't understand if my method for getting the individual components was wrong or is it some basic step I'm missing here.