经常使用的gnuradio 模块

---恢复内容开始---html

参考:http://gnuradio.org/redmine/projects/gnuradio/wiki/TutorialsWritePythonApplicationspython

导入模块的语句c++

from gnuradio import MODULENAME

经常使用模块由以下及个git

gr               gnuradio 的主要库,基本上每一个程序都须要用到函数

analog        和模拟信号和模拟信号调制有关的功能工具

audio          声卡控制,能够用来向声卡发送信息 或者经过声卡接收信息学习

blocks        全部不属于其余模块的东西,可能就放在这ui

channels    仿真所用的信号模型编码

digital         与analog, 所用和数字信号调制有关的功能在这spa

fft                和ffts 有关的功能

fec              和fex有关的贡呢

filter            过滤器模块

plotdata      绘制数据

qtgui           和表示数据有关的图形界面(使用QT库)

wxgui          包含快速建立流图的用户界面的一些实体

vocoder       和声音编码有关的一些功能

wavelet       和微波有关的一些功能

gru              各类各样和数学及其余有关的一些功能实体

 

选择,定义和设置模块。如何选择模块对于咱们来讲是挺男的一个事,由于GNU RADIO提供了大量的预先定义的模块。

所以咱们须要查阅一些文档。而如何使用这些文档也是学习。

 

下列3行代码,是定义blocks的句子,

1 src0 = analog.sig_source_f (sample_rate, analog.GR_SIN_WAVE, 350, ampl)
2 src1 = analog.sig_source_f (sample_rate, analog.GR_SIN_WAVE, 440, ampl)
3 dst  = audio.sink (sample_rate, "")

在Lin1-2 中,一个名字 sig_source_f 的函数呗调用了,而且收到了4个函数参数
1. 采样频率 sample_rate   2. analog.GR_SIN_WAVE, analog 模块中定义的一个常量,在这里告知信号生产的类型

3. 350/440 一个常量,表明生产信号的频率

4. ample  一个表示生成信号幅度的变量。

 

问题是,在预先不知道这段代码的状况下,我怎么知道我要将哪些参数传递给  sig_source_f

答案就是:查阅文档,咱们须要寻找  sig_source_f  地址:http://gnuradio.org/doc/doxygen/classgr_1_1analog_1_1sig__source__f.html   

其中包好不少   sig_source_× , f 表明生成信号是浮点数。其余的有:

c:  复数浮点型

i:   整型

s:  短整型

b:  位,其实也是整数

例如 gr::filter::fir_filter_ccf Class
表明  FIR filter with gr_complex input, gr_complex output, and float taps.

gr::blocks::add_const_ff

表明 output = input + constant 数据类型都是浮点数

 

GNuradio blocks 都是用C++ 写的,可是我在在调用的时候用的是python, 之全部能够这么使用的缘由是,gnuradio 使用了一种被称之为SWIG的工具来建立python和C++之间的借口。

每个c++ blocks 都有一个建立函数, gr::component::block::make(***) 例如 gr::analog::sig_source_f::make()。 这个建立函数,常常是位于和对应类的同一页面,而且可以一样输出到python, 能够经过python调用。 固然为了了解这些blocks 具体是怎么工做的,咱们可能或早或晚都须要进一步去看哪些代码。

相关文章
相关标签/搜索