diff --git a/apps/flowgraphs/fsk_ax25.grc b/apps/flowgraphs/fsk_ax25.grc
index 6de43c5..f19499e 100644
--- a/apps/flowgraphs/fsk_ax25.grc
+++ b/apps/flowgraphs/fsk_ax25.grc
@@ -136,7 +136,7 @@
_coordinate
- (975, 395)
+ (1190, 411)
_rotation
@@ -179,7 +179,7 @@
_coordinate
- (992, 316)
+ (1030, 195)
_rotation
@@ -406,7 +406,7 @@
_coordinate
- (1432, 188)
+ (1390, 403)
_rotation
@@ -457,7 +457,7 @@
_coordinate
- (1208, 308)
+ (1206, 187)
_rotation
@@ -641,7 +641,7 @@
_coordinate
- (1616, 164)
+ (1590, 379)
_rotation
@@ -998,6 +998,81 @@ we shift the LO a little further
100e3
+
+ low_pass_filter
+
+ beta
+ 6.76
+
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ cutoff_freq
+ baudrate / 2 + 1500
+
+
+ decim
+ 1
+
+
+ _enabled
+ True
+
+
+ type
+ fir_filter_ccf
+
+
+ _coordinate
+ (1007, 363)
+
+
+ _rotation
+ 0
+
+
+ gain
+ 1
+
+
+ id
+ low_pass_filter_0
+
+
+ interp
+ 1
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
+ samp_rate
+ 4.0 * baudrate
+
+
+ width
+ 1000
+
+
+ win
+ firdes.WIN_HAMMING
+
+
osmosdr_source
@@ -3088,7 +3163,7 @@ we shift the LO a little further
_coordinate
- (1384, 300)
+ (1382, 179)
_rotation
@@ -3500,6 +3575,12 @@ we shift the LO a little further
0
0
+
+ low_pass_filter_0
+ analog_quadrature_demod_cf_0_0
+ 0
+ 0
+
osmosdr_source_0
blocks_rotator_cc_0
@@ -3526,7 +3607,7 @@ we shift the LO a little further
pfb_arb_resampler_xxx_0_0
- analog_quadrature_demod_cf_0_0
+ low_pass_filter_0
0
0
diff --git a/apps/flowgraphs/msk_ax25.grc b/apps/flowgraphs/msk_ax25.grc
index 321727f..0db7bf8 100644
--- a/apps/flowgraphs/msk_ax25.grc
+++ b/apps/flowgraphs/msk_ax25.grc
@@ -136,7 +136,7 @@
_coordinate
- (1248, 196)
+ (1214, 419)
_rotation
@@ -406,7 +406,7 @@
_coordinate
- (1432, 188)
+ (1430, 411)
_rotation
@@ -641,7 +641,7 @@
_coordinate
- (1616, 164)
+ (1614, 387)
_rotation
@@ -677,7 +677,7 @@
omega
- 2
+ 4
type
@@ -998,6 +998,81 @@ we shift the LO a little further
100e3
+
+ low_pass_filter
+
+ beta
+ 6.76
+
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ cutoff_freq
+ baudrate / 2 + 1500
+
+
+ decim
+ 1
+
+
+ _enabled
+ True
+
+
+ type
+ fir_filter_ccf
+
+
+ _coordinate
+ (1022, 371)
+
+
+ _rotation
+ 0
+
+
+ gain
+ 1
+
+
+ id
+ low_pass_filter_0
+
+
+ interp
+ 1
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
+ samp_rate
+ 4.0 * baudrate
+
+
+ width
+ 1000
+
+
+ win
+ firdes.WIN_HAMMING
+
+
osmosdr_source
@@ -2488,7 +2563,7 @@ we shift the LO a little further
_coordinate
- (984, 172)
+ (735, 395)
_rotation
@@ -2496,7 +2571,7 @@ we shift the LO a little further
id
- pfb_arb_resampler_xxx_0_0
+ pfb_arb_resampler_xxx_0_0_0
maxoutbuf
@@ -2512,7 +2587,7 @@ we shift the LO a little further
rrate
- (2.0*baudrate)/audio_samp_rate
+ (4.0*baudrate)/satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx)
samp_delay
@@ -2520,7 +2595,7 @@ we shift the LO a little further
atten
- 100
+ 60
taps
@@ -3500,6 +3575,12 @@ we shift the LO a little further
0
0
+
+ low_pass_filter_0
+ analog_quadrature_demod_cf_0_0
+ 0
+ 0
+
osmosdr_source_0
blocks_rotator_cc_0
@@ -3512,12 +3593,6 @@ we shift the LO a little further
0
0
-
- pfb_arb_resampler_xxx_0
- pfb_arb_resampler_xxx_0_0
- 0
- 0
-
pfb_arb_resampler_xxx_0
satnogs_iq_sink_0
@@ -3531,8 +3606,8 @@ we shift the LO a little further
0
- pfb_arb_resampler_xxx_0_0
- analog_quadrature_demod_cf_0_0
+ pfb_arb_resampler_xxx_0_0_0
+ low_pass_filter_0
0
0
@@ -3566,6 +3641,12 @@ we shift the LO a little further
0
0
+
+ satnogs_coarse_doppler_correction_cc_0
+ pfb_arb_resampler_xxx_0_0_0
+ 0
+ 0
+
satnogs_quad_demod_filter_ff_0
digital_binary_slicer_fb_0
diff --git a/apps/flowgraphs/satnogs_fsk_ax25.py b/apps/flowgraphs/satnogs_fsk_ax25.py
index 363a8a1..acdef68 100755
--- a/apps/flowgraphs/satnogs_fsk_ax25.py
+++ b/apps/flowgraphs/satnogs_fsk_ax25.py
@@ -5,7 +5,7 @@
# Title: satnogs_fsk_ax25
# Author: Manolis Surligas (surligas@gmail.com)
# Description: Generic FSK AX.25 decoder
-# Generated: Fri Jan 4 20:33:37 2019
+# Generated: Sun Jan 6 14:19:34 2019
##################################################
from gnuradio import analog
@@ -96,6 +96,8 @@ class satnogs_fsk_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_0 = filter.fir_filter_ccf(1, firdes.low_pass(
+ 1, 4.0 * baudrate, baudrate / 2 + 1500, 1000, firdes.WIN_HAMMING, 6.76))
self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(4, 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)
@@ -122,11 +124,12 @@ class satnogs_fsk_ax25(gr.top_block):
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.satnogs_quad_demod_filter_ff_0, 0))
+ self.connect((self.low_pass_filter_0, 0), (self.analog_quadrature_demod_cf_0_0, 0))
self.connect((self.osmosdr_source_0, 0), (self.blocks_rotator_cc_0, 0))
self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.analog_quadrature_demod_cf_0_0_0, 0))
self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.satnogs_iq_sink_0, 0))
self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.satnogs_waterfall_sink_0, 0))
- self.connect((self.pfb_arb_resampler_xxx_0_0, 0), (self.analog_quadrature_demod_cf_0_0, 0))
+ self.connect((self.pfb_arb_resampler_xxx_0_0, 0), (self.low_pass_filter_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.pfb_arb_resampler_xxx_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.pfb_arb_resampler_xxx_0_0, 0))
self.connect((self.satnogs_quad_demod_filter_ff_0, 0), (self.digital_binary_slicer_fb_0, 0))
@@ -144,6 +147,7 @@ class satnogs_fsk_ax25(gr.top_block):
def set_baudrate(self, baudrate):
self.baudrate = baudrate
self.pfb_arb_resampler_xxx_0_0.set_rate((4.0*self.baudrate)/satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx))
+ self.low_pass_filter_0.set_taps(firdes.low_pass(1, 4.0 * self.baudrate, self.baudrate / 2 + 1500, 1000, firdes.WIN_HAMMING, 6.76))
def get_bb_gain(self):
return self.bb_gain
diff --git a/apps/flowgraphs/satnogs_msk_ax25.py b/apps/flowgraphs/satnogs_msk_ax25.py
index 09fe10c..7d12bf6 100755
--- a/apps/flowgraphs/satnogs_msk_ax25.py
+++ b/apps/flowgraphs/satnogs_msk_ax25.py
@@ -5,7 +5,7 @@
# Title: satnogs_msk_ax25
# Author: Manolis Surligas (surligas@gmail.com)
# Description: Generic MSK AX.25 decoder
-# Generated: Fri Aug 17 00:38:15 2018
+# Generated: Sun Jan 6 14:17:55 2019
##################################################
from gnuradio import analog
@@ -71,11 +71,11 @@ class satnogs_msk_ax25(gr.top_block):
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx))
self.satnogs_ax25_decoder_bm_0_0 = satnogs.ax25_decoder_bm('GND', 0, True, False, 1024)
self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, True, 1024)
- self.pfb_arb_resampler_xxx_0_0 = pfb.arb_resampler_ccf(
- (2.0*baudrate)/audio_samp_rate,
+ self.pfb_arb_resampler_xxx_0_0_0 = pfb.arb_resampler_ccf(
+ (4.0*baudrate)/satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx),
taps=None,
flt_size=32)
- self.pfb_arb_resampler_xxx_0_0.declare_sample_delay(0)
+ self.pfb_arb_resampler_xxx_0_0_0.declare_sample_delay(0)
self.pfb_arb_resampler_xxx_0 = pfb.arb_resampler_ccf(
audio_samp_rate/satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx),
@@ -96,7 +96,9 @@ class satnogs_msk_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.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(2, 0.25*0.175*0.175, 0.5, 0.175, 0.005)
+ self.low_pass_filter_0 = filter.fir_filter_ccf(1, firdes.low_pass(
+ 1, 4.0 * baudrate, baudrate / 2 + 1500, 1000, firdes.WIN_HAMMING, 6.76))
+ self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(4, 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)
@@ -122,13 +124,14 @@ class satnogs_msk_ax25(gr.top_block):
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.satnogs_quad_demod_filter_ff_0, 0))
+ self.connect((self.low_pass_filter_0, 0), (self.analog_quadrature_demod_cf_0_0, 0))
self.connect((self.osmosdr_source_0, 0), (self.blocks_rotator_cc_0, 0))
self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.analog_quadrature_demod_cf_0_0_0, 0))
- self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.pfb_arb_resampler_xxx_0_0, 0))
self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.satnogs_iq_sink_0, 0))
self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.satnogs_waterfall_sink_0, 0))
- self.connect((self.pfb_arb_resampler_xxx_0_0, 0), (self.analog_quadrature_demod_cf_0_0, 0))
+ self.connect((self.pfb_arb_resampler_xxx_0_0_0, 0), (self.low_pass_filter_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.pfb_arb_resampler_xxx_0, 0))
+ self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.pfb_arb_resampler_xxx_0_0_0, 0))
self.connect((self.satnogs_quad_demod_filter_ff_0, 0), (self.digital_binary_slicer_fb_0, 0))
def get_antenna(self):
@@ -143,7 +146,8 @@ class satnogs_msk_ax25(gr.top_block):
def set_baudrate(self, baudrate):
self.baudrate = baudrate
- self.pfb_arb_resampler_xxx_0_0.set_rate((2.0*self.baudrate)/self.audio_samp_rate)
+ self.pfb_arb_resampler_xxx_0_0_0.set_rate((4.0*self.baudrate)/satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx))
+ self.low_pass_filter_0.set_taps(firdes.low_pass(1, 4.0 * self.baudrate, self.baudrate / 2 + 1500, 1000, firdes.WIN_HAMMING, 6.76))
def get_bb_gain(self):
return self.bb_gain
@@ -236,6 +240,7 @@ class satnogs_msk_ax25(gr.top_block):
def set_rx_sdr_device(self, rx_sdr_device):
self.rx_sdr_device = rx_sdr_device
+ self.pfb_arb_resampler_xxx_0_0_0.set_rate((4.0*self.baudrate)/satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx))
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.osmosdr_source_0.set_sample_rate(satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx))
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
@@ -250,6 +255,7 @@ class satnogs_msk_ax25(gr.top_block):
def set_samp_rate_rx(self, samp_rate_rx):
self.samp_rate_rx = samp_rate_rx
+ self.pfb_arb_resampler_xxx_0_0_0.set_rate((4.0*self.baudrate)/satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx))
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.osmosdr_source_0.set_sample_rate(satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx))
self.osmosdr_source_0.set_bandwidth(satnogs.handle_samp_rate_rx(self.rx_sdr_device, self.samp_rate_rx), 0)
@@ -278,7 +284,6 @@ class satnogs_msk_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_0.set_rate((2.0*self.baudrate)/self.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))