一起玩转GNU Radio:gr-filter

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

本文介绍GNU Radio源码的gr-filter相关实例及模块。

目录

一、filter_taps

1、Fast Noise Source模块

2、Decimating FIR Filter模块

3、QT GUI Frequency Sink模块

二、polyphase_channelizer_demo

1、Signal Source模块

2、Hierarchical Polyphase Channelizer

三、resampler_demo

1、Add Const

2、Frequency Mod模块

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 Radioicon-default.png?t=N7T8https://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 Radioicon-default.png?t=N7T8https://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 Radioicon-default.png?t=N7T8https://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 Radioicon-default.png?t=N7T8https://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 Polyphase Channelizer - GNU Radioicon-default.png?t=N7T8https://wiki.gnuradio.org/index.php/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 Radioicon-default.png?t=N7T8https://wiki.gnuradio.org/index.php/Add_Const

该模块将所有输入数据加上一个常数,即输入输出关系式为output[m] = input[m] + constant vector。 

2、Frequency Mod模块

Frequency Mod - GNU Radioicon-default.png?t=N7T8https://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模块

Polyphase Arbitrary Resampler - GNU Radioicon-default.png?t=N7T8https://wiki.gnuradio.org/index.php/Polyphase_Arbitrary_Resampler

该模块是多相任意重采样模块。该模块对接收到的信号流执行任意倍数重采样。重采样率可以是任何实数r。模块的参数解释如下:

Resampling Rate,重采样率取值。

Taps,(向量/浮点数列表)用于填充过滤器组的原型过滤器。抽头应以filter_size采样率生成。

Number of Filters:滤波器组中的滤波器数量。滤波器数量与重采样期间引入的量化噪声直接相关。

Stop-band Attenuation:阻带衰减值。

Sample Delay:采样延迟。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值