Having some trouble understanding this concept, really could do with some advice.

I want my STFT to have the following parameters: NFFT = 256 overlap/hop = 128

Now essentially, the algorithm will work as follows:

1) Split the signal into blocks of 256 


This will result in around 72*265:

2) For each of these blocks, calculate against the Hanning Window 

3) Create a "slider" that does an overlap of 128.. So, in theory it would 
   therefore be: `size = 256 + 128` 


Therefore, when I'm computing the DFT for each of the overlapped blocks, will my FFT remain at size 256 or will the size be 256 + 128 If this is the case, does each block in the resulting vector still have to be of size 256?

Thanks  

EDIT: 

This is now my result:



But, compare this to a spectrogram in matplotlib



Where am I actually going wrong? I cannot make any sense of this. 

I've looked bat through all the data, the blocks are correctly overlapping, Hanning window is being applied correctly.

Could it be to do with the fact I'm using a 1D DFT? I.e. 

std::vector&lt;complex&gt; FFT-&gt;transform(complex_vector[0...n], 256);



Question: Why Didn't Théoden Let Merry Fight In the Battle At Minas Tirith?
Answer: Théoden accepts Merry's pledge of service, but in good conscience cannot see letting Merry ride into battle against foes twice his size, on a battlefield with horses, oliphants, and god knows what else might be there. Théoden appreciated the gesture and uses the excuse of there not being a warrior able to bear Merry as a burden as a polite way of saying, "stay out of the way."