数字信号处理实验讲义2016-9-2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 常见离散信号产生和实现
一、实验目的
1.加深对常用离散信号的理解;
2.掌握matlab 中一些基本函数的建立方法。
二、实验原理
1.单位抽样序列
如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:
2.单位阶跃序列
3.正弦序列
)/2sin()(ϕπ+=Fs fn A n x
在MATLAB 中,
n=0:N-1;
x=A*sin(2*pi*f 0*n/fs+phi)
4.复指数序列
n j e r n x ϖ⋅=)(
在MATLAB 中,
n=0:N-1;
x=r*exp(j*w*n)
5.指数序列
n a n x =)(
在MATLAB 中,
n=0:N-1;
x=a.^n
三、实验内容实现和图形生成
1.五种基本函数的生成
程序如下:
(1)单位抽样序列
方法一:
% 单位抽样序列和延时的单位抽样序列
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');grid on;
subplot(1,2,2);stem(n,x2,'.'); xlabel('时间序列n');ylabel('振幅');
title('延时了5的单位抽样序列'); grid on;
方法二:
先在matlab中定义单位抽样序列:
function [x,n]=impseq(n1,n2,n0)
n=[n1:n2];
x=[(n-n0)==0]; /n等于n0时1
在运行命令:
[x,n]=impseq(-5,5,3)
stem(n,x,'.');xlabel('n');title('单位抽样序列x');grid
(2)单位阶跃序列
方法一:
n=-4:6;
u=[zeros(1,4) ones(1,7)];
stem(n,u,'.');xlabel ('时间序列n');ylabel('振幅');title('单位阶跃序列');grid 所得的图形如下所示:
方法二;
先在matlab中定义单位阶跃序列:
function [x,n]=stepseq(n1,n2,n0)
n=[n1:n2];
x=[(n-n0)>=0];
在运行命令:
[x,n]=stepseq(-5,5,3)
stem(n,x,'.');xlabel('n');title('单位阶跃序列x');grid
(3)正弦函数
n=-5:20;
x=2*sin(pi*n/6+pi/3); stem(n,x,'.'); xlabel ('时间序列n'); ylabel('振幅'); title('正弦函数序列x=2*sin(pi*n/6+pi/3)');grid on
(4)复指数序列
n=-5:30;
x=2*exp(j*3*n);
stem(n,real(x),'.'); xlabel ('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)的实部');grid on
图形如下:
(5)指数序列
n=1:30;
x=1.2.^n;
stem(n,x,'.'); xlabel ('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n'); grid on
2、绘出信号sn e n x =)(,当6121πj s +-
=、6121πj s +=、121=s 、62πj s +=、6
πj s =时的信号实部和虚部图;
程序如下:
s1=-1/12+j*pi/6;s2=1/12+j*pi/6;s3=1/12;s4=2+j*pi/6;s5=j*pi/6;
n=0:20;
x1=exp(s1*n);x2=exp(s2*n); x3=exp(s3*n);x4=exp(s4*n); x5=exp(s5*n);
subplot(5,2,1);stem(n,real(x1),'.'); xlabel ('时间序列n');ylabel('实部'); title('复指数s1=-1/12+j*pi/6时序列实部');grid on
subplot(5,2,2);stem(n,imag(x1),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s1=-1/12+j*pi/6时序列虚部');grid on
subplot(5,2,3);stem(n,real(x2),'.'); xlabel ('时间序列n');ylabel('实部'); title('复指数s2=1/12+j*pi/6时序列实部');grid on
subplot(5,2,4);stem(n,imag(x2),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s2=1/12+j*pi/6时序列虚部');grid on
subplot(5,2,5);stem(n,real(x3),'.'); xlabel ('时间序列n');ylabel('实部');
title('复指数s3=1/12时序列实部');grid on
subplot(5,2,6);stem(n,imag(x3),'.'); xlabel ('时间序列n');ylabel('虚部');
title('复指数s3=1/12时序列虚部');grid on
subplot(5,2,7);stem(n,real(x4),'.'); xlabel ('时间序列n');ylabel('实部');
title('复指数s4=2+j*pi/6时序列实部');grid on
subplot(5,2,8);stem(n,imag(x4),'.'); xlabel ('时间序列n');ylabel('虚部');
title('复指数s4=2+j*pi/6时序列虚部');grid on
subplot(5,2,9);stem(n,real(x5),'.'); xlabel ('时间序列n');ylabel('实部');
title('复指数s5=j*pi/6时序列实部');grid on
subplot(5,2,10);stem(n,imag(x5),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s5=j*pi/6时序列虚部');grid on
由图的实部部分可以看出,s=j*pi/6时,序列周期为12。计算序列周期为2*pi/(pi/6)=12。实验和理论相符。