經常使用的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 具體是怎麼工做的,咱們可能或早或晚都須要進一步去看哪些代碼。

相關文章
相關標籤/搜索