IIR数字滤波器设计(数字信号处理)
~~ 如果有什么问题可以在我的个人博客留言 ,我会及时回复。欢迎来访交流 ~~
IIR数字滤波器设计(数字信号处理)
一、实验目的
1.熟悉双线性变换法设计IIR数字滤波器的原理与方法。
2.掌握IIR数字滤波器的MATLAB实现方法,会调用ellipord()和ellip()
函数设计各种滤波器。
3.观察分析滤波器输入输出数据波形,理解数字滤波的概念。
二、实验原理及步骤
(一)实验原理-双线性变换法
数字滤波器是对数字信号实现滤波的线性时不变系统。数字滤波实质上是一种运算过程,实现对信号的运算处理。输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。时域离散系统的频域特性:
其中、 分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性),是数字滤波器的单位取样响应的频谱,又称为数字滤经过滤波后的频域响应。只要按照输入信号频谱的特点和处理信号的目的,适当选择,使得滤波后满足设计的要求,这就是数字滤波器的滤波原理。
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。IIR 数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型来实现,其差分方程为:
系统函数为:
设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。
基本设计过程如下:
1.将给定的数字滤波器指标转换成模拟滤波器的指标。
2.设计模拟滤波器。
3.将模拟滤波器转换成数字滤波器系统函数。
(二)实验步骤
1.在完成滤波器设计之后,采用filter()对输入信号进行滤波处理。调用信号产生函数mstg产生由抑制载波调制信号相加构成的复合信号st,该函数还会自动绘图显示其时域波形和幅频特性曲线,如下图1所示。
由图1中(a)和(b)可见,三路信号时域混叠无法在时域分离,但在频域是可以分离的,可以通过滤波的方法进行分离,即通过设计IIR滤波器,分离这三个不同频率的信号。
2.要求将三路信号进行分离,通过观察st信号的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB。
3.调用ellipord()和ellip()分别设计这三个椭圆滤波器,并绘图显示其损耗函数曲线分别如图2,图3,图4。
图2 低通损耗函数曲线
4.调用filter(),用三个滤波器分别对信号产生函数mstg产生的信号进行滤波,分离出st中的不同载波频率信号,并绘图显示三个信号的时域波形,分别如图5,图6,图7。
三、实验结果分析
(一)函数mstg
阅读信号产生函数mstg,确定三路调幅信号的载波频率和调制信号频率。第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz。第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz。第3路调幅信号的载波频率fc2=250Hz,调制信号频率fm2=25Hz。
- 采样点数对频谱图的影响
1.调幅信号
当N=800,1600,1800,2000时,调幅信号产生的频谱图如图8,9,10,11所示。
图8 N=800时s(t)的波形及频谱图
分析:因为信号s(t)是周期序列,频谱分析时要求观察时间为整数倍周期。s(t)的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25*400Hz,即在25Hz的正弦波的一个周期中采样400个点。所以,当N为400的整数倍时一定为s(t)的整数倍周期。因此,采样点数N=800,1600,2000时,对s(t)进行N点FFT可以得6根理想谱线,而当N=1800时,不是400的整数倍,则不能得到。
2.AM调幅信号
当N=800,1600,1800,2000时产生的频谱图如图12,13,14,15所示。
分析:因为信号s(t)时周期序列,频谱分析时要求观察时间为整数倍周期。因此,采样点数N=800,1600,2000时,对s(t)进行N点FFT可以得理想谱线,而当N=1800时,不是400的整数倍,则不能得到。当将该调幅信号修改为AM信号后,s(t)的频谱中有较大的频谱分量。如图所示。
- IIR滤波器
- 滤波器参数选取
由(一)可知,三路调幅信号的载波频率分别为250Hz,500Hz,1000Hz。带宽为50Hz,100Hz,200Hz。所以分离混合信号st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的指标参数选取如下:
对载波频率为250Hz的调幅信号,用低通滤波器分离,其通带截止频率fp=280Hz,通带最大衰减ap=0.1dB,阻带截止频率为fs=450Hz,阻带最小衰减as=60dB。对载波频率为500Hz的调幅信号,用低通滤波器分离,其通带截止频率fpl=440Hz、fph=560Hz,通带最大衰减ap=0.1dB,阻带截止频率为fsl=275Hz、fsh=900Hz阻带最小衰减as=60dB。对载波频率为1000Hz的调幅信号,用低通滤波器分离,其通带截止频率fp=890Hz,通带最大衰减ap=0.1dB,阻带截止频率为fs=600Hz,阻带最小衰减as=60dB。
IIR.m
function main
st=mstg; %调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号s
Fs=10000; T=1/Fs; %采样频率
fp=280; fs=450;wp=2*fp/Fs;ws=2*fs/Fs; %低通name='y_1(t)';LHL_filter(wp,ws,name,st,T,'low');
fp_L=440; fp_R=560;fs_L=275; fs_R=900;%带通wp=[2*fp_L/Fs,2*fp_R/Fs];ws=[2*fs_L/Fs,2*fs_R/Fs];name='y_2(t)'; LHL_filter(wp,ws,name,st,T,'bandpass');
fp=890; fs=600;wp=2*fp/Fs;ws=2*fs/Fs; %高通name='y_3(t)';LHL_filter(wp,ws,name,st,T,'high');
end
function LHL_filter(wp,ws,name,st,T,flag)
rp=0.1;rs=60; %DF指标(低通滤波器的通、阻带边界频)
[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp?
[B,A]=ellip(N,rp,rs,wp,flag); %调用ellip计算椭圆带通DF系统函数系数向量B和A
yt=filter(B,A,st); %滤波器软件实现figure; freqz(B,A);%B,A分别为系统函数分子,分母多项式系数向量?figure;tplot(st,yt,T,name);
end
function tplot(st,xn,T,name)
%时域序列连续曲线绘图函数?
%?xn:信号数据序列,%?T为采样间隔
N=length(xn);n=0:N-1; t=n*T; Tp=N*T; f=n/Tp;
subplot(311);plot(t,xn);xlabel('t/s');ylabel(name);
axis([0,t(end),min(xn),1.2*max(xn)]);
subplot(312);stem(f,abs(fftshift(fft(st,N))));
title('原 st(t)的频谱');xlabel('f/Hz');ylabel('幅度');
subplot(313);stem(f,abs(fftshift(fft(xn,N))));
title('滤波后xn(t)的频谱');xlabel('f/Hz');ylabel('幅度');
end
function st=mstg
%产生信号序列向量st,并显示st的时域波形和频谱
%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600
N=1600;Fs=10000;T=1/Fs;Tp=N*T; % N为信号st的长度。采样频率Fs=10kHz,Tp为采样时间
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
fc1=Fs/10;fm1=fc1/10;%第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz
fc2=Fs/20;fm2=fc2/10;%第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz
fc3=Fs/40;fm3=fc3/10;%第3路调幅信号的载波频率fc3=250Hz,调制信号频率fm3=25Hz
xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号
xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号
xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号
st=xt1+xt2+xt3; %三路调幅信号相加
fxt=fft(st,N); %计算信号st的频谱
subplot(211);plot(t,st);xlabel('t/s');ylabel('s(t)');
axis([0,Tp/2,min(st),max(st)]);title('(a) s(t)的波形');
subplot(212);stem(f,abs(fxt)./max(abs(fxt)));
title('(频谱');xlabel('f/Hz');ylabel('幅度');
end
mstg.m
function st=mstg
%产生信号序列向量st,并显示st的时域波形和频谱
%st=mstg; 返回三路调幅信号相加形成的混合信号,长度N=1600
N=2000;Fs=10000;T=1/Fs;Tp=N*T; % N为信号st的长度。采样频率Fs=10kHz,Tp为采样时间
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
fc1=Fs/10;fm1=fc1/10;%第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz
fc2=Fs/20;fm2=fc2/10;%第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz
fc3=Fs/40;fm3=fc3/10;%第3路调幅信号的载波频率fc3=250Hz,调制信号频率fm3=25Hz
xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号
xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号
xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号
st=xt1+xt2+xt3; %三路调幅信号相加
fxt=fft(st,N); %计算信号st的频谱
subplot(2,1,1);plot(t,st);xlabel('t/s');ylabel('s(t)');
title(['N=',num2str(N),'s(t)的波形']);axis([0,Tp/8,min(st),max(st)]);
subplot(2,1,2);stem(f,abs(fxt)/max(abs(fxt)));
title(['N=',num2str(N),'s(t)的频谱']);xlabel('f/Hz');ylabel('幅度');axis([0,Fs/5,0,1.2]);
end
AM_mstg.m
function AM_mstg
N=2000; Fs=10000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
fc1=Fs/10;fm1=fc1/10;%第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz
fc2=Fs/20;fm2=fc2/10;%第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz
fc3=Fs/40;fm3=fc3/10;%第3路调幅信号的载波频率fc3=250Hz,调制信号频率fm3=25Hz
xt1=[1+cos(2*pi*fm1*t)].*cos(2*pi*fc1*t);
xt2=[1+cos(2*pi*fm2*t)].*cos(2*pi*fc2*t);
xt3=[1+cos(2*pi*fm3*t)].*cos(2*pi*fc3*t);
st=xt1+xt2+xt3;fxt=fft(st,N);
subplot(211);plot(t,st);xlabel('t/s');ylabel('s(t)');
axis([0,Tp/8,min(st),max(st)]);title(['N=',num2str(N),' AM s(t)波形图'])
subplot(212);stem(f,abs(fxt)/max(abs(fxt)));title(['N= ',num2str(N),'频谱图'])
axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度');
end
资源点击下载
IIR数字滤波器设计(数字信号处理)相关推荐
- matlab冲激响应不变发,matlab实验七冲激响应不变法IIR数字滤波器设计
matlab实验七冲激响应不变法IIR数字滤波器设计 (数字信号处理)实验报告实验名称 实验七 冲激响应不变法IIR数字滤波器设计 实验时间 年 月 日专业班级 学 号 姓 名 成 绩 教师评语: 一 ...
- 数字信号处理第四次试验:IIR数字滤波器设计及软件实现
数字信号处理第四次试验:IIR数字滤波器设计及软件实现 前言 一.实验目的 二.实验原理与方法 三.实验环境 四.实验内容及步骤 五.实验结果截图(含分析) 六.思考题 前言 为了帮助同学们完成痛苦的 ...
- 基于MATLAB的数字信号处理(4) IIR数字滤波器设计及软件实现
文章目录 一.实验目的 二.实验原理 三.设计IIR数字滤波器 一.实验目的 熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法 学会调用 MATLAB 信号处理工具箱中滤波器设计函数(或滤波器设 ...
- matlab 冲激响应不变法,matlab实验七 冲激响应不变法IIR数字滤波器设计
(数字信号处理)实验报告 实验名称 实验七 冲激响应不变法IIR 数字滤波器设计 实验时间 年 月 日 专业班级 学 号 姓 名 成 绩 教师评语: 一.实验目的 1.掌握构成一个频率响应与给定的滤波 ...
- matlab 冲激响应不变法,matlab实验七冲激响应不变法IIR数字滤波器设计.doc
(数字信号处理)实验报告 实验名称 实验七 冲激响应不变法IIR数字滤波器设计 实验时间 年 月 日 专业班级 学 号 姓 名 成 绩 教师评语: 一.实验目的 1.掌握构成一个频率响应与给定的滤波特 ...
- matlab的数字滤波器,基于Matlab的IIR数字滤波器设计方法比较及应用
0 引言 数字滤波器(Digital Filter)是指输入.输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件.数字滤波器在数字信号处理中起着非常重要 ...
- IIR数字滤波器设计---双线性变换法
实验目的 本实验结合理论教材IIR数字滤波器设计中有关模拟滤波器的数字化的教学内容, 学习和学握将IIR模拟滤波器变换成IIR数字滤波器的基本原理和实现步骤, 学习MATLAB中将模拟滤波器数字化设计 ...
- iir数字滤波器设计及matlab实现,iir数字滤波器设计及其matlab实现
iir数字滤波器设计及其matlab实现 1IIR 数字滤波器设计及其 MATLAB 实现自动化学院 杨梅 201422070125摘 要IIR 数 字 滤 波 器 在 设 计 上 可 以 借 助 成 ...
- 【二代示波器教程】第10章 示波器设计—数字信号处理
完整教程下载地址:https://www.armbbs.cn/forum.php?mod=viewthread&tid=45785 第10章 示波器设计-数字信号处理 本章节为大家讲 ...
最新文章
- api 定位 微信小程序 精度_微信小程序城市定位(借助百度地图API判断城市)
- 【算法】一个简单的K近邻(KNN)原理
- tensorflow随笔-变量
- 紫东太初:自动化所开源图-文-音三模态的预训练大模型
- GitHub 上值得前端学习的数据结构与算法项目
- 《操作系统》库函数与系统调用的区别和联系?
- [省选联考 2020 A/B 卷] 冰火战士(树状数组上二分)
- 10-C++远征之模板篇-学习笔记
- CKEditor配合CKFinder的使用
- java语言用数组接收字符_Java基础——数组应用之字符串String类
- python 训练好的模型怎么保存_MNIST数据集训练完如何保存成模型文件?
- 第二章计算机组成原理例题,计算机组成原理习题第二章运算方法和运算器
- Atitit React的相关概念东东 attilax总结 v3
- 2、使用Keras构建回归模型
- java毕业设计开题报告论文基于JavaWeb项目实现的高校学生在线选课系统
- EHS法律法规的收集渠道
- 把一个代表DateTime带有T和Z的string转化成DateTime c#
- 用C语言实现:输入某年某月某日,判断这一天是这一年的第几天
- Wireless Communications - 2.4 Ray Tracing
- 字体粗细怎么设置 html,html中字体的粗细怎么设置?字体大小是font-size,那粗细怎么设置的?...
热门文章
- 自定义View——幸运转盘
- php 获取微博cookie,如何获取微博 Cookie
- 常用DC-DC;AC-DC电源芯片
- 命令行 查看自己的系统版本
- 自然语言处理NLP 2022年最新综述:An introduction to Deep Learning in Natural Language Processing
- java.sql.SQLException: Illegal conversion 非法转化
- Excel全部或部分字体加粗方法
- 【PyG】与networkx的图转换
- 计算机辅助分析 论文,计算机辅助设计论文要求分析.doc
- Oracle 常用的V$ 视图脚本