本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文介绍GNU Radio源码的gr-audio相关实例及模块。
目录
一、cvsd_sweep
GRC文件为《gnuradio-3.9.1.0/gr-audio/examples/grc/cvsd_sweep.grc》。该流图的主要功能是实现了CVSD编码和解码,运行时扬声器可发声。VCO模块受控于Signal Source模块,产生幅度频率变化的正弦信号,再输入给CVSD编码器进行编码,再经过CVSD解码器进行解码后对信号进行了还原。每个可直观查看信号的时域和频域变化。具体用到了Signal Source、Throttle、VCO、CVSD Encoder、CVSD Decoder、Packed to Unpacked、Char To Float、Audio Sink、QT GUI Frequency Sink、QT GUI Time Sink模块。
1、VCO模块
该模块为压控振荡器模块,可以根据输入幅度生成相应频率的正弦波。模块输入是控制电压的float数据流,输出是float型的(振荡器)正弦波。
模块参数解释如下:
Sample Rate,采样率。
Sensitivity,灵敏度,单位为弧度/秒/伏。
Amplitude,振幅,输出信号的振幅。
2、CVSD Encoder和CVSD Decoder模块
一般成对出现在程序中。这是CVSD编码器/解码器的包装程序,它执行与声码一起工作所必需的插值和滤波。它将传递的浮点数(+ -1)转换为短整型数值,将其缩放(至32000;略低于最大值),对其进行插值,然后对其进行声码处理。输入的采样率可以是任何值,当然,采样率越高和插值率越高,声音质量就越好。
模块参数解释如下:
Resample,重采样取值。
Frac. Bandwidth,频率带宽值。
3、Packed to Unpacked模块
Packed to Unpacked - GNU Radio
该模块是数据包解码模块,支持指定大端和小端方式。
模块参数解释如下:
Bits per Chunk,每个输出(字节/短整型)中要包含多少位。
Endianness:处理输入位时是以大端MSB方式还是小端LSB方式;(LSB的意思是:全称为Least Significant Bit,在二进制数中意为最低有效位,一般来说,MSB位于二进制数的最左侧&#