微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 如何编写python应用程序

如何编写python应用程序

时间:10-02 整理:3721RD 点击:

阅读了官方提供的how to write python applications,简单总结一下。首先说明这个教程是不用配合usrp设备就可以进行的,但是一些基本的硬件(例如声卡等)还是必须的。

1、流图做为Gnuradio里中的核心,多次被提到。文章中主要涉及的流图有:简单流图、多输入(或者输出)模块组成的流图、涉及数据形式转换的流图以及并行流图。在Gnuradio中所有的信号处理都是在流程图中完成的;一个流程图包含有若干模块,每一个模块都完成一项数字处理功能;模块间流动的数据的类型是多样的,复数、整数、浮点数或者是任何基本的可以自定义的数据类型;每一个流程图都至少需要一个源和一个显示终端。

2、通过对dial_tone.py的再次分析,将编写一个简单程序的步骤归纳为:导入相应的包、类;创建一个gr.top_block的子类,这个子类可以被python连接起来;在初始函数里定义相应的block,主要是源、终端和主要的信号处理模块;通过self.connect()进行连接,每个输出端可以连接一个或者多个输入端;最后写入测试代码,表明单独测试里所产生的效果。

3、Gnuradio中提供了很多的库和模块供我们调用。可以通过from gnuradio import modules的形式进行导入。常用的模块或者子包有:gr[所有的程序都会引入这个库,流图类的类型定义即在这里]、audio、blks2、wxgui等。学习这些模块最好的方法就是阅读说明手册,通过手册了解每一个类的定义以及参数。说明文档是通过doxygen来产生的,要经常查阅。

4、Gnuradio中控制流图是通过一些函数来控制的。具体包括gr.top_block的run、start、stop、wait等函数来实现流图的暂停、调整或者终止。用python编写的程序还可以接收命令行参数,以方便对程序的调整。具体的需要gnuradio.eng_option包里的eng_option。这样的一些特性可以使得我们使用一些标准工程标记。

5、GUI。python有着和自身绑定的gui库,无论是哪一种都可以实现你编写图形化界面的功能 。但是如果你只是需要一个菜单或者一些按钮来实现某些控制、功能切换。那么利用wxpython可以很方便的实现。这里讲了一些经常用到的模块,包含stdgui2[如果有图形界面,编写会经常用到]、fftsink2等。里面有一些框架、面板、小工具的添加方法和使程序运行的机制。

阅读完这篇文章,并通过自己实际编写程序,对用python编程来实现处理效果有了进一步的理解,也有了进行程序编写的思路。总结中后面提到的三点还没有来得及深入学习,这里先提出来,以后详细看了再好好总结。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top