diff options
Diffstat (limited to 'gr-channels/python/channels/amp_bal.py')
-rw-r--r-- | gr-channels/python/channels/amp_bal.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gr-channels/python/channels/amp_bal.py b/gr-channels/python/channels/amp_bal.py new file mode 100644 index 0000000000..30e0f0d8e2 --- /dev/null +++ b/gr-channels/python/channels/amp_bal.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +################################################## +# Gnuradio Python Flow Graph +# Title: Amplitude Balance +# Author: mettus +# Description: Restores IQ amplitude balance +# Generated: Thu Aug 1 11:47:46 2013 +################################################## + +from gnuradio import blocks +from gnuradio import gr +from gnuradio.filter import firdes + +class amp_bal(gr.hier_block2): + + def __init__(self, alpha=0): + gr.hier_block2.__init__( + self, "Amplitude Balance", + gr.io_signature(1, 1, gr.sizeof_gr_complex*1), + gr.io_signature(1, 1, gr.sizeof_gr_complex*1), + ) + + ################################################## + # Parameters + ################################################## + self.alpha = alpha + + ################################################## + # Blocks + ################################################## + self.blocks_rms_xx0 = blocks.rms_ff(alpha) + self.blocks_rms_xx = blocks.rms_ff(alpha) + self.blocks_multiply_vxx1 = blocks.multiply_vff(1) + self.blocks_float_to_complex = blocks.float_to_complex(1) + self.blocks_divide_xx = blocks.divide_ff(1) + self.blocks_complex_to_float = blocks.complex_to_float(1) + + ################################################## + # Connections + ################################################## + self.connect((self.blocks_float_to_complex, 0), (self, 0)) + self.connect((self, 0), (self.blocks_complex_to_float, 0)) + self.connect((self.blocks_complex_to_float, 0), (self.blocks_rms_xx, 0)) + self.connect((self.blocks_complex_to_float, 1), (self.blocks_rms_xx0, 0)) + self.connect((self.blocks_rms_xx, 0), (self.blocks_divide_xx, 0)) + self.connect((self.blocks_rms_xx0, 0), (self.blocks_divide_xx, 1)) + self.connect((self.blocks_complex_to_float, 0), (self.blocks_float_to_complex, 0)) + self.connect((self.blocks_complex_to_float, 1), (self.blocks_multiply_vxx1, 1)) + self.connect((self.blocks_divide_xx, 0), (self.blocks_multiply_vxx1, 0)) + self.connect((self.blocks_multiply_vxx1, 0), (self.blocks_float_to_complex, 1)) + + +# QT sink close method reimplementation + + def get_alpha(self): + return self.alpha + + def set_alpha(self, alpha): + self.alpha = alpha + self.blocks_rms_xx.set_alpha(self.alpha) + self.blocks_rms_xx0.set_alpha(self.alpha) + + |