Add a DC blocker and remove filter gain at AFSK
This commit is contained in:
parent
5015a11697
commit
23b819feb9
|
@ -217,7 +217,7 @@
|
|||
</param>
|
||||
<param>
|
||||
<key>_coordinate</key>
|
||||
<value>(1364, 578)</value>
|
||||
<value>(1168, 580)</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_rotation</key>
|
||||
|
@ -225,7 +225,7 @@
|
|||
</param>
|
||||
<param>
|
||||
<key>gain</key>
|
||||
<value>((audio_samp_rate/10) / baud_rate)/(math.pi*1)</value>
|
||||
<value>((audio_samp_rate/20) / baud_rate)/(math.pi*1)</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>id</key>
|
||||
|
@ -354,7 +354,7 @@
|
|||
</param>
|
||||
<param>
|
||||
<key>_coordinate</key>
|
||||
<value>(750, 646)</value>
|
||||
<value>(664, 644)</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_rotation</key>
|
||||
|
@ -707,7 +707,7 @@
|
|||
</param>
|
||||
<param>
|
||||
<key>_coordinate</key>
|
||||
<value>(957, 566)</value>
|
||||
<value>(872, 568)</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_rotation</key>
|
||||
|
@ -934,6 +934,57 @@
|
|||
<value>ff</value>
|
||||
</param>
|
||||
</block>
|
||||
<block>
|
||||
<key>dc_blocker_xx</key>
|
||||
<param>
|
||||
<key>alias</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>comment</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>affinity</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_enabled</key>
|
||||
<value>True</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_coordinate</key>
|
||||
<value>(1352, 572)</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_rotation</key>
|
||||
<value>0</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>id</key>
|
||||
<value>dc_blocker_xx_0_0</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>length</key>
|
||||
<value>1024</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>long_form</key>
|
||||
<value>True</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>maxoutbuf</key>
|
||||
<value>0</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>minoutbuf</key>
|
||||
<value>0</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>ff</value>
|
||||
</param>
|
||||
</block>
|
||||
<block>
|
||||
<key>parameter</key>
|
||||
<param>
|
||||
|
@ -1123,7 +1174,7 @@
|
|||
</param>
|
||||
<param>
|
||||
<key>omega</key>
|
||||
<value>(48e3/10)/baud_rate</value>
|
||||
<value>(48e3/20)/baud_rate</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
|
@ -1515,7 +1566,7 @@ max_modulation_freq = 3000</value>
|
|||
</param>
|
||||
<param>
|
||||
<key>decim</key>
|
||||
<value>10</value>
|
||||
<value>20</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_enabled</key>
|
||||
|
@ -1527,7 +1578,7 @@ max_modulation_freq = 3000</value>
|
|||
</param>
|
||||
<param>
|
||||
<key>_coordinate</key>
|
||||
<value>(1152, 532)</value>
|
||||
<value>(992, 532)</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>_rotation</key>
|
||||
|
@ -1535,7 +1586,7 @@ max_modulation_freq = 3000</value>
|
|||
</param>
|
||||
<param>
|
||||
<key>gain</key>
|
||||
<value>10</value>
|
||||
<value>1</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>id</key>
|
||||
|
@ -4006,7 +4057,7 @@ max_modulation_freq = 3000</value>
|
|||
</block>
|
||||
<connection>
|
||||
<source_block_id>analog_quadrature_demod_cf_0</source_block_id>
|
||||
<sink_block_id>digital_clock_recovery_mm_xx_0</sink_block_id>
|
||||
<sink_block_id>dc_blocker_xx_0_0</sink_block_id>
|
||||
<source_key>0</source_key>
|
||||
<sink_key>0</sink_key>
|
||||
</connection>
|
||||
|
@ -4082,6 +4133,12 @@ max_modulation_freq = 3000</value>
|
|||
<source_key>0</source_key>
|
||||
<sink_key>0</sink_key>
|
||||
</connection>
|
||||
<connection>
|
||||
<source_block_id>dc_blocker_xx_0_0</source_block_id>
|
||||
<sink_block_id>digital_clock_recovery_mm_xx_0</sink_block_id>
|
||||
<source_key>0</source_key>
|
||||
<sink_key>0</sink_key>
|
||||
</connection>
|
||||
<connection>
|
||||
<source_block_id>digital_binary_slicer_fb_0</source_block_id>
|
||||
<sink_block_id>satnogs_ax25_decoder_bm_0</sink_block_id>
|
||||
|
|
|
@ -95,12 +95,13 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
|
||||
self.osmosdr_source_0.set_bandwidth(satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx), 0)
|
||||
|
||||
self.low_pass_filter_1 = filter.fir_filter_ccf(10, firdes.low_pass(
|
||||
10, audio_samp_rate, (mark_frequency - space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
self.low_pass_filter_1 = filter.fir_filter_ccf(20, firdes.low_pass(
|
||||
1, audio_samp_rate, (mark_frequency - space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
self.low_pass_filter_0 = filter.fir_filter_ccf(1, firdes.low_pass(
|
||||
1, audio_samp_rate, deviation+max_modulation_freq, 3000, firdes.WIN_HAMMING, 6.76))
|
||||
self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff((48e3/10)/baud_rate, 0.25*0.175*0.175, 0.5, 0.175, 0.005)
|
||||
self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff((48e3/20)/baud_rate, 0.25*0.175*0.175, 0.5, 0.175, 0.005)
|
||||
self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
|
||||
self.dc_blocker_xx_0_0 = filter.dc_blocker_ff(1024, True)
|
||||
self.dc_blocker_xx_0 = filter.dc_blocker_ff(1024, True)
|
||||
self.blocks_vco_c_0 = blocks.vco_c(audio_samp_rate, -audio_samp_rate, 1.0)
|
||||
self.blocks_rotator_cc_0 = blocks.rotator_cc(-2.0 * math.pi * (lo_offset / satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx)))
|
||||
|
@ -112,7 +113,7 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
self.analog_sig_source_x_0 = analog.sig_source_c(audio_samp_rate, analog.GR_COS_WAVE, -(1200 + 2200) / 2, 1, 0)
|
||||
self.analog_quadrature_demod_cf_0_0_0_0 = analog.quadrature_demod_cf(1.0)
|
||||
self.analog_quadrature_demod_cf_0_0 = analog.quadrature_demod_cf((2*math.pi*deviation)/audio_samp_rate)
|
||||
self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf(((audio_samp_rate/10) / baud_rate)/(math.pi*1))
|
||||
self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf(((audio_samp_rate/20) / baud_rate)/(math.pi*1))
|
||||
|
||||
|
||||
|
||||
|
@ -124,7 +125,7 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
|
||||
self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
|
||||
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
|
||||
self.connect((self.analog_quadrature_demod_cf_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
|
||||
self.connect((self.analog_quadrature_demod_cf_0, 0), (self.dc_blocker_xx_0_0, 0))
|
||||
self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.dc_blocker_xx_0, 0))
|
||||
self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.satnogs_ogg_encoder_0, 0))
|
||||
self.connect((self.analog_quadrature_demod_cf_0_0_0_0, 0), (self.blocks_moving_average_xx_0, 0))
|
||||
|
@ -137,6 +138,7 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
self.connect((self.blocks_rotator_cc_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
|
||||
self.connect((self.blocks_vco_c_0, 0), (self.blocks_multiply_xx_0_0, 1))
|
||||
self.connect((self.dc_blocker_xx_0, 0), (self.blocks_float_to_complex_0, 0))
|
||||
self.connect((self.dc_blocker_xx_0_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
|
||||
self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
|
||||
self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0_0, 0))
|
||||
self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.digital_binary_slicer_fb_0, 0))
|
||||
|
@ -225,7 +227,7 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
|
||||
def set_mark_frequency(self, mark_frequency):
|
||||
self.mark_frequency = mark_frequency
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(10, self.audio_samp_rate, (self.mark_frequency - self.space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(1, self.audio_samp_rate, (self.mark_frequency - self.space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
|
||||
def get_ppm(self):
|
||||
return self.ppm
|
||||
|
@ -284,7 +286,7 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
|
||||
def set_space_frequency(self, space_frequency):
|
||||
self.space_frequency = space_frequency
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(10, self.audio_samp_rate, (self.mark_frequency - self.space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(1, self.audio_samp_rate, (self.mark_frequency - self.space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
|
||||
def get_udp_IP(self):
|
||||
return self.udp_IP
|
||||
|
@ -324,8 +326,8 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
|
||||
def set_baud_rate(self, baud_rate):
|
||||
self.baud_rate = baud_rate
|
||||
self.digital_clock_recovery_mm_xx_0.set_omega((48e3/10)/self.baud_rate)
|
||||
self.analog_quadrature_demod_cf_0.set_gain(((self.audio_samp_rate/10) / self.baud_rate)/(math.pi*1))
|
||||
self.digital_clock_recovery_mm_xx_0.set_omega((48e3/20)/self.baud_rate)
|
||||
self.analog_quadrature_demod_cf_0.set_gain(((self.audio_samp_rate/20) / self.baud_rate)/(math.pi*1))
|
||||
|
||||
def get_audio_samp_rate(self):
|
||||
return self.audio_samp_rate
|
||||
|
@ -333,11 +335,11 @@ class satnogs_afsk1200_ax25(gr.top_block):
|
|||
def set_audio_samp_rate(self, audio_samp_rate):
|
||||
self.audio_samp_rate = audio_samp_rate
|
||||
self.pfb_arb_resampler_xxx_0.set_rate(self.audio_samp_rate/satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx))
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(10, self.audio_samp_rate, (self.mark_frequency - self.space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(1, self.audio_samp_rate, (self.mark_frequency - self.space_frequency)/2.0, 1000, firdes.WIN_HAMMING, 6.76))
|
||||
self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, self.deviation+self.max_modulation_freq, 3000, firdes.WIN_HAMMING, 6.76))
|
||||
self.analog_sig_source_x_0.set_sampling_freq(self.audio_samp_rate)
|
||||
self.analog_quadrature_demod_cf_0_0.set_gain((2*math.pi*self.deviation)/self.audio_samp_rate)
|
||||
self.analog_quadrature_demod_cf_0.set_gain(((self.audio_samp_rate/10) / self.baud_rate)/(math.pi*1))
|
||||
self.analog_quadrature_demod_cf_0.set_gain(((self.audio_samp_rate/20) / self.baud_rate)/(math.pi*1))
|
||||
|
||||
|
||||
def argument_parser():
|
||||
|
|
Loading…
Reference in New Issue