I am sampling short bursts of signal (20ms length) in 30ms buffers in time domain. The 30ms buffer consists from 4096 I/Q samples from which roughly 2550 cover the actual signal. Now I do in-place FFT on that. If carrier signal is in the sampled data then it is found by FFT but the power of frequency bin varies depending where inside of the samples the actual signal is located. If I have more noise after signal then FFT power is higher, if I have more before signal then it is weaker. How I can overcome this problem ? I understand FFT will interpolate signal over the noise samples in this case. I would like to have the same FFT power for signal frequency despite of location inside the processed samples. Thanks Michal
Eventhough you are asking for an answer about your problem with FFT usage, It seems to me, based on your definition of what you are looking for (detecting the presence of a carrier -a known signal?- inside a buffer of 4096 samples) that you would better use a "matched-filter" to detect the presence of that carrier, a known signal, inside the noisy 30ms measurement buffer.
Of course FFT would still help especially for high SNR cases, but for noisy data, matched filter is the optimal choice (under suitable conditions). And I have never heard of FFT by itself reducing noise. May be I am wrong.
To implement a matched-filter, you would simply convolve the time reversed carrier signal with the noisy observation and look for a thresholded peak.