⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 standard_squelch.py

📁 这是用python语言写的一个数字广播的信号处理工具包。利用它
💻 PY
字号:
## Copyright 2005 Free Software Foundation, Inc.# # This file is part of GNU Radio# # GNU Radio is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 3, or (at your option)# any later version.# # GNU Radio is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.# # You should have received a copy of the GNU General Public License# along with GNU Radio; see the file COPYING.  If not, write to# the Free Software Foundation, Inc., 51 Franklin Street,# Boston, MA 02110-1301, USA.# import mathfrom gnuradio import gr, optfirclass standard_squelch(gr.hier_block):    def __init__(self, fg, audio_rate):            self.input_node = gr.add_const_ff(0)          # FIXME kludge                self.low_iir = gr.iir_filter_ffd((0.0193,0,-0.0193),(1,1.9524,-0.9615))        self.low_square = gr.multiply_ff()        self.low_smooth = gr.single_pole_iir_filter_ff(1/(0.01*audio_rate))   # 100ms time constant        self.hi_iir = gr.iir_filter_ffd((0.0193,0,-0.0193),(1,1.3597,-0.9615))        self.hi_square = gr.multiply_ff()        self.hi_smooth = gr.single_pole_iir_filter_ff(1/(0.01*audio_rate))        self.sub = gr.sub_ff();        self.add = gr.add_ff();        self.gate = gr.threshold_ff(0.3,0.43,0)        self.squelch_lpf = gr.single_pole_iir_filter_ff(1/(0.01*audio_rate))        self.div = gr.divide_ff()        self.squelch_mult = gr.multiply_ff()        fg.connect (self.input_node, (self.squelch_mult, 0))        fg.connect (self.input_node,self.low_iir)        fg.connect (self.low_iir,(self.low_square,0))        fg.connect (self.low_iir,(self.low_square,1))        fg.connect (self.low_square,self.low_smooth,(self.sub,0))        fg.connect (self.low_smooth, (self.add,0))        fg.connect (self.input_node,self.hi_iir)        fg.connect (self.hi_iir,(self.hi_square,0))        fg.connect (self.hi_iir,(self.hi_square,1))        fg.connect (self.hi_square,self.hi_smooth,(self.sub,1))        fg.connect (self.hi_smooth, (self.add,1))        fg.connect (self.sub, (self.div, 0))        fg.connect (self.add, (self.div, 1))        fg.connect (self.div, self.gate, self.squelch_lpf, (self.squelch_mult,1))        gr.hier_block.__init__(self, fg, self.input_node, self.squelch_mult)    def set_threshold(self, threshold):        self.gate.set_hi(threshold)    def threshold(self):        return self.gate.hi()        def squelch_range(self):        return (0.0, 1.0, 1.0/100)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -