数字信号处理实验讲义2016-9-2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。实验和理论相符。

相关文档
最新文档