discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: Time Partitioned FFT


From: jmfriedt
Subject: Re: Time Partitioned FFT
Date: Sun, 7 Aug 2022 08:10:16 +0200

I hope I am not stating the obvious ... but time is only defined at the
ADC sampling time, everything afterward is asynchronous and indexed
with sample number.

So you have sampled the I+jQ stream x(n), n\in\mathbb{N} at sampling
rate fs, and now want to FFT every 40 ms. The number of samples in 40
ms is P=fs*40e-3 and wisely selecting fs will make this integer as well.

fft1=fft(x(1:Q)) with Q the number of samples in the FFT defined by the
frequency resolution of the FFT bin fs/Q (related to the number of
symbols in the FSK modulation, their frequency spacing and of course fs)

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))

whill provide the FFT outputs separated with starting times every 40 ms.
In a multithreaded environment such as GNU Radio (and unlike
GNU/Octave), these FFT will all be running in parallel and provide the
output "simultanously".

The only "problem" left is accumulating enough samples in the work
function of the OOT block to make sure all samples indexed from 3*P+1
to 3*P+Q exist, which is best handled by the GNU Radio scheduler.

Best, JM

> I am attempting to see if I can implement a particular communications
> application called FT8 in GNU radio.
> 
> FT8 uses FFTs in the manner I described to decode the data which
> appears as 160 ms symbols encoded as 8 tones. If I understand the
> protocol correctly, 4 FFTs run concurrently. When 160 ms has
> completed, the 5th FFT is starting.
> 
> My questions at this point boil down to how do you start and stop an
> FFT? How do you implement a delay in starting the FFT? Is what I am
> trying even feasible with GNU Radio?
> 
> Jim
> 



-- 
JM Friedt, FEMTO-ST Time & Frequency, 26 rue de l'Epitaphe, 25000
Besancon, France



reply via email to

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