服务热线:

15655165750

专业专注 一站式电子元器件

从事电子元器件行业十余年,变压器等产品我们更专业!

新闻资讯
新闻资讯
联系我们

联系人: 邓经理

手机: 15655165750

电话: 15655165750

邮箱: 2479058516@qq.com

地址: 安徽省合肥市高新区柏堰科技园众望分园E13号301-401室

行业知识

IIR数字滤波器的设计

作者:点击:350 发布时间:2022-12-13

一、实验目的

1、掌握IIR数字滤波器的设计原理和方法;

掌握掌握和理解FFT傅里叶快速变换的用法

3、掌握设计IIR数字滤波器的冲激响应不变;

4、掌握IIR实现数字滤波器软件的方法。

二、实验内容

2.数字滤波器的设计基于以下指标:通带要求ωp≤0.2π允许的范围误差小于1dB,在阻带ωs≥0.3π内部,衰减应大于15dB;通带幅度归一化,使其在ω=0处为0 dB。

2.2 巴特沃斯是基于冲击响应不变法设计的IIR画出其幅频特性和相频特性的数字滤波器;

2.3 验证设计的巴特沃斯滤波器的功能,并分析实验结果

三、实验步骤和过程

3.巴特沃斯利用冲激响应不变法设计IIR低通数字滤波器

首先由书上P设计307页的指标是:

要求在通带ωp≤0.2π允许的范围误差小于1dB,在阻带ωs≥0.3π内部,衰减应大于15dB;通带幅度归一化,使其在ω=0处为0 dB。

由于设计的Wp=0.2pi,Ws=0.3pi,设计的Fs=800Hz,所以设计的Ts=0.00125s,T=0.08s;由于Wp=0.2pi,通带频率Fp=80Hz,Ws=0.3pi,获取阻带截止频率Fs=120Hz,最大通带衰减为1dB,最小阻带衰减为15dB(大于15dB)

利用MATLAB的fdatool设计巴特沃斯的工具箱IIR滤波器:

巴特沃斯IIR低通滤波器的设计:首先设计Ts=0.00125s,T=0.08s;由于Wp=0.2pi,求到Fp=80Hz,Ws=0.3pi,求到Fs=120Hz,通带衰减为1dB,阻带衰减为15dB。

巴特沃斯IIR数字滤波器的容查图

滤波器的振幅频特性如下:

相频特性如下:

3.巴特沃斯是通过计算机编程设计的IIR低通滤波器

3.2.1冲激响应不变设计:

滤波器的振幅和相频特性是

3.2.双线性变换设计:

滤波器的振幅和相频特性是

3.3巴特沃斯IIR滤波器验证:

首先设计的Ts=0.00125s,T=0.08s;由于Wp=0.2pi,求到Fp=80Hz,Ws=0.3pi,求到Fs=120Hz,通带衰减为1dB,阻带衰减为15dB。

3.3.首先从50开始设计一个信号Hz到250Hz叠加信号,信号从0-80开始ms每隔Ts=0.00125s离散采集:

Fs=800; % 采样频率800Hz

t=0:1/Fs:0.08;%将0.08s按采样时间Ts分成 ** 份

s50=sin(2*50*pi*t); % 产生50Hz正弦波

s100=1.5*sin(2*100*pi*t); % 产生100Hz正弦波

s200=2.5*cos(2*200*pi*t);%产生200Hz的正弦波

s250=2.5*cos(2*250*pi*t);%产生250Hz的正弦波

s=s50 s100 s200 s250; % 信号叠加

3.3.二是叠加离散信号FFT频谱分析

当N= ** 时,FFT频谱为:

当N=128时,FFT频谱为:

当N=256时,FFT频谱为:

当N=256时,FFT频谱为:

取N= ** 后的FFT后续分析频谱

3.3.信号s通过巴特沃斯通过IIR滤波器滤波后:

50Hz的信号和FFT频谱为:

100Hz的信号和FFT频谱为:

200Hz的信号和FFT频谱为:

250Hz的信号和FFT频谱为:

3.3.对滤波前后的频谱图形进行对比分析:

可分析,50Hz和100Hz信号未过滤,但250Hz和200Hz由于阻带截止频率为Fs=120Hz,所以50Hz与100Hz信号保留,2000Hz和250Hz过滤掉信号。

四、实验结论

通过滤波器的验证可以得出结论,设计IIR数字滤波器50Hz和100Hz信号未过滤,但250Hz和200Hz由于阻带截止频率为Fs=120Hz,所以50Hz与100Hz信号保留,2000Hz和250Hz过滤掉信号。

五、实验经验

本实验基本应不变法和双线性变换法,本实验基本达到了实验目的IIR数字滤波器验证了设计的滤波器的实际功能。通过分析,双线性变换法的振幅频率特性与冲击响应不变法基本相同,相频特性略有不同。双线性变换法不会产生频谱混合叠加,滤波器更稳定。在过滤器验证过程中,信号叠加并使用N= ** 点的FFT通过使用巴特沃斯设计的频谱进行分析IIR低通滤波器可以发现S信号通过巴特沃斯IIR低通滤波器保留低频信号,高频信号过滤,符合滤波器的功能,验证了设计滤波器的正确性和可用性。通过这次实验,我深得自己缺乏知识,希望以后能更好的利用频谱分析工具进行以后的学习和分析。本实验加强了对频谱的理解,提高了自身MATLAB实际水平。

五、附录代码:

5.巴特沃斯IIR数字滤波器设计代码:

T=2;

fs=1/T; 采样频率%为采样周期倒数

Wp=0.2.*pi;

Ws=0.3.*pi; %设计归一化通带阻带截止频率

Ap=1;

As=15; %设置通带最大最小衰减

[N,Wc]=buttord(Wp,Ws,Ap,As,'s'); %调用butter 确定巴特沃斯滤波器阶数

[B,A]=butter(N,Wc,'s'); %调用butter 巴特沃斯滤波器函数设计

W=linspace(0,pi,400*pi); %指定频率值

[D,C]=impinvar(B,A,fs); %调用冲击响应不变法

Hz=freqz(D,C,W); %·返回频率值

plot(W/pi,abs(Hz)/abs(Hz(1))); 巴特沃斯数字低通滤波器的幅频率为%

grid on;

title(' 巴特沃斯低通数字滤波器');

xlabel('Frequency/Hz'); ylabel('Magnitude');

5.巴特沃斯IIR数字滤波器代码:

wp=0.2*pi; %通带边界频率

ws=0.3*pi; %阻带截止频率

Wp=1; %通带最大衰减

Ws=15; %阻带最小衰减

fs=1; %采样频率

ts=1/fs; %采样周期

wp2=2*fs*tan(wp/2*ts); %预畸变校正

ws2=2*fs*tan(ws/2*ts); %预畸变校正

[n,wn]=buttord(wp2,ws2,Wp,Ws, 's' ) 将预畸变后获得的归一化模拟频率参数带入%

[z,p,k]=buttap(n) %创建归一化BUTTERWORTH模拟低通原型滤波器

[bap,aap]=zp2tf(z,p,k) 将滤波器零极点模型转化为传递函数模型

[b,a]=lp2lp(bap,aap,wn) 将模拟滤波器原型转换为截止频率%Wn模拟低通滤波器

[bz,az]=bilinear(b,a,fs); 从模拟滤波器到数字滤波器的转换%采用双线性转换法实现

[h,w]=freqz(bz,az); %绘制频率响应曲线

subplot(2,1,1);

plot(w/pi,abs(h));

grid on

xlabel( ' 频率' );

ylabel( ' 幅度' );

subplot(2,1,2);

plot(w/pi,20*log10(abs(h)));

grid on

xlabel( ' 频率' );

ylabel( ' 幅度' );

5.3数字滤波器验证MATLAB代码:

 IIR滤波器设计

目的:设计8000个采样频率Hz、截止频率为80Hz、阻带截止频率为120Hz低通滤波器要求通带最大衰减为1dB,阻带最小衰减为15dB。

1. 产生信号(50频率)Hz-250Hz正弦波叠加)

Fs=800; % 采样频率800Hz

t=0:1/Fs:0.08;

s50=sin(2*50*pi*t); % 产生50Hz正弦波

s100=1.5*sin(2*100*pi*t); % 产生100Hz正弦波

s200=2.5*cos(2*200*pi*t);%产生200Hz的正弦波

s250=2.5*cos(2*250*pi*t);%产生250Hz的正弦波

s=s50 s100 s200 s250; % 信号叠加

figure(1); % 画图

subplot(2,1,1);stem(s);grid;

title('原始信号');

2. FFT分析信号频谱

len =  ** ;

y=fft(s,len); % 对信号做len点FFT变换

f=Fs*(0:len/2 - 1)/len;

subplot(2,1,2);stem(f,abs(y(1:len/2)));grid;

title('原始信号频谱;')

xlabel('Hz');ylabel('幅值');

3. IIR滤波器设计

N=0; % 阶数

Fp=80; % 截止频率为80Hz

Fc=120; % 阻带截止频率120Hz

Wp=1; % 通带波纹最大衰减为1dB

Ws=15; % 阻带衰减为15dB

3.0 计算最小滤波器阶数

na=sqrt(10^(0.1*Wp)-1);

ea=sqrt(10^(0.1*Ws)-1);

N=ceil(log10(ea/na)/log10(Fc/Fp));

 3.1 巴特沃斯滤波器

Wn=Fp*2/Fs;

[Bb Ba]=butter(N,Wn,'low'); % 调用MATLAB butter滤波器快速设计函数

[BH,BW]=freqz(Bb,Ba); % 绘制频率响应曲线

Bf=filter(Bb,Ba,s); % 低通滤波

By=fft(Bf,len); % 对信号f1做len点FFT变换

figure(2); % 画图

subplot(2,1,1);plot(t,s250,'blue',t,Bf,'red');grid;

legend('250Hz原始信号','巴特沃斯滤波器滤波后');

subplot(2,1,2);stem(f,abs(By(1:len/2)));grid;

title(&#39.巴特沃斯低通滤波后的信号频谱');

xlabel('Hz');ylabel('幅值');

5.4滤波器结构设计代码:

function [ A ] = IIRDF(A,N)

%UNTITLED8 Sum ** ry of this function goes here

% Detailed explanation goes here

x=[0 0 0];y1=[0 0 0];y2=[0 0 0];y=[0 0 0];

for n=1:N

x(1)=A(n);

y1(1)=1.31432*y1(2)-0.71489*y1(3) 0.08338*x(1) 0.16676*x(2) 0.08338*x(3);

x(3)=x(2);

x(2)=x(1);

y2(1)=1.0541*y2(2)-0.37534*y2(3) 0.08388*y1(1) 0.16676*y1(2) 0.08338*y1(3);

y1(3)=y1(2);

y1(2)=y1(1);

y(1)=0.94592*y(2)-0.23422*y(3) 0.08388*y2(1) 0.16676*y2(2) 0.08338*y2(3);

y2(3)=y2(2);

y2(2)=y2(1);

y(3)=y(2);

y(2)=y(1);

A(n)=y(1);

end

end

5.5.验证前后对比分析代码:

f=50;

T0=1/f;

Ts=0.00125;

N=0.08/Ts;

for n=0:N-1

SS(n 1)=sin(2*pi*f*n*Ts) 1.5*sin(2*pi*2*f*n*Ts)+2.5*cos(2*pi*4*f*n*Ts)+2.5*cos(2*pi*5*f*n*Ts);

end

subplot(2,2,1);

t=0:Ts:(N-1)*Ts;

stem(t,SS)

xlabel('t/s');

ylabel('x(t)/A');

title('滤波前时域波形');

grid on

yy=fft(SS);

deltaf=1/(N*Ts);

yy=yy./N;

subplot(2,2,2);

f=0:deltaf:N/2*deltaf;

stem(f,abs(yy(1:N/2+1)))

title('滤波前幅频特性');

grid on

A=IIRDF(SS,length(SS));

subplot(2,2,3);

t=0:Ts:(N-1)*Ts;

stem(t,A)

xlabel('t/s');

ylabel('x(t)/A');

title('滤波后时域特性');

grid on

zz=fft(A);

deltaf=1/(N*Ts);

zz=zz./N;

subplot(2,2,4);

f=0:deltaf:N/2*deltaf;

stem(f,abs(zz(1:N/2+1)))

title('滤波后频域特性');



相关标签:
推荐新闻
推荐产品
在线客服
联系方式

热线电话

15655165750

上班时间

周一到周五

公司电话

15655165750

二维码
线
亿鸽在线客服系统