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

📄 stream_to_vector_decimator.py

📁 这是用python语言写的一个数字广播的信号处理工具包。利用它
💻 PY
字号:
## Copyright 2008 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.#from gnuradio import grclass stream_to_vector_decimator(gr.hier_block2):    """!    Convert the stream to a vector, decimate the vector stream to achieve the vector rate.    """    def __init__(self, item_size, sample_rate, vec_rate, vec_len):	"""!	Create the block chain.	@param item_size the number of bytes per sample	@param sample_rate the rate of incoming samples	@param vec_rate the rate of outgoing vectors (same units as sample_rate)	@param vec_len the length of the outgoing vectors in items	"""	self._vec_rate = vec_rate	self._vec_len = vec_len	self._sample_rate = sample_rate		gr.hier_block2.__init__(self, "stream_to_vector_decimator",				gr.io_signature(1, 1, item_size),         # Input signature				gr.io_signature(1, 1, item_size*vec_len)) # Output signature	s2v = gr.stream_to_vector(item_size, vec_len)	self.one_in_n = gr.keep_one_in_n(item_size*vec_len, 1)	self._update_decimator()	self.connect(self, s2v, self.one_in_n, self)    def set_sample_rate(self, sample_rate):	"""!	Set the new sampling rate and update the decimator.	@param sample_rate the new rate	"""	self._sample_rate = sample_rate	self._update_decimator()    def set_vec_rate(self, vec_rate):	"""!	Set the new vector rate and update the decimator.	@param vec_rate the new rate	"""	self._vec_rate = vec_rate	self._update_decimator()	    def _update_decimator(self):	self._decim = max(1, int(self._sample_rate/self._vec_len/self._vec_rate))	self.one_in_n.set_n(self._decim)    def sample_rate(self):	"""!	Returns configured sample rate.	"""	return self._sample_rate	    def frame_rate(self):	"""!	Returns actual frame rate	"""	return self._sample_rate/self._vec_len/self._decim

⌨️ 快捷键说明

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