数字信号处理实验一信号系统及系统响应.docx
- 文档编号:26982861
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:25
- 大小:707.17KB
数字信号处理实验一信号系统及系统响应.docx
《数字信号处理实验一信号系统及系统响应.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验一信号系统及系统响应.docx(25页珍藏版)》请在冰豆网上搜索。
数字信号处理实验一信号系统及系统响应
实验一信号、系统及系统响应
一.实验内容
1.认真复习采样理论、离散信号与系统、线性卷积、序列的z变换及性质等有关内容;
2.掌握离散时间序列的产生与基本运算,理解离散时间系统的时域特性与差分方程的求解方法,掌握离散信号的绘图方法;
3.熟悉序列的z变换及性质,理解理想采样前后信号频谱的变化。
二.实验内容
a.产生长度为500的在[0,1]之间均匀分布的随机序列,产生长度为500的均值为0单位方差的高斯分布序列。
实验代码:
N=500;
x1=rand(1,N);
figure
(1);
plot(x1);
title('[0,1]均匀分布');
x2=randn(1,N);
figure
(2);
plot(x2);
title('均值为0,方差为1的高斯分布');
生成图像如下:
b.线性时不变系统单位脉冲响应为h(n)=(0.9)nu(n),当系统输入为x(n)=R10(n)时,求系统的零状态响应,并绘制波形图。
实验代码:
n=[1:
1:
1000];
y=0.9.^n.*heaviside(n>=0);
x=ones(1,10);
z=conv(x,y);
stem(z)
axis([020010]);
生成图像如下:
c.描述系统的差分方程为:
y(n)-y(n-1)+0.9y(n-2)=x(n),其中x(n)为激励,y(n)为响应。
计算并绘制n=20,30,40,50,60,70,80,90,100时的系统单位脉冲响应h(n);计算并绘制n=20,30,40,50,60,70,80,90,100时的系统单位阶跃响应s(n);由h(n)表征的这个系统是稳定系统吗?
实验代码:
A=[1,-1,0.9];
B=[1];
%生成n=20,30,40时对应的h(n)及s(n)
figure
(1);
hn=impz(B,A,20);
subplot(2,3,1);
plot(hn);
title('n=20时对应的h(n)');
hn=impz(B,A,30);
subplot(2,3,2);
plot(hn);
title('n=30时对应的h(n)');
hn=impz(B,A,40);
subplot(2,3,3);
plot(hn);
title('n=40时对应的h(n)');
sn1=ones(1,20);
sn=filter(B,A,sn1);
subplot(2,3,4);
stem(sn);
title('n=20时对应的s(n)');
sn2=ones(1,30);
sn=filter(B,A,sn2);
subplot(2,3,5);
stem(sn);
title('n=30时对应的s(n)');
sn3=ones(1,40);
sn=filter(B,A,sn3);
subplot(2,3,6);
stem(sn);
title('n=40时对应的s(n)');
%生成n=50,60,70时对应的h(n)及s(n)
figure
(2);
hn=impz(B,A,50);
subplot(2,3,1);
plot(hn);
title('n=50时对应的h(n)');
hn=impz(B,A,60);
subplot(2,3,2);
plot(hn);
title('n=60时对应的h(n)');
hn=impz(B,A,70);
subplot(2,3,3);
plot(hn);
title('n=70时对应的h(n)');
sn4=ones(1,50);
sn=filter(B,A,sn4);
subplot(2,3,4);
stem(sn);
title('n=50时对应的s(n)');
sn5=ones(1,60);
sn=filter(B,A,sn5);
subplot(2,3,5);
stem(sn);
title('n=60时对应的s(n)');
sn6=ones(1,70);
sn=filter(B,A,sn6);
subplot(2,3,6);
stem(sn);
title('n=70时对应的s(n)');
%生成n=80,90,100时对应的h(n)及s(n)
figure(3);
hn=impz(B,A,80);
subplot(2,3,1);
plot(hn);
title('n=80时对应的h(n)');
hn=impz(B,A,90);
subplot(2,3,2);
plot(hn);
title('n=90时对应的h(n)');
hn=impz(B,A,100);
subplot(2,3,3);
plot(hn);
title('n=100时对应的h(n)');
sn7=ones(1,80);
sn=filter(B,A,sn7);
subplot(2,3,4);
stem(sn);
title('n=80时对应的s(n)');
sn8=ones(1,90);
sn=filter(B,A,sn8);
subplot(2,3,5);
stem(sn);
title('n=90时对应的s(n)');
sn9=ones(1,100);
sn=filter(B,A,sn9);
subplot(2,3,6);
stem(sn);
title('n=100时对应的s(n)');
生成图像如下:
由图像可知,此系统是稳定的。
d.序列x(n)=(0.8)nu(n),求DTFT[x(n)],并画出它幅度、相位,实部、虚部的波形图。
观察它是否具有周期性?
实验代码:
k1=0:
50;
n=[0:
100];
x=(0.8).^n;
k=0:
5000;
w=(pi/500)*k;
y=x*(exp(-j*pi/500)).^(n'*k);
y1=abs(y);y2=angle(y);
y3=real(y);y4=(y-y3)/(j);
subplot(2,2,1)
plot(w,y1);
title('序列幅度');
subplot(2,2,2)
plot(w,y2);
title('序列相位');
subplot(2,2,3)
plot(w,y3);
title('序列实部');
subplot(2,2,4)
plot(w,y4);
title('序列虚部');
生成图像如下:
由图像可知,序列具有周期性。
e.线性时不变系统的差分方程为y(n)=0.7y(n-1)+x(n),求系统的频率响应H(ejω),如果系统输入为x(n)=cos(0.05πn)u(n),求系统的稳态响应并绘图。
实验代码:
a=[1,-0.7];
b=[1];
n=[0:
1:
40]
%freqz为频率响应,b为x的向量,a为y的向量
[h,w]=freqz(b,a,30);
x=abs(h);
y=angle(h);
t=cos(pi*0.05.*n);
%filter为滤波器,b为x的向量,a为y的向量
t1=filter(b,a,t);
subplot(2,2,1)
plot(w,x);title('幅度响应');
subplot(2,2,2)
plot(w,y);title('相位响应');
subplot(2,2,3)
stem(t);title('cos(pi*0.05.*n)的波形图');
subplot(2,2,4)
stem(t1);title('cos(pi*0.05*n)的稳态响应');
生成图像如下:
f.设连续时间信号x(t)=e-1000|t|,计算并绘制它的傅立叶变换;如果用采样频率为每秒5000样本对x(t)进行采样得到x1(n),计算并绘制X1(ejω),用x1(n)重建连续信号x(t),并对结果进行讨论;如果用采样频率为每秒1000样本对x(t)进行采样得到x2(n),计算并绘制X2(ejω),用x2(n)重建连续信号x(t),并对结果进行讨论。
加深对采样定理的理解。
(1)每秒5000次的抽样:
实验代码:
Dt=0.00005;t=-0.005:
Dt:
0.005;xa=exp(-1000*abs(t));
Ts=0.0002;n=-25:
1:
25;x=exp(-1000*abs(n*Ts));
K=5000;k=0:
1:
K;w=pi*k/K;
X=x*exp(-j*n'*w);X=real(X);
w=[-fliplr(w),w(2:
K+1)];
X=[fliplr(X),X(2:
K+1)];
subplot(2,1,1);plot(t*1000,xa);
xlabel('t毫秒');ylabel('x1(n)');
title('离散信号');holdon
stem(n*Ts*1000,x);gtext('Ts=0.2毫秒');holdoff
subplot(2,1,2);
plot(w/pi,X);
xlabel('以pi为单位的频率');ylabel('X1(w)')
title('离散时间傅里叶变换')
生成图像如下:
(2)每秒1000次的抽样
实验代码:
Dt=0.00005;t=-0.005:
Dt:
0.005;xa=exp(-1000*abs(t));
Ts=0.001;n=-25:
1:
25;x=exp(-1000*abs(n*Ts));
K=1000;k=0:
1:
K;w=pi*k/K;
X=x*exp(-j*n'*w);X=real(X);
w=[-fliplr(w),w(2:
K+1)];
X=[fliplr(X),X(2:
K+1)];
subplot(1,1,1)
subplot(2,1,1);plot(t*1000,xa);
xlabel('t毫秒');ylabel('x1(n)');
title('离散信号');holdon
stem(n*Ts*1000,x);gtext('Ts=0.2毫秒');holdoff
subplot(2,1,2);
plot(w/pi,X);
xlabel('以pi为单位的频率');ylabel('X1(w)')
title('离散时间傅里叶变换')
生成图像如下:
(3)用1000抽样出来再重构
实验代码:
Ts=0.001;
n=-5:
1:
5;
nTs=n*Ts;
Fs=1/Ts;
x=exp(-1000*abs(nTs));
Dt=0.00005;t=-0.005:
Dt:
0.005;
xa=x*sinc(Fs*(ones(length(n),1)*t-nTs'*ones(1,length(t))));
plot(t,xa);
xlabel('t毫秒');ylabel('xa(t)');
title('用1000的抽样频率重构');
生成图像如下:
(4)用5000抽样出来再重构
实验代码:
Ts=0.0002;
n=-5:
1:
5;
nTs=n*Ts;
Fs=1/Ts;
x=exp(-1000*abs(nTs));
Dt=0.00005;t=-0.005:
Dt:
0.005;
xa=x*sinc(Fs*(ones(length(n),1)*t-nTs'*ones(1,length(t))));
plot(t,xa);
xlabel('t毫秒');ylabel('xa(t)');
title('用5000的抽样频率重构');
生成图像如下:
显然,抽样频率大的恢复出来的图像更接近于原始图像。
g.设X1(z)=z+2+3z-1,X2(z)=2z2+4z+3+5z-1,用卷积方法计算X1(z)X2(z)。
实验代码:
symsz,n;
b=[0,-1,0,2,1];
a=[1,-4,0,2,1];
n=[-3:
5];
y=conv(a,b);%先求他们的卷积,然后在求卷积的z变换
ztrans(y,z);
stem(y);gridon;
title('X1(z)X2(z)');
生成图像如下:
h.已知系统方程为y(n)=0.9y(n-1)+x(n),求系统函数H(z)并绘制其零极点图,求系统的频率响应H(ejω)并绘制其幅度和相位波形,求系统的单位脉冲响应h(n)并绘图。
实验代码:
num=[10];
den=[1-0.9];
[z,p]=tf2zp(num,den);
zplane(z,p)
figure
(1);
title('零极点图');
num=[10];
den=[1-0.9];
%[H,w]=freqz(b,a,200);
[H,w]=freqz(b,a,200,'whole');
HF=abs(H);
HX=angle(H);
figure
(2);
subplot(2,1,1);
plot(w,HF);
title('幅度响应');
subplot(2,1,2);
plot(w,HX);
title('相位响应');
symsnz
Fz=z/(z-0.9);
fn=iztrans(Fz,n)
生成图像如下:
fn=(9/10)^n
i.系统方程为:
y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)2.4908x(n-1)+2.2403x(n-2),验证系统是否为线性系统、是否为时不变系统。
(1)线性系统验证
实验代码:
b=[2.2403,2.4908,2.2403];
a=[1,-0.4,0.75];
x1=zeros(1,10);
x1
(1)=1;
x2=zeros(1,10)
x2
(2)=1;
x3=2*x1+3*x2;
y1=filter(b,a,x1);
y2=filter(b,a,x2);
y3=filter(b,a,x3);
y4=2*y1+3*y2;
subplot(2,2,1)
stem(y1);title('输入为x1(n)的响应');gridon
ylabel('y1(n)');
subplot(2,2,2)
stem(y2);title('输入为x2(n)的响应');gridon
ylabel('y2(n)');
subplot(2,2,3)
stem(y3);title('输入2*x1(n)+3*x2(n)的响应');gridon
ylabel('y3(n)');
subplot(2,2,4)
stem(y4);title('2*y1(n)+3*y2(n)');gridon
ylabel('2*y1(n)+3*y2(n)');
生成图像如下:
由图可知,该系统是线性系统。
(2)移不变系统验证
实验代码:
a=[1-0.40.75];
b=[2.24032.49082.2403];
x1=[1zeros(1,9)];
h1=filter(b,a,x1);
subplot(2,1,1);
stem(h1);
axis([020010]);
title('移位前');
x2=[01zeros(1,8)];;
subplot(2,1,2);
h3=filter(a,b,x2);
stem(h3);
axis([020010]);
title('移位后');
生成图像如下:
由图可知,该系统不是移不变的。
三.实验心得
通过这次实验,我进一步加强了对matlab的使用,同时也加深了自己对数字信号处理理论知识的理解。
实验过程中遇到了一些不太了解的函数,通过查阅资料最终得以解决。
希望在以后的实验过程中能进一步熟悉matlab。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 信号系统 系统 响应