Revert NOAA decoder to master

This commit is contained in:
Mark Jessop 2017-09-21 20:36:31 +09:30
parent 0a6325613f
commit 6b4f593661
2 changed files with 54 additions and 53 deletions

View File

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.10'?>
<?grc format='1' created='3.7.11'?>
<flow_graph>
<timestamp>Mon Apr 10 23:26:02 2017</timestamp>
<block>
@ -136,7 +136,7 @@ in acceptable levels especially for embedded devices.</value>
</param>
<param>
<key>value</key>
<value>2</value>
<value>4</value>
</param>
</block>
<block>
@ -151,7 +151,7 @@ in acceptable levels especially for embedded devices.</value>
</param>
<param>
<key>cutoff_freq</key>
<value>0.4</value>
<value>0.2</value>
</param>
<param>
<key>_enabled</key>
@ -286,7 +286,7 @@ TX sampling rate</value>
</param>
<param>
<key>value</key>
<value>250e3</value>
<value>satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']</value>
</param>
</block>
<block>
@ -313,7 +313,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(968, 124)</value>
<value>(935, 123)</value>
</param>
<param>
<key>_rotation</key>
@ -423,7 +423,7 @@ TX sampling rate</value>
</param>
<param>
<key>high_cutoff_freq</key>
<value>3.7e3</value>
<value>4.2e3</value>
</param>
<param>
<key>id</key>
@ -435,7 +435,7 @@ TX sampling rate</value>
</param>
<param>
<key>low_cutoff_freq</key>
<value>700</value>
<value>500</value>
</param>
<param>
<key>maxoutbuf</key>
@ -451,7 +451,7 @@ TX sampling rate</value>
</param>
<param>
<key>width</key>
<value>1e3</value>
<value>200</value>
</param>
<param>
<key>win</key>
@ -740,7 +740,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(760, 116)</value>
<value>(718, 115)</value>
</param>
<param>
<key>_rotation</key>
@ -838,7 +838,7 @@ TX sampling rate</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
@ -2626,7 +2626,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
<value>True</value>
</param>
<param>
<key>fbw</key>
@ -2685,7 +2685,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
<value>True</value>
</param>
<param>
<key>fbw</key>
@ -2799,11 +2799,11 @@ we shift the LO a little further</value>
</param>
<param>
<key>decim</key>
<value>int(samp_rate_rx /first_stage_decimation)</value>
<value>int(samp_rate_rx/ ( first_stage_decimation * int(samp_rate_rx/ first_stage_decimation / initial_bandwidth)) / audio_decimation)</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
<value>True</value>
</param>
<param>
<key>fbw</key>
@ -2811,7 +2811,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(992, 232)</value>
<value>(896, 232)</value>
</param>
<param>
<key>_rotation</key>
@ -3034,7 +3034,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(528, 120)</value>
<value>(471, 119)</value>
</param>
<param>
<key>_rotation</key>
@ -3081,7 +3081,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
<value>True</value>
</param>
<param>
<key>filename</key>
@ -3089,7 +3089,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(1224, 236)</value>
<value>(1112, 236)</value>
</param>
<param>
<key>_rotation</key>
@ -3124,7 +3124,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
<value>True</value>
</param>
<param>
<key>flip</key>
@ -3132,7 +3132,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(568, 320)</value>
<value>(520, 320)</value>
</param>
<param>
<key>_rotation</key>
@ -3226,7 +3226,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(176, 88)</value>
<value>(223, 47)</value>
</param>
<param>
<key>_rotation</key>

View File

@ -5,7 +5,7 @@
# Title: NOAA APT Decoder
# Author: Manolis Surligas, George Vardakis
# Description: A NOAA APT Decoder with automatic image synchronization
# Generated: Sun Sep 17 04:44:10 2017
# Generated: Wed Aug 9 18:06:52 2017
##################################################
from gnuradio import analog
@ -52,15 +52,15 @@ class satnogs_noaa_apt_decoder(gr.top_block):
##################################################
# Variables
##################################################
self.samp_rate_rx = samp_rate_rx = 250e3
self.first_stage_decimation = first_stage_decimation = 2
self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
self.first_stage_decimation = first_stage_decimation = 4
self.noaa_filter_taps = noaa_filter_taps = firdes.low_pass(1.0, samp_rate_rx /first_stage_decimation, 16.5e3, 4e3, firdes.WIN_HAMMING, 6.76)
self.initial_bandwidth = initial_bandwidth = 100e3
self.first_stage_filter_taps = first_stage_filter_taps = firdes.low_pass(1.0, 1.0, 0.4, 0.1, firdes.WIN_HAMMING, 6.76)
self.first_stage_filter_taps = first_stage_filter_taps = firdes.low_pass(1.0, 1.0, 0.2, 0.1, firdes.WIN_HAMMING, 6.76)
self.audio_decimation = audio_decimation = 2
##################################################
@ -74,7 +74,7 @@ class satnogs_noaa_apt_decoder(gr.top_block):
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx /first_stage_decimation)
self.rational_resampler_xxx_2 = filter.rational_resampler_ccc(
interpolation=48000,
decimation=int(samp_rate_rx /first_stage_decimation),
decimation=int(samp_rate_rx/ ( first_stage_decimation * int(samp_rate_rx/ first_stage_decimation / initial_bandwidth)) / audio_decimation),
taps=None,
fractional_bw=None,
)
@ -108,7 +108,7 @@ class satnogs_noaa_apt_decoder(gr.top_block):
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
self.hilbert_fc_0 = filter.hilbert_fc(65, firdes.WIN_HAMMING, 6.76)
self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(first_stage_decimation, (first_stage_filter_taps), lo_offset, samp_rate_rx)
self.fir_filter_xxx_1 = filter.fir_filter_fff(2, ([0.5, 0.5]))
@ -117,7 +117,7 @@ class satnogs_noaa_apt_decoder(gr.top_block):
self.fft_filter_xxx_0.declare_sample_delay(0)
self.blocks_complex_to_mag_0 = blocks.complex_to_mag(1)
self.band_pass_filter_0 = filter.fir_filter_fff(1, firdes.band_pass(
6, samp_rate_rx/ ( first_stage_decimation * int(samp_rate_rx/ first_stage_decimation / initial_bandwidth)) / audio_decimation, 700, 3.7e3, 1e3, firdes.WIN_HAMMING, 6.76))
6, samp_rate_rx/ ( first_stage_decimation * int(samp_rate_rx/ first_stage_decimation / initial_bandwidth)) / audio_decimation, 500, 4.2e3, 200, firdes.WIN_HAMMING, 6.76))
self.analog_wfm_rcv_0 = analog.wfm_rcv(
quad_rate=samp_rate_rx/ ( first_stage_decimation * int(samp_rate_rx/ first_stage_decimation / initial_bandwidth)),
audio_decimation=audio_decimation,
@ -126,23 +126,23 @@ class satnogs_noaa_apt_decoder(gr.top_block):
##################################################
# Connections
##################################################
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_wfm_rcv_0, 0), (self.band_pass_filter_0, 0))
self.connect((self.analog_wfm_rcv_0, 0), (self.rational_resampler_xxx_1, 0))
self.connect((self.band_pass_filter_0, 0), (self.fir_filter_xxx_1, 0))
self.connect((self.blocks_complex_to_mag_0, 0), (self.rational_resampler_xxx_0_0, 0))
self.connect((self.fft_filter_xxx_0, 0), (self.analog_wfm_rcv_0, 0))
self.connect((self.fft_filter_xxx_0, 0), (self.rational_resampler_xxx_2, 0))
self.connect((self.fir_filter_xxx_1, 0), (self.rational_resampler_xxx_0, 0))
self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
self.connect((self.hilbert_fc_0, 0), (self.blocks_complex_to_mag_0, 0))
self.connect((self.osmosdr_source_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
self.connect((self.rational_resampler_xxx_0, 0), (self.hilbert_fc_0, 0))
self.connect((self.rational_resampler_xxx_0_0, 0), (self.satnogs_noaa_apt_sink_0, 0))
self.connect((self.rational_resampler_xxx_1, 0), (self.satnogs_ogg_encoder_0, 0))
self.connect((self.rational_resampler_xxx_2, 0), (self.satnogs_iq_sink_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.fft_filter_xxx_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.satnogs_waterfall_sink_0, 0))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_wfm_rcv_0, 0), (self.band_pass_filter_0, 0))
self.connect((self.analog_wfm_rcv_0, 0), (self.rational_resampler_xxx_1, 0))
self.connect((self.band_pass_filter_0, 0), (self.fir_filter_xxx_1, 0))
self.connect((self.blocks_complex_to_mag_0, 0), (self.rational_resampler_xxx_0_0, 0))
self.connect((self.fft_filter_xxx_0, 0), (self.analog_wfm_rcv_0, 0))
self.connect((self.fft_filter_xxx_0, 0), (self.rational_resampler_xxx_2, 0))
self.connect((self.fir_filter_xxx_1, 0), (self.rational_resampler_xxx_0, 0))
self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
self.connect((self.hilbert_fc_0, 0), (self.blocks_complex_to_mag_0, 0))
self.connect((self.osmosdr_source_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
self.connect((self.rational_resampler_xxx_0, 0), (self.hilbert_fc_0, 0))
self.connect((self.rational_resampler_xxx_0_0, 0), (self.satnogs_noaa_apt_sink_0, 0))
self.connect((self.rational_resampler_xxx_1, 0), (self.satnogs_ogg_encoder_0, 0))
self.connect((self.rational_resampler_xxx_2, 0), (self.satnogs_iq_sink_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.fft_filter_xxx_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.satnogs_waterfall_sink_0, 0))
def get_antenna(self):
return self.antenna
@ -248,6 +248,7 @@ class satnogs_noaa_apt_decoder(gr.top_block):
def set_rx_sdr_device(self, rx_sdr_device):
self.rx_sdr_device = rx_sdr_device
self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
@ -278,14 +279,14 @@ class satnogs_noaa_apt_decoder(gr.top_block):
self.samp_rate_rx = samp_rate_rx
self.osmosdr_source_0.set_sample_rate(self.samp_rate_rx)
self.osmosdr_source_0.set_bandwidth(self.samp_rate_rx, 0)
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 700, 3.7e3, 1e3, firdes.WIN_HAMMING, 6.76))
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 500, 4.2e3, 200, firdes.WIN_HAMMING, 6.76))
def get_first_stage_decimation(self):
return self.first_stage_decimation
def set_first_stage_decimation(self, first_stage_decimation):
self.first_stage_decimation = first_stage_decimation
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 700, 3.7e3, 1e3, firdes.WIN_HAMMING, 6.76))
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 500, 4.2e3, 200, firdes.WIN_HAMMING, 6.76))
def get_noaa_filter_taps(self):
return self.noaa_filter_taps
@ -299,7 +300,7 @@ class satnogs_noaa_apt_decoder(gr.top_block):
def set_initial_bandwidth(self, initial_bandwidth):
self.initial_bandwidth = initial_bandwidth
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 700, 3.7e3, 1e3, firdes.WIN_HAMMING, 6.76))
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 500, 4.2e3, 200, firdes.WIN_HAMMING, 6.76))
def get_first_stage_filter_taps(self):
return self.first_stage_filter_taps
@ -313,7 +314,7 @@ class satnogs_noaa_apt_decoder(gr.top_block):
def set_audio_decimation(self, audio_decimation):
self.audio_decimation = audio_decimation
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 700, 3.7e3, 1e3, firdes.WIN_HAMMING, 6.76))
self.band_pass_filter_0.set_taps(firdes.band_pass(6, self.samp_rate_rx/ ( self.first_stage_decimation * int(self.samp_rate_rx/ self.first_stage_decimation / self.initial_bandwidth)) / self.audio_decimation, 500, 4.2e3, 200, firdes.WIN_HAMMING, 6.76))
def argument_parser():