数字信号处理实验报告1.docx
《数字信号处理实验报告1.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告1.docx(16页珍藏版)》请在冰豆网上搜索。
数字信号处理实验报告1
数字信号处理实验报告
实验1 常见离散信号产生和实现
一、实验课题:
常见离散信号产生和处理
二、实验目的:
1.熟悉matlab环境以及主要操作命令;
2.掌握一些绘图函数的使用;
3.加深对常用离散信号的理解;
4.绘制常用离散时间信号的波形;
3、实验原理
1.单位抽样序列
在matlab中可以利用zeros函数实现
;
;
如果
在时间轴上延迟了k个单位,得到
即:
2.单位阶跃信号
在matlab中可以利用ones函数实现
3.正弦函数
在matlab中
n=0:
N-1;
;
4.复指数序列
在matlab中
n=0:
N-1;
;
5.指数序列
在matlab中
n=0:
N-1;
;
4、函数生成内容和函数图形的生成
五种基本函数的生成
程序如下
(1)单位抽样序列
%单位抽样序列和延时的单位抽样序列
clf;
n=0:
10;
x1=[1,zeros(1,10)];x2=[zeros(1,5),1,zeros(1,5)];
subplot(1,2,1);
stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('单位抽样序列x1');
subplot(1,2,2);
stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');
图形如下:
(2)单位阶跃信号
clf;
n=0:
10;
u=[ones(1,11)];
stem(n,u);xlabel('时间序列n');ylabel('振幅');title('单位抽样序列');
所得的图形如下:
(3)正弦函数
clf;
n=1:
10;
x=2*sin(pi*n/6+pi/3);
stem(n,x);xlabel('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');
图形如下:
(4)复指数序列
clf;
n=1:
30;
x=2*exp(j*3*n);
stem(n,x);xlabel('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)');
图形如下:
(5)指数序列
clf;
n=1:
30;
x=1.2.^n;
stem(n,x);xlabel('时间序列n');ylabel('振幅');title('复指数序列x=1.2.^n');
图形如下:
2、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。
(1)、方波绘图程序如下:
%用square
t=2*pi:
0.001:
2*pi;
x=square(t);
plot(t,x);
xlabel('t'),ylabel('x=square(t)');
(2)三角波绘图程序如下:
%用swatooth
t=-2*pi:
0.001:
2*pi;
y=swatooth(t);
plot(t,y);
xlabel('t'),ylabel('y=swatooth(t)');
图形如下:
(3)Sinc函数绘图程序如下:
>>t=-pi:
0.001:
pi;x=sinc(t);
>>plot(t,x);
>>xlabel('t'),ylabel('sinc(t)');
图形如下:
3.信号的周期性分析
(1)绘出函数
,当
时、z=1/12、
、
时的信号实部和虚部图,判断起周期性?
程序如下:
clf;
z1=-1/12+j*pi/6;z2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;
n=0:
20;
x1=exp(z1*n);x2=exp(z2*n);x3=exp(z3*n);x4=exp(z4*n);x5=exp(z5*n);
subplot(5,2,1);
Stem(n,real(x1));xlabel('时间序列n');ylabel('实部');title('复指数z1=-1/12+j*pi/6时序列实部');
subplot(5,2,2);
stem(n,imag(x1));xlabel('时间序列n');ylabel('虚部');title('复指数z1=-1/12+j*pi/6时序列虚部');
subplot(5,2,3);
Stem(n,real(x2));xlabel('时间序列n');ylabel('实部');title('复指数z2=1/12+j*pi/6时序列实部');
subplot(5,2,4);
stem(n,imag(x2));xlabel('时间序列n');ylabel('虚部');title('复指数z2=1/12+j*pi/6时序列虚部');
subplot(5,2,5);
stem(n,real(x3));xlabel('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部');
subplot(5,2,6);
stem(n,imag(x3));xlabel('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部');
subplot(5,2,7);
stem(n,real(x4));xlabel('时间序列n');ylabel('实部');title('复指数z4=2+j*pi/6时序列实部');
subplot(5,2,8);
stem(n,imag(x4));xlabel('时间序列n');ylabel('虚部');title('复指数z4=2+j*pi/6时序列虚部');
subplot(5,2,9);
stem(n,real(x5));xlabel('时间序列n');ylabel('实部');title('复指数z5=j*pi/6时序列实部');
subplot(5,2,10);
stem(n,imag(x5));xlabel('时间序列n');ylabel('虚部');title('复指数z5=j*pi/6时序列虚部');
以上图形的实部部分可以看出z=pi/6时,序列周期为12计算序列周期为2*6=12实验和理论相符。
绘出
,判断其周期是多少?
产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期?
程序如下:
clf;
n=0:
40;
x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n);
subplot(1,2,1);
stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)');
subplot(1,2,2);
stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)');
运行结果如下;
由上图看出:
x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。
理论计算中对第一个,n=2*pi/(0.1*pi)=10,第二个0.9不是pi的倍数,所以不是周期的。
因此看出,实验结果和理论相符。
五、实验问题
1.当一个连续的正弦信号被冲激采样成为离散正弦序列的时候,是否一定是周期的?
若不是,那一般情况下离散正弦序列满足什么样的条件才是具有周期性呢?
请寻找参考资料并在MATELAB的验证下总结这个结论。
离散正弦序列就是一个连续的正弦信号被一系列冲激函数采样后的结果,原连续正弦函数一定是周期的,但采样后的离散序列却不一定是周期的。
对于离散序列x=sin(n*w)来说,只有当2*pi/w是一个有理数时,也就是说当w是pi的倍数时,此离散序列才是周期的。
所以在本试验中x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的,因为0.9不是pi的倍数。
2.离散复指数序列在满足什么样条件时才是周期序列呢?
请寻找参考资料并在MATELAB的验证下总结这个结论。
对于离散复指数函数x=a*exp(z*n),只有当z是纯虚数,且纯虚数的系数是pi的倍数时,才是周期的。
其他情况均不是。
这个性质由本次试验中的五个函数的图像可以被证明。
3.请使用MATELAB完成教材课后习题p35.1、2、3题。
6、课后练习
P351.1:
程序如下:
clf;
n=1:
30;
x=2*sin(pi*n*16/5);
stem(n,x);xlabel('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');
图形如下:
答:
它是一个周期序列,周期长度T=5。
1.2
(1)程序如下:
clf;
n=1:
30;
x=cos(pi*n*3/7-pi/4);
stem(n,x);xlabel('时间序列n');ylabel('振幅');title('余弦函数序列x=cos(pi*n*3/7-pi/4)');
图形如下:
答:
它是一个周期序列,周期长度T=14.
(2)程序如下:
clf;
n=1:
30;
x=sin(pi*n/4)-cos(pi*n/7);
stem(n,x);xlabel('时间序列n');ylabel('振幅');title('三角函数序列x=sin(pi*n/4)-cos(pi*n/7)');
图形如下:
答:
它是一个非周期序列。
1.3
(1)程序如下:
clf;
n=-4:
3;x=zeros(0,7);x(5)=1;
x1=[zeros(1,1)3zeros(1,6)];
x2=[zeros(1,3)2zeros(1,4)];
x3=[zeros(1,5)4zeros(1,2)];
x4=[zeros(1,6)2zeros(1,1)];
x5=x1+x2-x3+x4;
subplot(1,1,1);
stem(n,x5);xlabel('时间序列n');ylabel('振幅');title('单位抽样序列x');
图形如下:
(2)程序如下:
clf;
n=0:
12;
x=0.5.^n.*(double(n)-double(n-5));
subplot(1,1,1);
stem(n,x);gridon;
title('x(n)');axis([01201]);
图形如下: