本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文介绍GNU Radio源码的gr-filter相关实例及模块。
目录
2、Hierarchical Polyphase Channelizer
3、Polyphase Arbitrary Resampler模块
一、filter_taps
GRC文件为《gnuradio-3.9.1.0/gr-filter/examples/filter_taps.grc》。该流图的功能是实现不同类型滤波器的仿真。
以下四个图分别给出了不同类型滤波器的抽头参数变量。
低通滤波器抽头参数变量
高通滤波器抽头参数变量
带通滤波器抽头参数变量
带阻滤波器抽头参数变量
根升余弦滤波器抽头参数变量
1、Fast Noise Source模块
Fast Noise Source - GNU Radiohttps://wiki.gnuradio.org/index.php/Fast_Noise_Source
该模块是快速噪声源,与Noise Source模块相比,不同之处在于它通过预先生成从指定分布中提取的随机变量来减少CPU的负载。该模块在运行时,从样本资源池中均匀地随机选择样本,这是一个非常快速的操作。支持complex,float,int或short类型的数据输出。
模块参数解释如下:
Noise Type,随机分布类型,支持高斯分布、均匀分布、拉普拉斯分布和冲激分布。
Amplitude,噪声信号振幅,表示一维噪声的标准差,如果噪声源是复数噪声源,则该参数需分配为实部和虚部。
Seed,随机噪声生成器的种子,对于均匀分布和高斯分布,该种子取值应该是一个负数。
Variate Pool Size,可变池大小,表示预生成样本的数量。
2、Decimating FIR Filter模块
Decimating FIR Filter - GNU Radiohttps://wiki.gnuradio.org/index.php/Decimating_FIR_Filter
该模块是抽取型有限长单位冲激响应滤波器。模块参数解释如下:
Type,模块输入输出数据类型,支持Complex->Complex(Complex Taps)、Complex->Complex(Real Taps)、Float->Complex(Complex Taps)、Float->Float(Real Taps)、Float->Short(Real Taps)、Short->Complex(Complex Taps)。
Decimation,抽取率。该模块根据此数值来对输入数据进行抽取操作。抽取率为1时表示不进行抽取。如果抽取设置为高于1,则需要确保滤波器可以移除“输出区域”之外的带外能量,即-Fs/2到Fs/2,其中Fs是输入数据的采样率除以该模块的抽取率。
Taps,在FIR滤波器中使用的抽头。
Sample Delay,采样延迟,默认为0表示无延迟。
3、QT GUI Frequency Sink模块
QT GUI Frequency Sink - GNU Radiohttps://wiki.gnuradio.org/index.php/QT_GUI_Frequency_Sink该模块是基于QT GUI的信号频域显示模块,它采用一组浮点数据流来绘制信号的功率谱密度PSD。每个信号都以不同的颜色绘制,并且可更改给定输入信号的标签和颜色。该模块支持绘制流浮点数据或消息。消息端口被命名为“in”,这两种模式不能同时使用,在使用消息模式时应将其设置为0。GRC通过提供可删除流端口的“float Message”类型来解决此问题。模块参数解释如下:
fftsize,FFT大小值。如果使用PDU消息端口绘制样本,则每个PDU的长度必须是FFT大小的倍数。
wintype:要应用的窗口类型,支持Blackman-harris、Hamming、Hann、Blackman、Rectangular、Kaiser、Flat-top类型,具体可参见GNU Radio的官方GNU Radio manual and C++ API Reference gr::fft::window::win_type。
https://www.gnuradio.org/doc/doxygen/classgr_1_1fft_1_1window.html
Center Frequency:信号中心频率(仅用于x轴标签)
Bandwidth:信号带宽(用于x轴标签)。
Name:QT GUI Frequency界面的标题。
GUI Hint:界面中图形的位置坐标。
二、polyphase_channelizer_demo
GRC文件为《gnuradio-3.9.1.0/gr-filter/examples/ polyphase_channelizer_demo.grc》。该流图的功能是仿真基于多相结构的信道化功能。
1、Signal Source模块
Signal Source - GNU Radiohttps://wiki.gnuradio.org/index.php/Signal_Source
该模块是信号源模块,用于生成常数、正弦波、余弦波、方波、三角波和锯齿波的信号,支持complex、float、int、short和byte类型输出类型。
模块参数解释如下:
Sample Rate,采样率。
Waveform,可选项包括[Constant常数,Sine正弦波,Cosine余弦波,Square方波,Triangle三角波,Saw Tooth锯齿波]。
对于带有变量的选项,应使用以下取值:常数=100,正弦=101,余弦=102,方波=103,三角形=104,锯齿=105。
Frequency,信号的频率。
Amplitude:输出幅度(默认值为1)。
Offset:从零开始偏移(默认值为0)。
Initial Phase:默认值为0(弧度)。
2、Hierarchical Polyphase Channelizer
该模块是多相位信道化的Hierarchical模块。Hierarchical模块是GNU Radio中的一种可以用于将一些功能进行封装供其他流图使用的模块。这种模块可以辅助用于将复杂的流图分解为多个不同功能的流图,有利于让复杂流图变得清晰明了。模块参数解释如下。
Number of Channels,要拆分的信道通道数。
Number of Filterbanks,要使用的滤波器组(Filterbanks)块数(默认值为 2)。
Taps,选择抽头参数。如果是None,则使用optfir.low_pass生成滤波器抽头。
Output Channels,模块输出流的通道(整数列表)(默认为所有通道)。
Fraction of Channel to Keep,要保留的信道部分。
Transition Band,过渡带作为通道宽度的一部分。
Passband Ripple in dB,以dB为单位的通带纹波,纹波Riplpe是指1dB或3dB带宽(截止频率)范围内,插入损耗在损耗均值曲线基础上波动的峰-峰值。
三、resampler_demo
GRC文件为《gnuradio-3.9.1.0/gr-filter/examples/resampler_demo.grc》。该流图的功能是仿真重采样功能。
1、Add Const
Add Const - GNU Radiohttps://wiki.gnuradio.org/index.php/Add_Const
该模块将所有输入数据加上一个常数,即输入输出关系式为output[m] = input[m] + constant vector。
2、Frequency Mod模块
Frequency Mod - GNU Radiohttps://wiki.gnuradio.org/index.php/Frequency_Mod
该模块是频率调制模块,模块输出信号的瞬时相位与灵敏度和输入幅度成正比。
更具体地说,根据以下条件取一个实数基带信号 (x_m[n]) 并输出一个调频信号 (y[n]):
其中x[n]是时间n的输入样本,是频率偏差。对于窄带FM频道(例如语音系统)和75KHz(例如音频广播FM电台),对于宽带FM的常见值为5kHz。在此块中,输入参数是,而不是频率偏差。灵敏度指定基于新输入样本的相位变化量。 给定最大偏差和采样率,灵敏度定义为:
模块参数解释如下。
Sensitivity,灵敏度参数,计算公式为radians/sample=amplitude*sensitivity。
3、Polyphase Arbitrary Resampler模块
该模块是多相任意重采样模块。该模块对接收到的信号流执行任意倍数重采样。重采样率可以是任何实数r。模块的参数解释如下:
Resampling Rate,重采样率取值。
Taps,(向量/浮点数列表)用于填充过滤器组的原型过滤器。抽头应以filter_size采样率生成。
Number of Filters:滤波器组中的滤波器数量。滤波器数量与重采样期间引入的量化噪声直接相关。
Stop-band Attenuation:阻带衰减值。
Sample Delay:采样延迟。