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

📄 run_length.py

📁 这是用python语言写的一个数字广播的信号处理工具包。利用它
💻 PY
字号:
#!/usr/bin/env python## Copyright 2007 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 optparse import OptionParserimport sysdef main():    parser = OptionParser()    parser.add_option("-f", "--file", default=None,                      help="Choose file to read data from.")    (options, args) = parser.parse_args()    if options.file == None:        print "Must specify file to read from using '-f'."        sys.exit(1)    print "Using", options.file, "for data."    f = open(options.file, 'r')    runs = []    count = 0    current = 0    bytes = 0    bits = 0        for ch in f.read():        x = ord(ch)        bytes = bytes + 1        for i in range(7,-1,-1):            bits = bits + 1            t = (x >> i) & 0x1            if t == current:                count = count + 1            else:                if count > 0:                    if len(runs) < count:                        for j in range(count - len(runs)):                            runs.append(0);                    runs[count-1] = runs[count-1] + 1                current = 1-current;                count = 1    # Deal with last run at EOF    if len(runs) < count and count > 0:        for j in range(count - len(runs)):            runs.append(0);    runs[count-1] = runs[count-1] + 1    chk = 0    print "Bytes read: ", bytes    print "Bits read:  ", bits    print    for i in range(len(runs)):        chk = chk + runs[i]*(i+1)        print "Runs of length", i+1, ":", runs[i]    print    print "Sum of runs:", chk, "bits"    print    print "Maximum run length is", len(runs), "bits"if __name__ == "__main__":    main()    

⌨️ 快捷键说明

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