Improve DUV decoder sensitivity
Due to a large gain in a LPF, large values negatively affected the quadrature demod filter.
This commit is contained in:
parent
a6445b3b00
commit
16854f6495
|
@ -1,5 +1,5 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<?grc format='1' created='3.7.11'?>
|
||||
<?grc format='1' created='3.7.13'?>
|
||||
<flow_graph>
|
||||
<timestamp>Thu May 5 00:22:45 2016</timestamp>
|
||||
<block>
|
||||
|
@ -72,6 +72,10 @@
|
|||
<key>run</key>
|
||||
<value>True</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>sizing_mode</key>
|
||||
<value>fixed</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>thread_safe_setters</key>
|
||||
<value></value>
|
||||
|
@ -80,6 +84,10 @@
|
|||
<key>title</key>
|
||||
<value>AMSAT FOX DUV Decoder</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>placement</key>
|
||||
<value>(0,0)</value>
|
||||
</param>
|
||||
</block>
|
||||
<block>
|
||||
<key>variable</key>
|
||||
|
@ -319,7 +327,7 @@ TX sampling rate</value>
|
|||
</param>
|
||||
<param>
|
||||
<key>gain</key>
|
||||
<value>1.0</value>
|
||||
<value>1.2</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>id</key>
|
||||
|
@ -368,6 +376,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>string</value>
|
||||
|
@ -411,6 +423,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>eng_float</value>
|
||||
|
@ -564,6 +580,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>string</value>
|
||||
|
@ -607,6 +627,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>string</value>
|
||||
|
@ -752,6 +776,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>intx</value>
|
||||
|
@ -795,6 +823,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>intx</value>
|
||||
|
@ -838,6 +870,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>string</value>
|
||||
|
@ -940,6 +976,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>eng_float</value>
|
||||
|
@ -983,6 +1023,10 @@ TX sampling rate</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>string</value>
|
||||
|
@ -1027,6 +1071,10 @@ we shift the LO a little further</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>eng_float</value>
|
||||
|
@ -1158,7 +1206,7 @@ max_modulation_freq = 3000</value>
|
|||
</param>
|
||||
<param>
|
||||
<key>gain</key>
|
||||
<value>100</value>
|
||||
<value>1.0</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>id</key>
|
||||
|
@ -2630,6 +2678,10 @@ max_modulation_freq = 3000</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>intx</value>
|
||||
|
@ -2673,6 +2725,10 @@ max_modulation_freq = 3000</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>eng_float</value>
|
||||
|
@ -2716,6 +2772,10 @@ max_modulation_freq = 3000</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>intx</value>
|
||||
|
@ -2830,6 +2890,10 @@ max_modulation_freq = 3000</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>eng_float</value>
|
||||
|
@ -2873,6 +2937,10 @@ max_modulation_freq = 3000</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>string</value>
|
||||
|
@ -3378,6 +3446,10 @@ max_modulation_freq = 3000</value>
|
|||
<key>short_id</key>
|
||||
<value></value>
|
||||
</param>
|
||||
<param>
|
||||
<key>hide</key>
|
||||
<value>none</value>
|
||||
</param>
|
||||
<param>
|
||||
<key>type</key>
|
||||
<value>string</value>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# Title: AMSAT FOX DUV Decoder
|
||||
# Author: Thanos Giolias (agiolias@csd.uoc.gr), Nikos Karamolegos (karamolegkos.n@gmail.com), Manolis Surligas (surligas@gmail.com)
|
||||
# Description: A DUV Decoder for the AMSAT FOX satellites
|
||||
# Generated: Sun Mar 25 17:42:58 2018
|
||||
# Generated: Mon Jul 30 13:36:42 2018
|
||||
##################################################
|
||||
|
||||
from gnuradio import analog
|
||||
|
@ -90,7 +90,7 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
|
|||
self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
|
||||
|
||||
self.low_pass_filter_1 = filter.fir_filter_fff(100, firdes.low_pass(
|
||||
100, audio_samp_rate, 195, 10, firdes.WIN_HAMMING, 6.76))
|
||||
1.0, audio_samp_rate, 195, 10, 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.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
|
||||
|
@ -103,7 +103,9 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
|
|||
taps=None,
|
||||
fractional_bw=None,
|
||||
)
|
||||
self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf(1.0)
|
||||
self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf(1.2)
|
||||
|
||||
|
||||
|
||||
##################################################
|
||||
# Connections
|
||||
|
@ -285,7 +287,7 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
|
|||
|
||||
def set_audio_samp_rate(self, audio_samp_rate):
|
||||
self.audio_samp_rate = audio_samp_rate
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(100, self.audio_samp_rate, 195, 10, firdes.WIN_HAMMING, 6.76))
|
||||
self.low_pass_filter_1.set_taps(firdes.low_pass(1.0, self.audio_samp_rate, 195, 10, 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.digital_clock_recovery_mm_xx_0_0_0.set_omega((self.audio_samp_rate/100.0) / 200)
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ namespace gr
|
|||
return true;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
void
|
||||
decoder_8b10b_impl::process_10b (uint16_t word, int write_pos)
|
||||
{
|
||||
uint16_t diff_bits = 0;
|
||||
|
|
|
@ -578,7 +578,7 @@ namespace gr
|
|||
bool
|
||||
set_access_code (const std::string &access_code);
|
||||
|
||||
uint8_t
|
||||
void
|
||||
process_10b (uint16_t word, int write_pos);
|
||||
|
||||
// Where all the action really happens
|
||||
|
|
|
@ -79,9 +79,7 @@ namespace gr
|
|||
case IQ_SINK_STATUS_NULL:
|
||||
{
|
||||
return noutput_items;
|
||||
break;
|
||||
}
|
||||
|
||||
case IQ_SINK_STATUS_ACTIVE:
|
||||
{
|
||||
/* update d_fp is required */
|
||||
|
@ -112,11 +110,11 @@ namespace gr
|
|||
}
|
||||
nwritten += count;
|
||||
}
|
||||
|
||||
return nwritten;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* Should never reach here */
|
||||
return noutput_items;
|
||||
}
|
||||
|
||||
} /* namespace satnogs */
|
||||
|
|
|
@ -46,7 +46,6 @@ namespace gr
|
|||
size_t d_num_points;
|
||||
float d_scale;
|
||||
int16_t *d_out;
|
||||
const char *d_filename;
|
||||
|
||||
public:
|
||||
iq_sink_impl (const float scale, const char *filename, bool append,
|
||||
|
|
Loading…
Reference in New Issue