Re: Time Partitioned FFT

2022-08-07 Thread Daniel Estévez

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.


OpenPGP_signature
Description: OpenPGP digital signature


Re: Time Partitioned FFT

2022-08-07 Thread Elmore's
Daniel,

Thanks for the explanation of how to implement JM’s solution in GNU Radio. And 
thanks to JM for the discussion.

This should get me over my initial stumbling block to get started.

Jim

--
This email has been checked for viruses by AVG.
https://www.avg.com