一、实验目的

(1)熟悉IIR数字滤波器的原理与方法;
(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。

二、实验原理与方法

设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。

三、实验内容及步骤

1.调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图3.1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。

2. 要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB。
提示:抑制载波单频调幅信号的数学表示式为

其中,cos(2πfct)称为载波,fc为载波频率,cos(2πf0t)称为单频调制信号,f0为调制正弦波信号频率,且满足fc>f0。由上式可见,所谓抑制载波单频调幅信号,就是2个正弦信号相乘,它有2个频率成分:和频fc+f0和差频fc-f0,这2个频率成分关于载波频率fc对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率fc对称的2根谱线,其中没有载频成分,故取名为抑制载波单频调幅信号。容易看出,图5.1中三路调幅信号的载波频率分别为250Hz、500Hz、1000Hz。如果调制信号m(t)具有带限连续频谱,无直流成分,则s(t)=m(t)cos(2πfct)就是一般的抑制载波调幅信号。其频谱图是关于载波频率fc对称的2个边带(上下边带),在专业课通信原理中称为双边带抑制载波 (DSB-SC) 调幅信号,简称双边带 (DSB) 信号。如果调制信号m(t)有直流成分,则s(t)=m(t)cos(2πfct)就是一般的双边带调幅信号。其频谱图是关于载波频率fc对称的2个边带(上下边带),并包含载频成分。
3. 编程序调用MATLAB滤波器设计函数ellipord和ellip分别设计这三个椭圆滤波器,并绘图显示其幅频响应特性曲线。
4. 调用滤波器实现函数filter,用三个滤波器分别对信号产生函数mstg产生的信号st进行滤波,分离出st中的三路不同载波频率的调幅信号y1(n)、y2(n)和y3(n), 并绘图显示y1(n)、y2(n)和y3(n)的时域波形,观察分离效果。
5. 信号产生函数mstg清单

function st=mstg
%产生信号序列向量st,并显示st的时域波形和频谱
%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600
N=1600   %N为信号st的长度。
Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz,Tp为采样时间
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
fc1=Fs/10;     %第1路调幅信号的载波频率fc1=1000Hz,
fm1=fc1/10;    %第1路调幅信号的调制信号频率fm1=100Hz
fc2=Fs/20;     %第2路调幅信号的载波频率fc2=500Hz
fm2=fc2/10;    %第2路调幅信号的调制信号频率fm2=50Hz
fc3=Fs/40;     %第3路调幅信号的载波频率fc3=250Hz,
fm3=fc3/10;    %第3路调幅信号的调制信号频率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的频谱
%====以下为绘图部分,绘制st的时域波形和幅频特性曲线====================
subplot(3,1,1)
plot(t,st);grid;xlabel('t/s');ylabel('s(t)');
axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形')
subplot(3,1,2)
stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱')
axis([0,Fs/5,0,1.2]);
xlabel('f/Hz');ylabel('幅度')

6.实验程序框图如图3.2所示。

四、思考题

1.请阅读信号产生函数mstg,确定三路调幅信号的载波频率和调制信号频率。
2.信号产生函数mstg中采样点数N=800,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,可否得到6根理想谱线?为什么?N=2000呢?请改变函数mstg中采样点数N的值,观察频谱图验证您的判断是否正确。
【因为信号st是周期序列,谱分析时要求观察时间为整数倍周期。所以,本题的一般解答方法是,先确定信号st的周期,在判断所给采样点数N对应的观察时间Tp=NT是否为st的整数个周期。但信号产生函数mstg产生的信号st共有6个频率成分,求其周期比较麻烦,故采用下面的方法解答。
分析发现,st的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25×400Hz,即在25Hz的正弦波的1个周期中采样400点。所以,当N为400的整数倍时一定为st的整数个周期。因此,采样点数N=800和N=2000时,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,不是400的整数倍,不能得到6根理想谱线。】
3.修改信号产生函数mstg,给每路调幅信号加入载波成分,产生调幅(AM)信号,重复本实验,观察AM信号与抑制载波调幅信号的时域波形及其频谱的差别。
提示:AM信号表示式:

五、滤波器参数及实验程序清单

1、滤波器参数选取
观察图3.1可知,三路调幅信号的载波频率分别为250Hz、500Hz、1000Hz。带宽(也可以由信号产生函数mstg清单看出)分别为50Hz、100Hz、200Hz。所以,分离混合信号st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的指标参数选取如下:

说明:
(1)为了使滤波器阶数尽可能低,每个滤波器的边界频率选择原则是尽量使滤波器过渡带宽尽可能宽。
(2)与信号产生函数mstg相同,采样频率Fs=10kHz。
(3)为了滤波器阶数最低,选用椭圆滤波器。
按照图3.2 所示的程序框图编写的实验程序为exp3.m。

2、实验程序清单

% 实验程序exp3.m
% IIR数字滤波器设计及软件实现
clear all;
close all
Fs=10000;T=1/Fs;   %采样频率
%调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st
st=mstg;%低通滤波器设计与实现
=========================================
fp=280;fs=450;
wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;   %DF指标(低通滤波器的通、阻带边界频)
[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp
[B,A]=ellip(N,rp,rs,wp);      %调用ellip计算椭圆带通DF系统函数系数向量B和A
y1t=filter(B,A,st);           %滤波器软件实现
% 低通滤波器设计与实现绘图部分
figure(2);subplot(3,1,1);
myplot(B,A);  %调用绘图函数myplot绘制损耗函数曲线
yt='y_1(t)';
subplot(3,1,2);tplot(y1t,T,yt); %调用绘图函数tplot绘制滤波器输出波形%带通滤波器设计与实现
===========================================
fpl=440;fpu=560;fsl=275;fsu=900;
wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;
[N,wp]=ellipord(wp,ws,rp,rs);    %调用ellipord计算椭圆DF阶数N和通带截止频率wp
[B,A]=ellip(N,rp,rs,wp); %调用ellip计算椭圆带通DF系统函数系数向量B和A
y2t=filter(B,A,st);     %滤波器软件实现
% 带通滤波器设计与实现绘图部分
figure(3);subplot(3,1,1);
myplot(B,A);  %调用绘图函数myplot绘制损耗函数曲线
yt='y_2(t)';
subplot(3,1,2);tplot(y2t,T,yt);%高通滤波器设计与实现
================================================
fp=890;fs=600;
wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;   %DF指标(高通滤波器的通、阻带边界频)
[N,wp]=ellipord(wp,ws,rp,rs);    %调用ellipord计算椭圆DF阶数N和通带截止频率wp
[B,A]=ellip(N,rp,rs,wp,'high');  %调用ellip计算椭圆带通DF系统函数系数向量B和A
y3t=filter(B,A,st);     %滤波器软件实现
% 高低通滤波器设计与实现绘图部分
figure(4);subplot(3,1,1)
myplot(B,A)  %调用绘图函数myplot绘制损耗函数曲线
y3t=filter(B,A,st);
yt='y_3(t)';
subplot(3,1,2);tplot(y3t,T,yt);
% tplot函数
function tplot(xn,T,yn)
%时域序列连续曲线绘图函数
% xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串)
% T为采样间隔
n=0:length(xn)-1;t=n*T;
plot(t,xn);
xlabel('t/s');ylabel(yn);
axis([0,t(end),min(xn),1.2*max(xn)])
% myplot函数
function myplot(B,A)
%myplot(B,A)
%时域离散系统损耗函数绘图
%B为系统函数分子多项式系数向量
%A为系统函数分母多项式系数向量
[H,W]=freqz(B,A,1000);
m=abs(H);
plot(W/pi,20*log10(m/max(m)));grid on;
xlabel('\omega/\pi');ylabel('幅度(dB)')
axis([0,1,-80,5]);title('损耗函数曲线');

六、实验程序运行结果

程序exp3.m运行结果如图3.2所示。由图可见,三个分离滤波器指标参数选取正确,算耗函数曲线达到所给指标。分离出的三路信号y1(n),y2(n)和y3(n)的波形是抑制载波的单频调幅波。
低通滤波器损耗函数及调幅信号y1(t)

带通滤波器损耗函数及调幅信号y2(t)

高通滤波器损耗函数及调幅信号y3(t)

数字信号处理(DSP)实验——IIR数字滤波器设计与仿真相关推荐

  1. 【数字信号处理2】IIR 滤波器设计

    一.实验目的 1.掌握冲激响应法和双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通.带通和高通IIR数字滤波器的计算机程序: 2.熟悉模拟Butterworth滤波器的设计 ...

  2. 数字信号处理6:IIR滤波器设计

    IIR滤波器设计 文章目录 IIR滤波器设计 1. 简介 2. 设计步骤简明 3. 拉普拉斯变换和Z变换 3.1 拉普拉斯变换 3.2 Z变换 4. 双线性变换法 4.1 模拟域与数字域的映射 4.2 ...

  3. iir matlab 带通,基于Matlab的带通IIR数字滤波器设计与仿真

    1引言数字滤波技术是数字信号分析.处理技术的重要分支[1].无论是信号的获取.传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的.在所有的电子系统和各类控制系统中 ...

  4. IIR数字滤波器设计(数字信号处理)

    ~~ 如果有什么问题可以在我的个人博客留言 ,我会及时回复.欢迎来访交流 ~~ IIR数字滤波器设计(数字信号处理) 一.实验目的 1.熟悉双线性变换法设计IIR数字滤波器的原理与方法. 2.掌握II ...

  5. 数字信号处理第四次试验:IIR数字滤波器设计及软件实现

    数字信号处理第四次试验:IIR数字滤波器设计及软件实现 前言 一.实验目的 二.实验原理与方法 三.实验环境 四.实验内容及步骤 五.实验结果截图(含分析) 六.思考题 前言 为了帮助同学们完成痛苦的 ...

  6. 基于MATLAB的数字信号处理(4) IIR数字滤波器设计及软件实现

    文章目录 一.实验目的 二.实验原理 三.设计IIR数字滤波器 一.实验目的 熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法 学会调用 MATLAB 信号处理工具箱中滤波器设计函数(或滤波器设 ...

  7. matlab 冲激响应不变法,matlab实验七 冲激响应不变法IIR数字滤波器设计

    (数字信号处理)实验报告 实验名称 实验七 冲激响应不变法IIR 数字滤波器设计 实验时间 年 月 日 专业班级 学 号 姓 名 成 绩 教师评语: 一.实验目的 1.掌握构成一个频率响应与给定的滤波 ...

  8. matlab 冲激响应不变法,matlab实验七冲激响应不变法IIR数字滤波器设计.doc

    (数字信号处理)实验报告 实验名称 实验七 冲激响应不变法IIR数字滤波器设计 实验时间 年 月 日 专业班级 学 号 姓 名 成 绩 教师评语: 一.实验目的 1.掌握构成一个频率响应与给定的滤波特 ...

  9. matlab冲激响应不变发,matlab实验七冲激响应不变法IIR数字滤波器设计

    matlab实验七冲激响应不变法IIR数字滤波器设计 (数字信号处理)实验报告实验名称 实验七 冲激响应不变法IIR数字滤波器设计 实验时间 年 月 日专业班级 学 号 姓 名 成 绩 教师评语: 一 ...

  10. 实验一熟悉matlab环境,数字信号处理报告实验一:熟悉MATLAB环境.doc

    数字信号处理报告实验一:熟悉MATLAB环境.doc 实验一熟悉MATLAB环境一 实验目的1. 熟悉MATLAB的主要操作命令.2. 学会简单的矩阵输入和数据读写.3. 掌握简单的绘图命令.4. 用 ...

最新文章

  1. vim 打开Linux下文件每一行后面都有^M的样式
  2. 学计算机专业需要考的证有哪些科目,自考计算机专业的考试科目有哪些?
  3. Linux基础:Shell脚本学习
  4. 微信小程序页面文字超出一行隐藏,文字超出两行隐藏。
  5. HDOJ杭电2044
  6. 【工具相关】web-HTML/CSS/JS Prettify的使用
  7. [TimLinux] scrapy 在Windows平台的安装
  8. 刷题总结——蜥蜴(ssoj网络流)
  9. 九江职业技术学院工业机器人_黑龙江农业工程职业学院学子喜获工业机器人大赛一等奖...
  10. LCD驱动程序详细讲解(三)
  11. 风云再续:他抖任他抖,IO诊断在我手
  12. 平衡二叉树例题_平衡二叉树专题
  13. STVP烧录出现Verify failed at address 0x1000
  14. 信息安全技术 实验四 木马及远程控制技术
  15. 学籍管理系统 正式运行
  16. 调度器锁rt_enter_critical() rt_exit_critical()
  17. 蓝屏代码:DRIVR_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
  18. 大数据下的精准营销模式
  19. proxmox 硬盘挂载
  20. 【VM服务管家】VM4.x算子SDK开发_3.4 控件嵌入类

热门文章

  1. 荔枝派通过usb烧录时出现ERROR: Allwinner USB FEL device not found!
  2. 【算法设计与分析】专栏目录
  3. 一篇文章讲清python开发必懂的8种数据结构
  4. 如何制作媲美memz的炫酷特效恶搞程序
  5. [渝粤教育] 南京师范大学 会计学基础 参考 资料
  6. idea主题下载导入工具
  7. vmware虚拟机连接网络
  8. CAD手机精准看图隐私政策
  9. linux声道切换,linux下怎么把数据分别给左右声道
  10. AppUI自动化中的图像识别的使用