离散系统的时域分析matlab.docx
- 文档编号:9348812
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:27
- 大小:437.66KB
离散系统的时域分析matlab.docx
《离散系统的时域分析matlab.docx》由会员分享,可在线阅读,更多相关《离散系统的时域分析matlab.docx(27页珍藏版)》请在冰豆网上搜索。
离散系统的时域分析matlab
实验一常见离散信号的MATLAB产生和图形显示
一、实验目的
加深对常见离散信号的理解
二、实验原理
1、单位抽样序列的产生
在MATLAB中可以用zeros()函数实现
x=[1,zeros(1,N-1)];
或x=zeros(1,N);
x
(1)=1;
2、单位阶跃序列的产生
在MATLAB中可以用ones()函数实现
x=one(1,N);
3、正弦序列的产生
在MATLAB中实现方法如下:
N=0:
N-1
X=A*sin(2*pi*f*n/fs+fai)
4、复正弦序列的产生
在MATLAB中实现方法如下:
5、实指数序列的产生
在MATLAB中实现方法如下:
三、实验内容及步骤
编制程序产生以下信号,并绘出其图形。
1)产生64点的单位抽样序列
N=64
x=[1,zeros(1,N-1)]
stem(x)
2)产生64点并移位20位的单位抽样序列
N=64
x=[0,zeros(1,N-1)]
x(20)=1
stem(x)
3)任意序列
b=[1];
a=[8,3.4,1.8,5.6,2.9,0.7];
xh=[1,zeros(1,20)];
h=filter(b,a,xh)
figure
(1);
n=0:
20;
stem(n,h,)
legend('冲激')
4)产生幅度A=3,频率f=100,初始相位ϕ=1.2,点数为32点的正弦序列。
n=0:
31;
x=3*exp(j*314*n)
figure
(1)
stem(n,x)
5)产生幅度A=3,角频率ω=314,点数为32点的复正弦序列。
n=0:
31
A=3;
w=314;
x=A*exp(w*j*n)
stem(x)
6)产生幅度A=3,a=0.7,点数为32点的实指数序列。
n=0:
31;
A=3;
a=0.7;
x=A*a.^n
stem(x)
实验二离散系统的时域分析
一、实验目的
(1)熟悉并掌握离散系统的差分方程表示方法
(2)加深对冲激响应和卷积方法的理解
二、实验原理
1、对于离散时间系统
其输入与输出的关系可以用以下的差分方程描述:
dk=0,k=0,1,2....N时,h[n]是有限长度的,称此时系统为FIR系统;反之,称系统为IIR系统。
2、在MATLAB中,可以用y=filter(p,d,x)函数实现差分方程的仿真,也可以用y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。
三、实验内容与要求
编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
要求分别用filter、conv、impz三种函数完成。
y[n]+0.75y[n−1]+0.125y[n−2]=x[n]−x[n−1]
y[n]=0.25{x[n−1]+x[n−2]+x[n−3]+x[n−4]}
给出理论计算结果和程序计算结果并讨论。
(1)
1)a1=[1,0.75,0.125];
b1=[1,-1];
n=0:
20;
x2=ones(1,21);
y1filter=filter(b1,a1,x2);
stem(n,y1filter);
title('y1filter_step');
xlabel('x');
ylabel('y');
2)
a1=[1,0.75,0.125];
b1=[1,-1];
n=0:
20;
x2=ones(1,21);
[h]=impz(b1,a1,20);
y1=conv(h,x2);
y1conv=y1(1:
21);
n1=0:
20;
stem(n1,y1conv,'filled');
title('y1conv');
xlabel('n');
ylabel('y1[n]');
3)
a=[1,0.75,0.125];
b=1;
impz(b,a);
(2)
1)
a2=1;
b2=[00.25*ones(1,4)];
n=0:
20;
x2=ones(1,21);
y2filter=filter(b2,a2,x2);
stem(n,y2filter);
title('y2filter_step');
xlabel('x');
ylabel('y');
2)
h=[00.25*ones(1,4)];
x2=ones(1,21);
n=0:
20;
y2=conv(h,x2);
y2conv=y2(1:
21);
stem(n,y2conv,'filled');
title('y2conv');
xlabel('n');
ylabel('y[n]');
3)
n=0:
20;
b=[0,0.25,0.5,0.75,ones(1,17)];
a=1;
impz(b,a,21);
实验三线性卷积与循环卷积的运算
一、实验目的
1)进一步加深对线性卷积的理解和分析能力。
2)听过编程,上机调试进一步增强使用计算机解决问题的能力。
3)掌握线性卷积与循环卷积软件实现方法,并验证二者之间的关系。
二、实验原理
1、线性卷积
线性时不变系统输入输出间的关系为:
当系统输入序列
,系统的单位脉冲响应为
,输出序列为
,则系统输出为:
2、循环卷积
设两个有限长的N点序列
和
,
的DTFT为X1(k),
DTFT为X2(k),如有X3(k)=X1(k)X2(k)
则
3、两个有限长序列的线性卷积
序列
为L点长,序列
为P点长,
为这两个序列的线性卷积,则有线性卷积的最大长度为L+P-1。
4、循环卷积于线性卷积的关系
当N〉=L+P-1时,圆周卷积等于线性卷积。
当N 三、实验内容及结果 已知两个有限长序列 x(n)=δ(n)+2δ(n−1)+3δ(n−2)+4δ(n−3)+5δ(n−4) H(N)=δ(n)+2δ(n−1)+δ(n−2)+2δ(n−3) (1)实验前,预先笔算好这两个序列的线性卷积及下列几种情况的循环卷积 (1)x(n)*h(n) (2)x(n)*h(n)(3)x(n)*h(n)(4)x(n)*h(n) (2)编制一个计算两个序列线性卷积的通用程序,计算x(n)*h(n)。 (3)编制一个计算循环卷积的通用程序,计算上述4种情况下两个序列x(n)与 h(n)的循环卷积。 (4)上机调试并打印或记录实验结果。 (可在一个程序中用菜单形式实现上述两种卷积的计算。 ) 要求列出计算两种卷积的公式,画出程序框图,给出实验结果,并对结果作出分析。 验证循环卷积两者之间的关系。 x1=[12345]; x2=[1212]; L=length(x1)+length(x2)-1; XE=fft(x1,L); HE=fft(x2,L); y=ifft(XE.*HE); n=0: L-1; stem(n,y) xlabel('n'); ylabel('Amplitude'); title('线性卷积') x1=[12345]; x2=[1212]; ycn1=circonv(x1,x2,5); ny1=[0: 1: length(ycn1)-1]; subplot(2,2,1); stem(ny1,ycn1); title('5点长的循环卷积'); ycn2=circonv(x,h,6); ny2=[0: 1: length(ycn2)-1]; subplot(2,2,2); stem(ny2,ycn2); title('6点长的循环卷积'); ycn3=circonv(x1,x2,7); ny3=[0: 1: length(ycn3)-1]; subplot(2,2,3); stem(ny3,ycn3); title('7点长的循环卷积'); ycn4=circonv(x,h,8); ny4=[0: 1: length(ycn4)-1]; subplot(2,2,4); stem(ny4,ycn4); title('8点长的循环卷积'); 实验四应用快速傅立叶变换对信号进行频谱分析 一、实验目的 3)熟练掌握快速傅立叶变换原理及其用FFT进行频谱分析的基本方法。 4)在通过计算机上用软件实现FFT及信号的频谱分析。 5)通过实验对离散傅立叶变换的主要性质及FFT在数字信号处理的重要作用有进一步了解。 二、实验原理 离散傅里叶变换及其主要性质 a.DFT表示离散信号的离散频谱,DFT的主要性质中的奇偶对称性,虚实特性等。 b.对于单一频率的三角序列来说它的DFT谱线也是单一的。 2、利用DFT对信号进行频谱分析 DFT的重要应用之一是对时域连续的信号的频谱进行分析,成为傅里叶分析。 Sc(t)V(k) LPFxc(t)A/Dx(n)Xv(n)DFT Ha(j ) w(n) 图.时域连续信号离散傅里叶分析的处理步骤 3、快速离散傅里叶变换(FFT) 快速离散傅里叶变换是计算离散傅里叶变换的一种快速算法,FFT将DFT的计算逐次分解成较小点数的DFT。 三、实验内容及结果 (1)实指数序列 clearall N=60; n=0: N-1; xn=1.08.^n KK=fft(xn,N) magKK=abs(KK); phaKK=angle(KK); subplot(2,1,1) stem(xn) xlabel('n');ylabel('x(n)'); title('x(n)N=60'); subplot(2,1,2) k=0: length(magKK)-1; stem(k,magKK,'.'); xlabel('k');ylabel('/X(k)/'); title('X(k)N=60'); (2)复指数序列 clearall N=60; n=0: N-1; xn=3*(0.9+0.3*j).^n KK=fft(xn,N) magKK=abs(KK); phaKK=angle(KK); subplot(2,1,1) plot(n,xn) xlabel('n');ylabel('x(n)'); title('x(n)N=60'); subplot(2,1,2) k=0: length(magKK)-1; stem(k,magKK,'.'); xlabel('k');ylabel('/X(k)/'); title('X(k)N=60'); (3)周期为N的正弦序列 clearall N=60; n=0: N-1; xn=sin(2*pi*n/N); KK=fft(xn,N) magKK=abs(KK); phaKK=angle(KK); subplot(2,1,1) plot(n,xn) xlabel('n');ylabel('x(n)'); title('x(n)N=60'); subplot(2,1,2) k=0: length(magKK)-1; stem(k,magKK,'.'); xlabel('k');ylabel('/X(k)/'); title('X(k)N=60'); subplot(2,1,2) k=0: length(magKK)-1; stem(k,magKK,'.'); xlabel('k');ylabel('/X(k)/'); title('X(k)N=60'); (4)周期为N的余弦序列 N=60; n=0: N-1; xn=cos(2*pi*n/N); KK=fft(xn,N) magKK=abs(KK); phaKK=angle(KK); subplot(2,1,1) plot(n,xn) xlabel('n');ylabel('x(n)'); title('x(n)N=60'); subplot(2,1,2) k=0: length(magKK)-1; stem(k,magKK,'.'); xlabel('k');ylabel('/X(k)/'); title('X(k)N=60') (5)复合函数序列 clearall N=60; n=0: N-1; xn=0.9*sin(2*pi/N*n)+0.6*sin(2*pi*3/N*n); KK=fft(xn,N) magKK=abs(KK); phaKK=angle(KK); subplot(2,1,1) plot(n,xn) xlabel('n');ylabel('x(n)'); title('x(n)N=60'); subplot(2,1,2) k=0: length(magKK)-1; stem(k,magKK,'.'); xlabel('k');ylabel('/X(k)/'); title('X(k)N=60'); 三、心得体会 通过实验操作我在掌握快速傅立叶变换原理和性质的基础上有学会了用FFT进行频谱分析的基本方法,在通过计算机上MATLAB实现FFT及信号的频谱分析更直观、真实,能进一步加深理论知识的理解。 实验五离散系统的变换域分析 一、实验目的 (1)熟悉对离散系统的频率响应分析方法; (2)加深对零、极点分布的概念的理解 二、实验原理 系统的频率响应为: 系统的转移函数: 三、实验内容及程序 求系统 的零极点和幅度频率相应、相位响应。 编程实现系统参数输入,绘出幅度频率相应、相位响应曲线和零、极点分布图。 程序: k=256 a=[1,-1.8107,2.4947,-1.8801,0.9537,-0.2336] b=[0.0528,0.0797,0.1295,0.1295,0.797,0.0528] subplot(3,1,1); zplane(b,a) w=0: pi/k: pi h=freqz(b,a,w); subplot(3,1,2); plot(w/pi,abs(h));grid title('幅频') xlabel('\omega/\pi');ylabel('幅值'); subplot(3,1,3); plot(w/pi,angle(h));grid title('相频') xlabel('\omega/\pi');ylabel('弧度') 实验六用双线性变换法设计IIR滤波器 1、实验目的 熟悉模拟Batterworth滤波器设计和用双线性变换法设计数字IIR滤波器方 法。 2、实验原理 利用双线性变换设计IIR滤波器,首先要设计出满足指标要求的模拟滤波器的传递函数H(s)a,然后由H(s)a通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。 如果给定的指标为数字滤波器的指标,则首先要转换成模拟域指 标。 1实验原理 利用双线性变换设计IIR滤波器,首先要设计出满足指标要求的模拟滤波器的传递函数 ,然后由 通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。 如果给定的指标为数字滤波器的指标,则首先要转换成模拟域指标。 (1)低通数字滤波器设计 数字域与模拟域关系 =tg H(z)= (2)高通数字滤波器设计 数字域与模拟域关系 3、实验内容及要求 (1)编写用双线性变换法设计Batterworth低通IIR数字滤波器的程序,要求 通带内频率低于0.2πrad时,容许幅度误差在1dB之内,频率在0.3πrad到 πrad之间的阻带衰减大与10dB。 其中要求参数ωp,ωs,ap,as 可由键盘输 入。 (2)以 为采样间隔,在屏幕上打印出数字滤波器的频率区间[0,π]上的幅频响应特性由线(H(ejω))。 (3)在屏幕上打印出H(z)的分子,分母多项式系数。 Wp=0.2*pi; Ws=pi; Rp=1; Rs=10; Fs=64/pi; Ts=1/Fs; [N,Wn]=Buttord(Wp,Ws,Rp,Rs,'s'); [Z,P,K]=buttap(N); [Bap,Aap]=Zp2tf(Z,P,K); [b,a]=lp2lp(Bap,Aap,Wn) [bz,az]=bilinear(b,a,Fs); [H,W]=freqz(bz,az); plot(W*Fs/(2*pi),abs(H)); grid xlabel('频率/Hz') ylabel('幅度') 实验七用窗口法设计FIR滤波器 1、实验目的 了解一个实际滤波器设计过程,加深掌握用窗口法设计FIR滤波器的原理和 窗函数对滤波器性能的影响 2、实验原理 直接截取的办法可以形象地想象为,h(n)好比是通过一个“窗口”所看 到的一段hd(n)。 h(n)中表达为hd(n)和一个“窗口函数”的乘积。 在这里,窗口函数就是矩形脉冲函数RN(n),即h(n)=hd(n)R(n)。 一般来说,窗口函数并不一定是矩形函数,可以在矩形以内还对hd(n)作 一定的加权处理,因此,一般可以表示为h(n)h(n)w(n)这里w(n)就是窗口函数。 这种对理想单位取样响应加窗的处理对频率响应会产生影响。 3、实验内容及要求 用改进余弦窗设计一个FIR线性相应相位低通数字滤波器,已知 w=0.5,N=21cπ。 编写调试程序,要求在幕幕上显示出单位脉冲响应h(n)的数值,画出其幅度 响应H(ejw)的曲线。 N=21; Wc=0.5*pi; Wn=Wc/pi; B=fir1(N,Wn,hamming(N+1)); freqz(B,1) %[H,W]= %subplot(2,1,1) %plot(W/pi,abs(H)); %subplot(2,1,2) %plot(W/pi,angle(H)); %grid %xlabel('ƵÂÊ') %ylabel('·ù¶È') 心得体会 对工科来说理解比记忆更重要,对数字信号处理这门课程来说熟练掌握MATLAB软件是分析解决信号处理问题的基础,实验课是一次将理论化为实际行动的一次实践,在实验过程中进一步巩固了以前在Matlab课程中课时少遗留下来的问题。 而且通过编程以图形的形式更直观的观察现象,我对课本里的一些理论知识加深了理解,同时提高了动手能力,思考问题能力,学培养了分析问题解决问题能力。 在我们已有的理论基础上去展示我们的实践操作能力,增强了专业技能,从实际问题出发不断探索思考,创新。 为今后的自学,工作积累了丰富经验。 我觉得这是大学期间必须要掌握的,当今电子工业的飞速发展,对通信质量的要求越来越高,如果不借助软件很难做到精确无误,MATLAB以其强大的功能、快捷实用的操作界面及良好的开放性,为设计者提供了方便,使设计者能快捷、准确地调试系统性能,观察现象。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散系统 时域 分析 matlab
![提示](https://static.bdocx.com/images/bang_tan.gif)