注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
邶风的个人空间 https://home.eeworld.com.cn/space-uid-415557.html [收藏] [复制] [分享] [RSS]
日志

Gnuradio中的“HelloWorld”

已有 3852 次阅读2012-11-7 21:10 |个人分类:一路radio|

    dial_tone是Gnuradio中一个Hello World式的程序。它是通过产生两路频率分别为350Hz和440Hz的余弦信号进入声卡进而来推动扬声器发声。通过学习它的源代码了解了gnuradio中流图机制的一些特点。
1、程序的流程
    主程序由计算机产生余弦波【src0=gr.sig_source_f(sample_rate,gr.GR_SIN_WAVE,350,ampl)】,其中sample_rate是采样率,ampl是余弦的幅值。有两个信号源,这里只是350Hz对应的代码。另外一个可类似生成。
最后有一个音频设备【dst=audio.sink(sample_rate,options.audio_output)】,通过声卡来播放声音。模块之间的连接是通过connect语句来实现的,self.connect(src0,(dst,0))或者self.concect((src0,0),(dst,0),二者是等价的。
2、参数选项
    程序中其他的部分在定义参数option。在运行其他的.py文件时,看明白这一段是很有帮助的。一般在运行的语句后面加上-h(--help),可以显示帮助信息;-v(--version)可以显示版本信息。一些其他的定义则可以通过代码中那样的方法来添加。例如下图中最后添加的参数-d,没有实际意义,但是在help信息里会输出learn more details……的信息。

3、额外的程序
     声音带给人们对实验结果的刺激比起其他形式要来的更强烈。所以自己通过gnuradio-companion写了一个cos_to_wav的验证程序。目的就是将计算机产生的正弦信号,经过低通滤波器,将码流输出到一个.dat文件中。然后用播放器来验证是否生成了一定频率的声音。我最后生成了.dat的文件,这样的话就可以播放出来验证了。
点击生成、运行之后,然后kill。在目录下即可以找到radio.dat文件,播放的话就可以听到响亮的声音。底下的示波器也显示声音频率为1kHz。整个从信号的产生、信号的处理以及信号的检测都了解了一点,接下来就是自己编写相应的信号处理模块,以适应不同项目的需要。


评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章