openwebrx-clone/csdr/chain/fft.py

15 lines
579 B
Python

from csdr.chain import Chain
from pycsdr import Fft, LogAveragePower, FftExchangeSides, CompressFftAdpcm
class FftChain(Chain):
def __init__(self, fft_size, fft_block_size, fft_averages, fft_compression):
workers = [
Fft(size=fft_size, every_n_samples=int(fft_block_size)),
LogAveragePower(add_db=-70, fft_size=fft_size, avg_number=fft_averages),
FftExchangeSides(fft_size=fft_size),
]
if fft_compression == "adpcm":
workers += [CompressFftAdpcm(fft_size=fft_size)]
super().__init__(*workers)