Gnuradio 信号处理模块的搭建
主讲人:
• 安装好Gnu Radio 以后,可以调用里面的数字信号处理模块,也
可以通过Python的黏合功能将几个模块级联生成新的模块。但是
要生成一个全新的数字信号处理模块,就必须要使用c++来编写
源代码,最后编译成可以调用的Python模块。
• SWIG:是一个非常优秀的开源工具,支持 C/C++ 代码与任何主流脚
本语言相集成,Python通过SWIG来调用C++编译好的moudle.
开发信号处理模块的两种方法:
一.基于模板的开发方法
howto-write-a-block-3.3.0.tar.gz
1)首先需要从FTP站点:ftp://ftp.gnu.org/gnu/gnuradio下载模板gr-
2)然后对下载的压缩包中的文件名进行修改。源代码模块名是howto,
方法为square_ff(),现在我们要修改其模块为test,方法为example_ff(),如:将
howto_square_ff.h/.cc等换成test_example_ff.h/.cc。同时将/swig目录下面的
howto都改为test。
3)对文件内容修改。主要是.h,.cc文件
4)最后在终端依次输入./configure;make;make install
二.用gr_modtool工具开发流程
• 目标开发一个howto包,并且在模块中添加一个square_ff()用于信
号平方的block。可以通过python直接调用该模块。
• eg:
• import howto
• sqr = howto.square_ff()
• 1)终端进入工作目录,输入gr_modtool newmod howto创建模块的包结
构目录,主目录下就生成了一个gr-howto目录。
• 2)进入gr-howto文件夹,输入gr_modtool add -t general square_ff。意思是
在包中添加一个general类型的block,功能是实现平方运算,输入输出都
为float。
• 3)修改block设计中的核心文件square_ff_impl.cc
• 需要修改的核心函数为general_work(),该函数实现了信号处理算
法。
• 4)进入gr-howto根目录,新建文件mkdir build 。
进入文件夹cd build,开始编译。依次执行
cmake ../;make;
• 5)安装该模块。进入build,依次执行make
install;ldconfig。
• 6)如果想让该模块在GRC中可用,需要添加
xml描述文件,gr_modtool makexml square_ff。
这样在GRC中就可以看到自己写的模块了。
调用一下试试!