数字信号处理试验内容指导书.docx
《数字信号处理试验内容指导书.docx》由会员分享,可在线阅读,更多相关《数字信号处理试验内容指导书.docx(28页珍藏版)》请在冰点文库上搜索。
数字信号处理试验内容指导书
数字信号处理
实验报告
专业:
测控技术与仪器
班级:
测控0802班
姓名:
张述玉
学号:
0812105665
序号:
20
实验一用递推法解差分方程以及用线性卷积法求线性时不变系统的输出
一实验目的
1学习用递推法求解差分方程的方法。
2学习用线性卷积法求网络输出的方法。
二实验原理
一般网络或系统用线性常系数差分方程描述,如果已知差分方程和输入信号,用递推法求解差分方程或者求网络输出,最适合用计算机求解。
但要注意N阶差分方程要预先给定N个初始条件。
下面用例子说明用递推法求解差分方程的方框图。
例如一个二阶差分方程如下:
式中,系数a1、a2、b0、b1为已知系数,x(n)是输入序列。
设x(n)是因果序列,x(n-1)=0,从n=0开始递推。
当n=0时,
式中,y(-1)和y(-2)是两个初始条件,要预先给定。
这样求解网络输出的计算框图如图所示。
图中,N表示递推了N步,即y(n)的长度。
如果用差分方程求系统的单位脉冲响应h(n),也可以用上面的计算框图。
因为h(n)是系统输入δ(n)时的零状态响应,因此计算框图中全部的初始条件为0,且x(n)=δ(n)。
这样递推得到的y(n)=h(n)。
已知h(n)和输入x(n),求系统输出y(n),可以用线性卷积法进行。
线性卷积的公式如下:
计算时,关键问题是根据x(n)h(n)的特点,
确定求和的上下限。
例如,h(n)=0.9nu(n),x(n)=R10(n),
卷积公式为
根据上式中的R10(n),限制非零区间为:
0≤m≤9,由u(n)限制非零区间为m≤n。
由上面的不等式知道m的取值与n有关,可以分几种情况:
当n<0时,y(n)=0
当0≤n<9时,
当n≥9时,
最后得到:
按照上式用计算机计算y(n)。
更方便的是用MATLAB语言的数字信号工具箱函数conv计算两个从零开始的有限长序列的线性卷积。
如果给定的x(n)和h(n)是一些离散数据,更适合用该语言进行计算。
三实验用MATLAB函数介绍
1conv
功能:
计算离散卷积、多项式相乘。
调用格式:
yn=conv(hn,xn)
计算向量hn和xn的卷积,卷积结果向量为yn。
如果用N和M分别表示hn和xn的长度,则yn的长度为N+M-1。
如果hn和xn表示两个多项式的系数向量,则yn为两个多项式乘积的系数向量。
例如,程序:
Hn=[1,1,1,1];xn=[1,1,1,1];yn=conv(hn,xn);
运行结果为:
yn=[1234321]
2Impz
功能:
计算数字滤波器的单位脉冲响应。
调用格式:
[hn,n]=impz(B,A):
计算出单位脉冲响应列向量hn,并返回时间列向量n。
自动选择hn的样点数。
调用参数B和A分别为数字滤波器系数函数H(z)的分子和分母多项式系数向量。
[hn,n]=impz(B,A,N):
计算出单位脉冲响应N个样值。
如果N是一个整数向量,则仅计算出这些整数点的单位脉冲响应样值。
如果调用时无输出参数,则完成相应的计算功能,并自动调用stem(n,hn)绘图。
其他调用格式用help命令查看。
例如,本实验中,系统的差分方程y1(n)=0.9y1(n-1)+x(n)对应得系统函数为
计算出单位脉冲响应50个样值,并给出绘图的程序如下:
B=1;A=[1,-0.9];impz(B,A,50);运行结果如图10.1.2所示。
图10.1.2
四实验内容
1已知系统得差分方程如下式:
y1(n)=0.9y1(n-1)+x(n)
(1)输入信号x(n)=R10(n),初始条件y1(-1)=1,试用递推法求解输出y1(n);
(1)a=0.9;ys=1;
xn=[1,1,1,1,1,1,1,1,1,1];
B=1;A=[1,-a];
xi=filtic(B,A,ys)
yn=filter(B,A,xn,xi);
n=0:
length(yn)-1;
subplot(3,2,1);stem(n,yn,'.');
title('(a)';xlabel('n');ylabel('y(n)')
(2)输入信号x(n)=R10(n),初始条件y1(-1)=0,试用递推法求解输出y1(n)。
(2)a=0.9;ys=0;
xn=[1,1,1,1,1,1,1,1,1,1];
B=1;A=[1,-a];
xi=filtic(B,A,ys);
yn=filter(B,A,xn,xi);
n=0:
length(yn)-1;
subplot(3,2,1);stem(n,yn,'.');
title('(a)';xlabel('n');ylabel('y(n)')
2已知系统差分方程为
y1(n)=0.9y1(n-1)+x(n)
用递推法求解系统的单位脉冲响应h(n),要求写出h(n)的封闭公式,并打印h(n)~n曲线。
2、B=1;A=[1,-0.9];impz(B,A,50);
3已知系统的单位脉冲响应h(n)=0.9nu(n),输入信号x(n)=R10(n),试用卷积法求解系统输出y(n),并打印y(n)~n曲线。
3、n=0:
9;
hn=0.9.^n
xn=[1111111111];
yn=conv(hn,xn);
k0=hn
(1)+xn
(1);
k1=length(hn)+length(xn)-2;
n=k0:
k0+k1;
stem(n,yn)
五实验报告要求
1对实验内容进行理论分析,求出前三部分的理论推导结果。
2对实验结果进行理论分析,并与理论结果进行对比
实验二信号与系统的傅立叶分析
一实验目的
用傅立叶变换对信号和系统进行频域分析。
二实验原理
对信号进行频域分析就是对信号进行傅立叶变换。
对系统进行频域分析即对它的单位脉冲响应进行傅立叶变换,得到系统的传输函数。
也可以由差分方程经过傅立叶变换直接求它的传递函数。
传递函数代表的就是系数的频率响应特性。
但传输函数是ω的连续函数,计算机只能计算出有限个离散频率点的传输函数值,因此得到传输函数以后,应该在0~2π之间取许多点,计算这些点的传输函数值,并取它们的包络,该包络才是需要的频率特性。
当然,点数取得多一些,该包络才能接近真正的频率特性。
注意:
非周期信号的频率特性是ω的连续函数,而周期信号的频率特性是离散谱,它们的计算公式不一样,相应的波形也不一样。
三实验内容
1已知系统用下面差分方程描述:
y(n)=x(n)+ay(n-1)
试在a=0.95和a=-0.5两种情况下用傅立叶变换分析系统的频率特性。
要求写出系统的传输函数,并打印|H(ejω)|~ω曲线。
(1)、当a=0.95时,
B=1,A=[1,-0.95];
freqz(B,A)
(2)、当a=-0.5时,
B=1,A=[1,0.5];freqz(B,A)
2已知两系统分别用下面差分方程描述:
y1(n)=x(n)+x(n-1)
y2(n)=x(n)-x(n-1)
试分别写出它们的传递函数,并分别打印|H(ejω)|~ω曲线。
(1)、B=[1,1];A=1;
freqz(B,A)
(2)B=[1,-1];A=1;
freqz(B,A)
3已知信号x(n)=R3(n),试分析它的频域特性,要求打印|X(ejω)|~ω曲线。
3、xn=[111];%输入时域序列向量xn=R3(n)
Xk32=fft(xn,32);%计算xn的32点DFT
%以下为绘图部分
k=0:
31;wk=2*k/32;%产生32点DFT对应的采样点频率(关于π归一化值)
subplot(3,2,1);stem(wk,abs(Xk32),'.');%绘制32点DFT的幅频特性图
title('(a)32点DFT的幅频特性图');xlabel('ω/π');ylabel('幅度')
subplot(3,2,5);stem(wk,angle(Xk32),'.');%绘制32点DFT的相频特性图
title('(b)32点DFT的相频特性图');
xlabel('ω/π');ylabel('相位');axis([0,2,-3.5,3.5])
4假设x(n)=δ(n),将x(n)以2为周期进行周期延拓,得到
,试分析它的频率特性,并画出它的幅频特性。
4、xn=[11];%输入时域序列向量xn=R3(n)
Xk32=fft(xn,32);%计算xn的32点DFT
%以下为绘图部分
k=0:
31;wk=2*k/32;%产生32点DFT对应的采样点频率(关于π归一化值)
subplot(3,2,1);stem(wk,abs(Xk32),'.');%绘制32点DFT的幅频特性图
title('(a)32点DFT的幅频特性图');xlabel('ω/π');ylabel('幅度')
subplot(3,2,5);stem(wk,angle(Xk32),'.');%绘制32点DFT的相频特性图
title('(b)32点DFT的相频特性图');
xlabel('ω/π');ylabel('相位');axis([0,2,-3.5,3.5])
四实验用MATLAB函数介绍
1abs
功能:
求绝对值(复数的模)。
Y=abs(x):
计算实数x的绝对值。
当x为复数十得到x的模(幅度值)。
当x为向量时,计算其每个元素的模,返回模向量y。
2angle
功能:
求相角。
Ph=angle(x):
计算复向量x的相角(rad)。
Ph值介于-π和+π之间。
3freqz:
计算数字滤波器H(z)的频率响应。
H=freqz(B,A,M,’whole’):
计算由向量w指定的数字频率点上数字滤波器H(z)的频率响应H(ejω),结果存于H向量中。
向量B和A分别为数字滤波器系统函数H(z)的分子和分母多项式系数。
[H,w]=freqz(B,A,M,’whole’):
计算出M个频率点上的频率响应,存放在H向量中,M个频率存放在向量w中。
freqz函数自动将这M个频点均匀设置在频率范围[0,2π]上。
调用参数B和A与系统函数的关系由下式给出:
缺省w和M是,freqz自动选取512个频率点计算。
不带输出向量的freqz函数将自动绘出幅频和相频曲线。
其他几种调用格式可以用命令help查阅。
freqz函数用于计算机模拟滤波器的频率响应函数,详细功能及调用格式用help命令查阅。
例如:
八阶梳状滤波器系统函数为:
H(z)=B(z)=1-z-8
用下面的简单程序绘出H(z)的幅频与相频特性曲线如图10.2.1所示。
%exampleforfreqz
B=[10000000-1];
A=1;
freqz(B,A)
五、需要的仪器设备:
1计算机一台
2MATLAB程序
六、实验报告要求
1对各实验内容进行理论分析和推导。
2分析各实验内容,并和理论分析推导结果进行比对。
图10.2.1八阶梳状滤波器幅度和相位曲线
实验三零极点分布对系统频率响应的影响
一、实验目的
学习用分析零极点分布的几何方法分析研究信号和系统频率响应。
二、实验原理
如果知道信号的Z变换以及系统的系统函数H(z),可以得到它们的零极点分布,有零极点分布可以很方便的对它们的频率响应进行定性分析。
按照本科教材(3.6.13)式,信号的幅度特性由零点矢量长度之积除以极点矢量的长度之积,当频率ω从0变化到2π时,观察零点矢量长度和极点矢量长度的变化,重点观察那些矢量长度较短的情况。
另外,由分析知道,极点主要影响频率响应的峰值,极点愈靠近单位圆,峰值愈尖锐;零点主要影响频率特性的谷值,零点愈靠近单位圆,谷值愈深,如果零点在单位圆上,那么频率特性为零。
根据这些规律可以定性画出频率响应的幅度特性。
峰值频率和谷值频率可以近似用响应得极点和零点的相角表示,例如极点z1=0.9ejπ/4,峰值频率近似为π/4,极点愈靠近单位圆,估计法结果愈准确。
本实验借助计算机分析信号和系统的频率响应,目的是掌握用极、零点分布的几何分析法分析频率响应,实验时需要将z=ejω代入信号的Z变换和系统函数中,再在0~2π之间,等间隔选择若干点,并计算它的频率响应。
[提示:
本实验可以采取两种编程方法:
①先求出系统函数H(z),再调用MATLAB函数freqz计算并绘制幅频特性和相频特性曲线;②先求出系统的传递函数H(ejω)的封闭表达式,再编程序计算其在给定离散频率点上的值,最后调用函数abs,求出模值并打印
|H(ejω)|~ω曲线。
]
三、实验内容
1假设系统用下面差分方程描述:
y(n)=x(n)+ay(n-1)
假设a=0.7,0.8,0.9,分别在三种情况下分析系统的频率特性,并打印幅度特性曲线。
(1)、A=[1,-0.7];B=1;%设置系统函数系数向量B和A
subplot(2,2,1);zplane(B,A);%绘制零、极点图
[H,w]=freqz(B,A);%计算频率响应
subplot(2,2,2);plot(w/pi,abs(H));%绘制幅频响应曲线
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');axis([0,1,0,2.5])
subplot(2,2,4);plot(w/pi,angle(H));%绘制相频响应曲线
xlabel('\omega/\pi');ylabel('\phi(\omega)');
(2)、A=[1,-0.8];B=1;%设置系统函数系数向量B和A
subplot(2,2,1);zplane(B,A);%绘制零、极点图
[H,w]=freqz(B,A);%计算频率响应
subplot(2,2,2);plot(w/pi,abs(H));%绘制幅频响应曲线
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');axis([0,1,0,2.5])
subplot(2,2,4);plot(w/pi,angle(H));%绘制相频响应曲线
xlabel('\omega/\pi');ylabel('\phi(\omega)');
(3)、A=[1,-0.9];B=1;%设置系统函数系数向量B和A
subplot(2,2,1);zplane(B,A);%绘制零、极点图
[H,w]=freqz(B,A);%计算频率响应
subplot(2,2,2);plot(w/pi,abs(H));%绘制幅频响应曲线
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');axis([0,1,0,2.5])
subplot(2,2,4);plot(w/pi,angle(H));%绘制相频响应曲线
xlabel('\omega/\pi');ylabel('\phi(\omega)');
2假设系统用下面差分方程描述:
y(n)=x(n)+ax(n-1)
假设a=0.7,0.8,0.9,分别在三种情况下分析系统的频率特性,并打印幅度特性曲线。
2
(1)、B=[1,0.7];A=1;%设置系统函数系数向量B和A
subplot(2,2,1);zplane(B,A);%绘制零、极点图
[H,w]=freqz(B,A);%计算频率响应
subplot(2,2,2);plot(w/pi,abs(H));%绘制幅频响应曲线
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');axis([0,1,0,2.5])
subplot(2,2,4);plot(w/pi,angle(H));%绘制相频响应曲线
xlabel('\omega/\pi');ylabel('\phi(\omega)');
(2)、B=[1,0.8];A=1;%设置系统函数系数向量B和A
subplot(2,2,1);zplane(B,A);%绘制零、极点图
[H,w]=freqz(B,A);%计算频率响应
subplot(2,2,2);plot(w/pi,abs(H));%绘制幅频响应曲线
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');axis([0,1,0,2.5])
subplot(2,2,4);plot(w/pi,angle(H));%绘制相频响应曲线
xlabel('\omega/\pi');ylabel('\phi(\omega)');
(3)、B=[1,0.9];A=1;%设置系统函数系数向量B和A
subplot(2,2,1);zplane(B,A);%绘制零、极点图
[H,w]=freqz(B,A);%计算频率响应
subplot(2,2,2);plot(w/pi,abs(H));%绘制幅频响应曲线
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');axis([0,1,0,2.5])
subplot(2,2,4);plot(w/pi,angle(H));%绘制相频响应曲线
xlabel('\omega/\pi');ylabel('\phi(\omega)');
3假设系统函数用下式描述:
y(n)=1.273y(n-1)-0.81y(n-2)+x(n)+x(n-1)
试分析它的频率特性,要求打印其幅度特性曲线,并求出峰值频率和谷值频率。
3、A=[1,-1.273,0.81];B=[1,1];%设置系统函数系数向量B和A
subplot(2,2,1);zplane(B,A);%绘制零、极点图
[H,w]=freqz(B,A);%计算频率响应
subplot(2,2,2);plot(w/pi,abs(H));%绘制幅频响应曲线
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');axis([0,1,0,2.5])
subplot(2,2,4);plot(w/pi,angle(H));%绘制相频响应曲线
xlabel('\omega/\pi');ylabel('\phi(\omega)');
四、实验报告要求
1将以上三部分分别用零、极点分布进行理论分析,画出幅度特性曲线,求出峰值频率和谷值频率。
2将实验结果和理论分析结果进行比较。
3总结零、极点分布对频率响应的影响。
实验七IIR滤波器的设计与信号滤波
一、实验目的
设计IIR滤波器,实现对存在假性干扰的时域离散信号进行滤波。
二、实验内容
已知带假性干扰的信号用x(n)表示,
,式中
是有用的信号,是一个0~0.2πrad的带权信号。
η(n)是一个干扰信号,其频率分布在0.3πrad以上。
要求设计一个巴特沃斯IIR数字滤波器对信号x(n)进行滤波,将干扰η(n)滤除。
要求在
所在的通带内滤波器幅度平坦,在0.2πrad处幅度衰减不大于1dB,在噪声所在的0.3πrad以上的频带内滤波器幅度衰减大于等于40的dB。
三、实验步骤
1.根据题目要求确定要设计的数字滤波器的技术指标;
2.将上面的技术指标转换为巴特沃斯模拟滤波器的技术指标;
3.设计该模拟滤波器;
4.用双线性变换法将设计的模拟滤波器转换为数字滤波器,要求求出该滤波器的系统函数;
5.画出该滤波器的幅度特性曲线;
6.根据该滤波器的系统函数画出它的直接型网络结构图;
7.根据1所确定的技术指标,调用MATLAB函数buttord和hutter,直接设计数字滤波器,观察设计结果与上面用双线性变换法的设计结果是否相同。
8.滤波仿真:
调用MATLAB工具箱函数filter对下面给出的带加性干扰的信号x(n)进行滤波,观察滤波效果(绘制滤波前后信号的时域和频域波形)。
实验信号x(n)的128个样值:
程序:
Wp=0.2;
Ws=0.3;
Rp=1;
Rs=40;
disp('巴特沃斯型');
[N,Wn]=buttord(Wp,Ws,Rp,Rs);
[B,A]=butter(N,Wn);
disp('巴特沃斯型分子多项式');
fprintf('%.4e\n',B);
disp('巴特沃斯型分母多项式');
fprintf('%.4e\n',A);
W=linspace(0,0.8*pi,128);
h=20*log10(abs(freqz(B,A,W)));
plot(W/pi,h,'o');
legend('BW');
xlabel('normalizefrequency');
ylabel('GainindB');y
axis([00.8-501]);
gridon;
%%set(gca,'YTickMode','manual','YTick',[-50,10,0]);
四、实验用MATLAB函数简介
filter
功能:
一维数字滤波器直接Ⅱ型实现函数。
Yn=filter(B,A,xn):
按直接Ⅱ型实现结构对输入信号向量xn滤波,返回滤波器输出信号向量yn,调用参数B和A分别为滤波器系统函数的分子和分母多项式系数向量。
其实质是求解差分方程
如果A
(1)不等于1时,则对系数关于A
(1)归一化后计算输出信号y(n)。
当A=1时,对应FIRDF的直接Ⅱ型实现。
五、需要的仪器设备:
1计算机一台
2MATLAB程序
六、实验报告要求
1写出所设计的数字滤波器的主要技术指标,它的系统函数、网络结构。
2写出仿真滤波实验的结果。