discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Time Partitioned FFT


From: Daniel Estévez
Subject: Re: Time Partitioned FFT
Date: Sun, 7 Aug 2022 10:21:26 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0

Hi all,

Reading between lines, I think that what the original poster wants is just to be able to compute FFTs that overlap by 1/4 of the FFT size.

So, essentially what JM suggests:

fft2=fft(x(P+1:P+Q))
fft3=fft(x(2*P+1:2*P+Q))
fft4=fft(x(3*P+1:3*P+Q))

How to do this in GNU Radio? You can "split" your stream of samples into 4 branches, and include a Delay block in each of the last 3 branches. The delay of each of these blocks should be nfft//4, 2*nfft//4 and 3*nfft//4 respectively. Then you use 4 Stream to Vector blocks with vector size nfft and finally the 4 FFT blocks of size nfft.

When, why and how these FFTs are executed by the GNU Radio scheduler is probably not important for the problem at hand.

But what is the FFT length "nfft" is important. You should compute this from your sample rate, samp_rate, and the desired FFT length in seconds T = 0.16 seconds. With this data, nfft = samp_rate * T. Hopefully this calculation will give you an integer (and better if it's a power of 2 or another length which is "easy" for the FFT). If not, you should probably do some resampling.

Best,
Daniel.

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]