openwebrx-clone/csdr/chain/fft.py

20 lines
808 B
Python
Raw Normal View History

2020-12-16 17:52:00 +00:00
from csdr.chain import Chain
from pycsdr import Fft, LogAveragePower, FftExchangeSides, CompressFftAdpcm
2020-12-16 17:52:00 +00:00
class FftChain(Chain):
def __init__(self, fft_size, fft_block_size, fft_averages, fft_compression):
2020-12-19 15:41:48 +00:00
self.fft = Fft(size=fft_size, every_n_samples=int(fft_block_size))
self.logAveragePower = LogAveragePower(add_db=-70, fft_size=fft_size, avg_number=fft_averages)
self.fftExchangeSides = FftExchangeSides(fft_size=fft_size)
2020-12-16 17:52:00 +00:00
workers = [
2020-12-19 15:41:48 +00:00
self.fft,
self.logAveragePower,
self.fftExchangeSides,
2020-12-16 17:52:00 +00:00
]
2020-12-19 15:41:48 +00:00
self.compressFftAdpcm = None
2020-12-16 17:52:00 +00:00
if fft_compression == "adpcm":
2020-12-19 15:41:48 +00:00
self.compressFftAdpcm = CompressFftAdpcm(fft_size=fft_size)
workers += [self.compressFftAdpcm]
2020-12-16 17:52:00 +00:00
super().__init__(*workers)