IEEE Signal Processing Magazine 是信号处理领域一本著名的杂志。它偶尔会出一个名叫 Tips & Tricks 的专栏。这个专栏的文章没有高深的理论知识,简洁实用,适合非信号处理专业的人员搬用。

在第 33 卷,第 3 期中,有一篇讲如何设计陷波滤波器的文章( Narrowband Notch Filter Using Feedback Structure ),特意学习一下,并记录于此。

1、传统陷波滤波器

一个简单的陷波滤波器的表达式为

C(z)=1−2cos(ω∗)z−1+z−21−2ρcos(ω∗)z−1+ρ2z−2

{C}\left( z \right) = \frac{{1 - 2\cos \left( {{\omega ^ * }} \right){z^{ - 1}} + {z^{ - 2}}}}{{1 - 2\rho \cos \left( {{\omega ^ * }} \right){z^{ - 1}} + {\rho ^2}{z^{ - 2}}}}

其中, ω∗ \omega ^ * 是陷波滤波器的中心频率。

为了确保系统稳定,式中 ρ \rho 必须满足:

0≤ρ<1

0 \leq \rho

为了验证不同的 ρ \rho 值的影响,给出如下代码:

close all;
clc;clear all;
omega_ref = 0.4*pi;rho_1 = 0.7;
num_Cz_1 = [1, -2*cos(omega_ref), 1];
den_Cz_1 = [1, -2*rho_1*cos(omega_ref),rho_1^2];
[h_Cz_1,w_Cz_1] = freqz(num_Cz_1,den_Cz_1);%频率响应rho_2 = 0.8;
num_Cz_2 = [1, -2*cos(omega_ref), 1];
den_Cz_2 = [1, -2*rho_2*cos(omega_ref),rho_2^2];
[h_Cz_2,w_Cz_2] = freqz(num_Cz_2,den_Cz_2);%频率响应rho_3 = 0.9;
num_Cz_3 = [1, -2*cos(omega_ref), 1];
den_Cz_3 = [1, -2*rho_3*cos(omega_ref),rho_3^2];
[h_Cz_3,w_Cz_3] = freqz(num_Cz_3,den_Cz_3);%频率响应figure(1);
plot(w_Cz_1,abs(h_Cz_1),'r',w_Cz_2,abs(h_Cz_2),'b',w_Cz_3,abs(h_Cz_3),'k');
xlabel('频率');ylabel('幅度');
legend('rho=0.7','rho=0.8','rho=0.9','Location','SouthEast');
title('陷波滤波器的幅频特性曲线(未加反馈环节)');grid;

绘制的波形如下图所示。从图中可以看到, ρ \rho 值越大,陷波器的阻带越窄。但是,这种陷波滤波器存在阻带不够窄,且通带增益不为 1 的情况。阻带不够窄,说明在去除某些频率分量的同时,也可能会滤掉一些有用的信号。通带增益不为 1 ,说明会影响通带内的频率分量的幅值。


图 1 : 系数 ρ \rho 对陷波滤波器幅频特性的影响

2、基于反馈结构的陷波滤波器

该陷波器在传统的陷波滤波器上加入了一个反馈环节,其结构如下图所示。


图 2 : 反馈型陷波滤波器的结构

该结构的表达式为

HN(z)=(1+α)C(z)1+αC(z)

{H_N}\left( z \right) = \frac{{\left( {1 + \alpha } \right)C\left( z \right)}}{{1 + \alpha C\left( z \right)}}

其中, α \alpha 为反馈系数。当 α=0 \alpha =0 时,该滤波器退化为传统的陷波滤波器。下面的代码分析了系数 α \alpha 对陷波滤波器性能的影响。

Cz = filt(num_Cz_3,den_Cz_3); %生成离散传递函数alpha_1 = 5;
HNz_1 = (1+alpha_1)*Cz/(1+alpha_1*Cz);
[h_HNz_1,w_HNz_1] = freqz(HNz_1.num{1}, HNz_1.den{1});%频率响应alpha_2 = 20;
HNz_2 = (1+alpha_2)*Cz/(1+alpha_2*Cz);
[h_HNz_2,w_HNz_2] = freqz(HNz_2.num{1}, HNz_2.den{1});%频率响应figure(2);
plot(w_Cz_1,abs(h_Cz_1),'r',w_HNz_1,abs(h_HNz_1),'b',w_HNz_2,abs(h_HNz_2),'k');
xlabel('频率');ylabel('幅度');
legend('Cz (rho=0.9)','HNz (alpha=5)','HNz (alpha=20)','Location','SouthEast');
title('陷波滤波器的幅频特性曲线');grid;

上述代码得到的结果如下图。增大 α \alpha 使陷波滤波器的阻带变窄,且其通带的增益也越来越接近 1 。同时,该结构能够保证系统的稳定。


图 3:反馈系数对滤波器性能的影响


图 4:上图的局部放大图

3、结论

传统的陷波滤波器存在两个缺点。一是滤波器的阻带不够窄,二是通带的增益不等于 1 。加入反馈环节,可以同时满足这两个要求。从 MATLAB 代码可以看到,这种陷波滤波器很容易数字实现。

申明:本博文来自 xinhuasz 的博客,地址为 http://blog.csdn.net/xinhuasz。

基于反馈结构的窄带宽陷波滤波器相关推荐

  1. matlab fdatool陷波器,基于MATLAB的简单50Hz数字陷波器.doc

    基于MATLAB的简单50Hz数字陷波器 摘要:陷波器是一个二阶滤波器,它的幅度特性在ω=±ω0处为零,在其他频率上接近常数,是一个滤波单频干扰的滤波器.一般仪器都用50Hz的交流电源供电,因而信号中 ...

  2. matlab提取电压基波分量,基于复系数陷波滤波器锁相环的电网正序分量检测

    摘  要: 为满足在电网电压不平衡情况下的系统控制需求,需要快速而准确地检测出基波正负序分量的幅值和相位.采用无限脉冲响应(IIR)复杂系数陷波滤波器结合锁相环来提取基波分量中的正序分量,利用MATL ...

  3. 伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真

    伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真 1.模型简介 模型为基于陷波滤波器的双惯量伺服系统机械谐振抑制仿真,采用Matlab R2018a Simulink ...

  4. Simulink 窄带陷波滤波器(Notch filter)仿真到代码生成

    目录 窄带陷波滤波器(Notch filter)原理 设计一个Notch filter 生成代码 离散传递函数生成代码配置 差分方程生成代码 方程推导 构建差分方程模型 总结 窄带陷波滤波器(Notc ...

  5. 基于gnuradio的自适应陷波滤波器OOT模块(notch filter)

    基于gnuradio的自适应陷波滤波器OOT模块 Introduction 模型工具gr_modtool 创建OOT Module 创建OOT block 修改impl.h 修改impl.cc 修改a ...

  6. 基于matlab的陷波滤波器设计

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器.陷波滤波器属于带阻滤波器的一种,只是它 ...

  7. 基于陷波滤波器的永磁同步电机振动抑制学习笔记

    注:相关学习笔记与参考文献请微信关注"木虫学堂"回复"陷波滤波器"获取.

  8. matlab 设计带阻型陷波滤波器_Q值可调、最大增益恒定的带通滤波器

    带通滤波器(BPF)被广泛用于通带非常窄.通带以外任何其它频率被衰减的应用. 公式(1)是带通滤波器的二阶带通传输函数: 其中,K代表恒定的滤波器增益,Q代表滤波器的品质因数. 在H.Martinez ...

  9. 自适应陷波滤波器(Notch滤波器)

    自适应滤波器以其自身调节参数的能力以及对信号和噪声的先验知识要求少的优势得到了广泛的应用. 自适应陷波滤波器相比于普通的数字滤波器具有较窄的阻带和通带,带外衰减较快.具有滤波输出(Y输出)和陷波输出( ...

最新文章

  1. 北师大毕彦超:AI和人类感知的相同点和不同点
  2. centos java 指令_Centos 命令方式下载JDK1.7
  3. php下字符与二进制互转函数,PHP 字符串与二进制互转
  4. 详解在Visual Studio中使用git版本系统
  5. 关于.cpp文件包含另一个.cpp文件出错的原因以及解决办法
  6. mysql标准化存储结构_Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结  mysql...
  7. 如何在 ASP.Net Core 使用 分布式缓存
  8. 如何判断微信内置浏览器(JS PHP)
  9. 字符数组和strcpy
  10. 与缓存有关的http-header
  11. Echarts定制一个地图
  12. getent passwd 不能访问到 ldap 的用户
  13. PowerBuilder9.0窗口最小化没显示了
  14. 编写Java程序,创建一个父类交通工具类(Vehicles),以及两个子类,分别是轿车类(Car)和卡车类(Truck)。
  15. D3.入门教程——简介和安装
  16. 3步解决AS提示:Compilation is not supported for following modules
  17. 对于DCB的认识---GNSS 误差源
  18. 不用带眼镜 东芝裸眼3D电视9个角度随便看
  19. 网御星云防火墙端口映射配置
  20. javascript实现按频次排序

热门文章

  1. 已解决SyntaxError:expected ‘:‘
  2. 语法解析错误: syntax error, unexpected ‘��‘ (T_STRING), expecting ‘,‘ or ‘;‘
  3. FIO 存储性能压测
  4. 如何挣更多钱呢?提高你的编程艺术!
  5. 商务网站建设中的虚拟主机技术
  6. 构造方法--无参构造方法
  7. Linux上安装dos2unix
  8. 10003---Node.js NPM使用介绍
  9. python播放音乐同步歌词范晓萱_同步_范晓萱_高音质在线试听_同步歌词|歌曲下载_酷狗音乐...
  10. 59.Mongoose