Low pass filter example by gnuradio


创建流程图

准备阶段

我们要准备以下方块

  • Signal Source
  • Low Pass Filter
  • Throttle
  • QT GUI Frquency Sink
  • QT GUI Range

具体连接

把它们以下面这样的形式进行连接:
just like this

双击QT GUI Range进行设置以下设置:

  • id : frequency
  • Default Value : 0
  • Start : -samp_rate/2
  • Stop : samp_rate/2

双击Signal Source进行设置频率,将ID改成frequency

设置Low pass filter的Cutoff Freq 和 Trasnsition width 的值:

  • Cutoff Freq : samp_rate/4
  • Transition Width : samp_rate/8
    这样我们就能看到频率响应

分析

这个流程图的核心作用只允许低频信号通过,衰减/滤除高频信号。
我们知道samp_rate = 32k, samp_rate/4 = 8k, samp_rate/8 = 4k
截止频率对应8k,过度带宽对应4k。
从而得知8Khz以下信号通过,8Khz以上信号衰减。

我们调的frequency对应的是发出的正弦波信号,调它我们可以直接看到波形的变化。
低通滤波器在截止频率附近,不是瞬间没得而是慢慢衰减下去的。

我们可以将低通滤波器进行分区:

  • 通带 : 从0到截止频率,顾名思义信号可以几乎无损的进行通过
  • 过通带: 从截止频率到阻带其实频率,幅度快速下降过度到阻带
  • 阻带 : >阻带起始频率,信号被大幅衰减并抑制,通常要求<=-60dB

    数学计算

    我们首先计算过度带内的频率:
  • samp_rate
  • Cutoff_Freq
  • Transition Width $TW=4000
  • Stopband Cutoff Frq
  • Typical value of stopband attenuation
  • Cutoff Attenuation
    插值计算:

    含义:
  • 从截止频率-3dB开始
  • 随频率线性增加衰减
  • 到阻带起点达到-60dB
    但是还是要考虑都窗函数,会有误差。

但是你带入计算时会发现数值差距比较大,这是因为GNURadio低通滤波器用的是FIR频率响应
感兴趣的可以百度一下哈


文章作者: D.riven
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 D.riven !
  目录