def __init__(self, fo, radio): N = radio.iqdatalength S = radio.sampleRate self.ones = np.array([1.0e-3] * N, np.complex64) if isinstance(fo, list): self.tones = list(map(lambda f: FrequencyShift(f, S, N), fo)) else: self.tones = [FrequencyShift(fo, S, N)]
def setup(self, radio): self.updateTunning(radio) sr = self.config.out_sr bw = self.config.bandwidth fp = bw / sr fs = 2 * fp self.lp_filter = IIRFilter(fp, fs, np.complex64) self.shift = FrequencyShift(bw / 2, sr, radio.iqdatalength) self.config.fstart = 0 self.config.fend = bw
def setup(self, radio): self.updateTunning(radio) self.config.in_sr, self.resampler = makeFilterChain( radio.sampleRate, self.n_audio * radio.audio_sr) tmp = FrequencyShift(19000, self.config.in_sr, radio.iqdatalength) self.kh19 = tmp.filter self.kh38 = (self.kh19.conj())**2 self.deemphasis_a = DeemphasisFilter(self.config.in_sr) self.deemphasis_b = DeemphasisFilter(self.config.in_sr) self.exit_decimation_a = Decimator(self.n_audio) self.exit_decimation_b = Decimator(self.n_audio) self.config.out_sr = self.config.in_sr / self.n_audio self.config.fstart = -self.config.in_sr / 2 self.config.fend = self.config.in_sr / 2
def updateConfig(self, change, radio): if change.spectrum.length: self.config.length = change.spectrum.length self.power = np.zeros(self.config.length, np.float32) self.iqbuffer = np.zeros(0, np.complex64) self.count = 0 if change.spectrum.decimation: self.config.decimation = change.spectrum.decimation self.decimationFilter = DecimationFilter(self.config.decimation) self.config.displayCenter = radio.tunerFreq self.freqShift = FrequencyShift(radio.centerFreq - radio.tunerFreq, radio.sampleRate, radio.iqdatalength) self.init(radio)
def updateTunning(self, radio): df = radio.centerFreq - radio.tunerFreq self.tuner = FrequencyShift(df, radio.sampleRate, radio.iqdatalength)
def updateTunning(self, radio): df = radio.centerFreq \ - radio.tunerFreq \ + self.config.bandwidth/2 \ + self.foff self.tuner = FrequencyShift(df, radio.sampleRate, radio.iqdatalength)