如何用源码安装gnuradio

如何用源码安装gnuradio,第1张

Gnuradio 3.3.0源码编译安装

要进行gnuradio的研究首先需要在linux环境下对开源源码进行编译与安装 *** 作。

1、相关资源

目前gnuradio的主要资源都在其官方网站上,当然也有部分是各大论坛上的。

gnuradio官方网站(英文):http://gnuradio.com (这里有各种linux平台安装gnuradio的资料)

gnuradio中文官方网站:http://gnuradio.cc/ (这里有很多很好的中文参考资料)

2、初次安装gnuradio

本人已经在Ubuntu 11.04上完成gnuradio3.3.0(源码)编译安装。以下是我的安装步骤:

step1: 安装Ubuntu 11.04 系统。(利用U盘安装,此步骤省略)

step2: 安装gnuradio编译的相关tools

(1)严格按照gnuradio官方网站上的方法安装tools。首先安装Lucid ubuntu (10.04)版本相关组件,安装命令如下:

sudo apt-get -y install libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev \ libcppunit-dev libboost-all-dev libusb-dev fort77 sdcc sdcc-libraries \ libsdl1.2-dev python-wxgtk2.8 git-core guile-1.8-dev \ libqt4-dev python-numpy ccache python-opengl libgsl0-dev \ python-cheetah python-lxml doxygen qt4-dev-tools \ libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4

(2)安装libxi-dev

sudo apt-get -y install libxi-dev

注:可以直接拷贝到终端窗口的命令行下。安装这些组件总大小差不多600M多,需要一些时间(本人是在教育网上下载速度挺快,如果是其他网络比较慢 :))。这些组件必须全部安装完成,否则后期编译无法通过。

step3:编译gnradio源码,安装

(1) 安装完组件之后,需要在官网上下载最新的gnuradio源码包,我下载的是3.3.0版本。然后利用tar -xzvf XXX 解压缩源码包。

(2) 配置相关参数

命令:./configure

(3)开始编译

命令: make

注: 编译过程时间较长,另外3.3.0版本存在一个固有的bug,编译过程中会报错(cannot convert ‘int*’ to ‘usrp2::usrp2*’ in initialization)。其解决的方案是:

修改gnuradio目录下usrp2/host/lib/usrp2.cc 文件:

源文件->

gnuradio 中所有的信号处理是通过流图的

一个流图由若干模块组成,每个模块会执行一个 *** 作,例如:过滤,信号叠加,变化,解码,连接到硬件等。

信号在模块之间以多种方式传递,复数或者实整型,浮点数,或者其他我们定义的数据类型。

python

每一个流图需要至少一个信宿和信号源。

python 中一个流图的例子。

代码的位置在 : gr-audio/examples/python/dial_tone.py.

#!/usr/bin/env python

from gnuradio import gr

from gnuradio import audio, analog

class my_top_block(gr.top_block):

def __init__(self):

gr.top_block.__init__(self)

sample_rate = 32000

ampl = 0.1

src0 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 350, ampl)

src1 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 440, ampl)

dst = audio.sink(sample_rate, "")

self.connect(src0, (dst, 0))

self.connect(src1, (dst, 1))

if __name__ == '__main__':

try:

my_top_block().run()

except [[KeyboardInterrupt]]:

pass


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11753278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存