离散系统的时域分析matlab
- 格式:doc
- 大小:657.00 KB
- 文档页数:24
实验一 常见离散信号的MATLAB 产生和图形显示
一、 实验目的
加深对常见离散信号的理解 二、实验原理
1、单位抽样序列的产生
,10,0{=≠=n n n )(δ
在MATLAB 中可以用zeros()函数实现 x=[1,zeros(1,N-1)]; 或x=zeros(1,N); x(1)=1;
2、单位阶跃序列的产生
0,10,0{u ≥<=n n n )(
在MATLAB 中可以用ones()函数实现 x=one(1,N); 3、正弦序列的产生 在MATLAB 中实现方法如下: N=0:N-1
X=A*sin(2*pi*f*n/fs+fai) 4、复正弦序列的产生jwn
e A n x *)(=
在MATLAB 中实现方法如下:
n)
*w *ex p(j *A 1
:0=-=x N n
5、实指数序列的产生n
a A n x *)(= 在MATLAB 中实现方法如下:
n
a A x N n .^*1
:0=-=
三、实验内容及步骤
编制程序产生以下信号,并绘出其图形。 1)产生64点的单位抽样序列)(n δ
N=64
x=[1,zeros(1,N-1)]
stem(x)
2)产生64点并移位20位的单位抽样序列)20(-n δ
N=64
x=[0,zeros(1,N-1)] x(20)=1 stem(x)
3)任意序列)5(7.0)4(9.2)3(6.5)2(8.1)1(4.3)(0.8)(-+-+-+-+-+=n n n n n n n f δδδδδδ 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、对于离散时间系统
其输入与输出的关系可以用以下的差分方程描述:
][][0
k n x p k n y d
M
k k N
k k
-=-∑∑==
d k =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=[0 0.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=[0 0.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]');