From discussions all over the internet, I understand that in a 512 sample point fft, only the first 256 contain relevant information provided that my signal is real. The other half contains complex conjugates of the first half. I base my question on this discussion at stack exchange.
I'm trying to plot the fft of a wav file. I used 2 files - one wav file containing some music and another that was generated by scrip to play at 440Hz. The fft plot of the 2nd (440hz signal) showed 2 peaks - one at 440hz and another at the other end of the plot. This was expected. However, plot of the music wav file was asymmetric. How can that be?
I used the file onclassical_demo_elysium_anonymous-elysium_the-young-false-man_small-version_live-and_restored found here. Scipy did not parse it properly first and I had to strip the meta tags using audacity before I could get it working.
I used print and I got this for the 440hz tone :
[ 203395.00000000 +0.j 203395.08226712 -57.78564066j 203395.32901382-115.57039787j ..., 203395.74007235+173.35334037j 203395.32901385+115.57039784j 203395.08226713 +57.78564063j]
For the music file, I got this :
[[ 2.+0.j -4.+0.j] [-1.+0.j -7.+0.j] [ 0.+0.j -2.+0.j] ..., [ 0.+0.j -6.+0.j] [ 0.+0.j -2.+0.j] [ 1.+0.j -1.+0.j]]
I don't think any of them are symmetrical! Or else the first and last values should coincide at least in the real part right?
And just for the sake of it, the 440hz signal plot :
I tried plotting abs(fft) - still asymmetrical. Also, why is the plot having both blue and green colors - real and complex parts?