陷波器的理论分析

目录

1.陷波器基本概念 

2.陷波器的设计


                                                  

       陷波器(Notch Filter)是一种特定类型的滤波器,其主要功能是从信号中去除或极大衰减特定频率的成分,也就是消除特定频率的“陷波”。陷波器在通信、信号处理和控制工程等领域具有广泛应用。

       陷波滤波器通常采用二阶及以上阶数的设计,因为至少需要二阶系统才能产生在单个频率点的不连续性。其工作原理基于线性系统的频率响应特性,特别是通过设计零极点配置以实现特定频率上的深度衰减。对于模拟陷波滤波器,常见的实现结构包括有源RC滤波器和LC谐振电路。例如,一个简单的二阶无源陷波滤波器可以由两个串联的电感L和两个并联的电容C构成,形成一个并联谐振电路,再与另一个T型或π型网络结合,使得在谐振频率上产生很大的阻抗,从而衰减该频率分量。数字陷波滤波器则是通过对模拟滤波器进行采样和数字化处理后得到的,常用的数字陷波滤波器设计方法包括双线性变换法和直接利用Z变换设计IIR滤波器(无限脉冲响应滤波器),或者使用FIR滤波器(有限脉冲响应滤波器)配合频率抽样技术来构造具有陷波特性的滤波器。

1.陷波器基本概念 

       陷波器是一种带阻滤波器的一种特殊类型,它设计用来抑制一个非常窄频段内的频率分量,而在其他频段内则表现出较低的衰减或甚至通过。典型的陷波器有两个重要的参数:中心频率fc​ 和带宽B,它在fc​ 处的衰减最大,并且在−2fc​−B/2 到 2fc​+B/2 的范围内呈现显著衰减。

       陷波器是无限冲击响应(IIR)数字滤波器,该滤波器可以用以下常系数线性差分方程表示:

对式(1)两边进行z变换,得到数字滤波器的传递函数为:

    

       由传递函数的零点和极点可以大致绘出频率响应图。在零点处,频率响应出现极小值;在极点处,频率响应出现极大值。因此可以根据所需频率响应配置零点和极点,然后反向设计带陷数字滤波器。考虑一种特殊情况,若零点在第1象限单位圆上,极点在单位圆内靠近零点的径向上。为了防止滤波器系数出现复数,必须在z平面第4象限对称位置配置相应的共轭零点、共轭极点。

       这样零点、极点配置的滤波器称为单一频率陷波器,在频率ωo处出现凹陷。而把极点设置在零的的径向上距圆点的距离为l-μ处,陷波器的传递函数为:

       式(3)中μ越小,极点越靠近单位圆,则频率响应曲线凹陷越深,凹陷的宽度也越窄。当需要消除窄带干扰而不能对其他频率有衰减时,陷波器是一种去除窄带干扰的理想数字滤波器。当要对几个频率同时进行带陷滤波时,可以按(2)式把几个单独频率的带陷滤波器(3)式串接在一起。

2.陷波器的设计

       设有一个输入,它由50Hz信号和100Hz信号组成。50Hz是一个干扰信号,要设计一个50 Hz的带陷滤波器,采样频率为400Hz。

它的传递函数为:

因此分子系数是[1 1.414 1];分母系数是[1 1.4126 0.999]。

差分方程有

3.matlab程序

clear all;
clc;

b=[1 -sqrt(2) 1];
a=[1 -sqrt(2)*0.999 0.999];
[db, mag, pha, grd, w]=freqz_m(b, a);        
subplot(221); plot(w*200/pi, db); title(' Magnitude Response' );
xlabel('frequency in Hz'); ylabel('dB'); axis([0, 100, -200, 5]);
set(gca, 'XTickMode', 'manual', 'XTick', [0, 50, 100]); 
set(gca, 'YTickmode', 'manual', 'YTick', [-200, -100, 0]); grid
title('Notch filter response');
t0=1:8000;
t=1:256;
t1=1:100;
t2=1:128;
x=sin(2*pi*50*t0/400)+0.5*sin(2*pi*100*t0/400);
x1=x(t);
y=filter(b,a,x1);
subplot(222); plot(x1);
title('Original waveform');
X=fft(x1);
subplot(223); plot(t2*400/256,abs(X(t2)));
xlabel('frequency in Hz'); ylabel('|H|'); axis([0, 200, 0, 150]);
title('Spectrum for original');
set(gca, 'XTickMode', 'manual', 'XTick', [0, 50, 100, 150]); 
set(gca, 'YTickmode', 'manual', 'YTick', [50, 100]); grid
y=filter(b,a,x);
x1=y(t+7600);
X=fft(x1);
subplot(224); plot(t2*400/256,abs(X(t2)));
xlabel('frequency in Hz'); ylabel('|H|'); axis([0, 200, 0, 150]);
title('Spectrum after filter'); 
set(gca, 'XTickMode', 'manual', 'XTick', [0, 50, 100, 150]); 
set(gca, 'YTickmode', 'manual', 'YTick', [50, 100]); grid


figure(2);
subplot(611);plot(x(t1)); axis([1, 100, -1.5, 1.5]); ylabel('input x');
set(gca, 'YTickmode', 'manual', 'YTick', [-1,-0.5,0, 0.5,1]); grid
subplot(612);plot(y); axis([1, 100, -1.5, 1.5]); ylabel('first');
set(gca, 'YTickmode', 'manual', 'YTick', [-1,-0.5,0,0.5,1]); grid
subplot(613);plot(y); axis([401, 500, -1.5, 1.5]); ylabel('second');
set(gca, 'YTickmode', 'manual', 'YTick', [-1,-0.5,0, 0.5,1]); grid
subplot(614);plot(y); axis([1201, 1300, -1.0, 1.0]); ylabel('forth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(615);plot(y); axis([2000, 2100, -1.0, 1.0]); ylabel('sixth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(616);plot(y); axis([3601, 3700, -1.0, 1.0]); ylabel('tenth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid

figure(3);
subplot(611);plot(y); axis([4401, 4500, -1, 1]); ylabel('twelfth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(612);plot(y); axis([5201, 5300, -1.0, 1.0]); ylabel('fourteenth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(613);plot(y); axis([6001, 6100, -1.0, 1.0]); ylabel('sixteenth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(212);plot(y); axis([7601, 7650, -1.0, 1.0]); ylabel('twentieth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5, 0, 0.5]); grid
  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值