WOLA vs Simple Hamming Window on signal before FFT Im working on a project in which I should FFT a signal coming into my FPGA from ADC.
I want my FFT to show the peak values as clear as possible without the side lobes.

The solution should be straight forward: Window the time domain signal before FFT and I will get better results in the frequency domain, for example using Hamming Window.

But I encountered another approach to this, apply the WOLA (Weight, OverLap, Add) algorithm on the signal before the FFT.

So I used Matlab to check the results.

Lets assume I am capturing this noisy signal through the FPGA:


so first I will check what is the FFT without any window:


I want to decrease the side lobes of this fft, so the straightforward approach is to create a hamming window, and multiply it with the signal, like this:

% Generate Hamming Window using Equation:
n = [1:1024];
w = 0.54 - 0.46*cos(2*pi*n/1024); 
% Apply Hamming Window on Input Signal:
hamming_sim = din_window.*w;




and now lets FFT this new windowed signal:

fft_hamm_sim = abs(fft(hamming_sim));
fft_hamm_sim(1) = 0;
fft_hamm_sim(2) = 0;
fft_hamm_sim(1024) = 0;




OK so I am getting a good result as expected.

I encounterd another approach which requires taking the time domain hamming_window*input_signal, and apply WOLA on it and this is how I did it (I will be glad if someone will alert me if its not the right way):

I took the windowed signal and added the first array element with the middle array element and then the second array element added with the middle+1 array element, like this:

    wola_sim = zeros;
    i = 1;
    for k = 1:512
        wola_sim(i) = hamming_sim(k) + hamming_sim(k+512);
        i = i+1;
    end 




and now on this signal i applied FFT:

fft_wola_sim = abs(fft(wola_sim));
fft_wola_sim(1) = 0;




It is still decreasing the side lobes but it is easy to see that the result worse.

My questions:


Am I applying the WOLA algorithm right? Apply hamming window and than add the first half of the array with the second half.
Suppose I apply the WOLA right, what is it used for? Is it really suppose to help me supress the side lobes before the FFT? Why I getting worse result than only hamming window?
For my needs, is it okay to just use the Hamming window?
I'll try to briefly answer your questions.


No, WOLA (weighted overlap and add) is applied directly on the result(s) of an inverse FFT operation. The IFFT results ( time segments ) are first multiplied by a particular window function (e.g Hamming ) and then overlap-added to produce the final time domain signal ( waveform ).
As explained in #1, WOLA is used to generate a time domain signal from multiple, overlapping ifft segments. If you have only a single fft segment (from your FFT analysis), then there's no need for (W)OLA at all.
Yes