数字信号处理实验报告一

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:彭浩班别:电气2班学号:3113001318 实验一时域中的离散信号

一、实验目的

1.熟悉matlab程序。

2.掌握时域中的离散信号基本运算。

二、实验内容和要求

1.了解和掌握时域中的离散信号加、乘、移位、卷积等基本运算;

三、实验主要仪器设备和材料

1.计算机

2.Matlab软件

四、实验方法、步骤及结果测试

(1)连续信号和离散信号

问题:

请计算连续信号离散化后前五个点的绝对误差和相对误差。

程序如下:

dt=0.001;t=0:dt:6; % 建立连续自变量向量

xa=sqrt(t)+cos(t); % 原始的连续时间信号xa(t)

T=0.5;n=0:6/T; % T为采样周期,建立离散自变量向量

x=sqrt(n*T)+cos(n*T); % 采样周期为T的离散时间信号x(n)

deltax=0.5; % deltax为x的量化单位

xq=round(x/deltax)* deltax; % 舍入量化后的数字信号xq

n=1;

while n<=5 %循环五次分别前五个点的绝对误差和相对误差输出 ea=xq(n)-x(n)

er=ea/x(n)

n=n+1;

end

输出:(为了美观需要对输出格式做了调整)

ea =0 er =0

ea =-0.0847 er =-0.0534

ea =-0.0403 er =-0.0262

ea =0.2045 er =0.1579

ea =0.0019 er =0.0019

(2)离散信号基本序列及运算

问题:编程实现:

1)1() 1.5(1)(3)x n n n δδ=+--

程序如下:>> a=impseq(-1,-3,3);

b=impseq(3,-3,3);

x1=1.5*a-b

输出:x1 =

0 0 1.5000 0 0 0 -1.0000

2)令x=[1 -2 4 6 -5 8 10],产生并画出下列序列的样本:

X 2(n)=3x(n-4)+x(n-4)+2x(n)

程序如下:>> x=[1 -2 4 6 -5 8 10];

nx=1:7;

[a,na]=seqshift(x,nx,4);

b=4*a;

nb=na;

c=2*x;

nc=nx;

[x2,n2]=seqadd(b,nb,c,nc)

stem(x2)

输出:

x2 =

2 -4 8 12 -6 8 36 24 -20 32

40 n2 =

1 2 3 4 5 6 7 8 9 10 11

3)计算x 1+x 2,x 1*x 2,12x x ,(x 1、x 2同1),2)),绘制输出中间结果及最终结果。

程序如下:>> x1=[0 0 1.5 0 0 0 -1];

nx1=-3:3;

x2=[2 -4 8 12 -6 8 36 24 -20 32 40];

nx2=1:11;

[X1,N1]=seqadd(x1,nx1,x2,nx2) %X1为两个序列的和

[X2,N2]=seqmult(x1,nx1,x2,nx2) %X2为两个序列的积

[X3,N3]=convwthn(x1,nx1,x2,nx2) %X3为两个序列的卷积

输出:((为了美观需要对输出格式做了调整)

X1 =

Columns 1 through 13

0 0 1.5000 0 2.0000 -4.0000 7.0000 12.0000 -6.0000 8.0000 36.0000 24.0000 -20.0000

Columns 14 through 15

32.0000 40.0000

X2 = 0 0 0 0 0 0 -8 0 0 0 0 0 0 0 0

X3 = 0 0 3 -6 12 18 -11 16 46 24 -24 40 24 -24 20 -32 -40

五、实验感想

通过这次实验,我熟悉了matlab的相关操作,以及掌握了在时域中的离散信号加、乘、移位、卷积等基本运算。在实验中我也遇到了不少麻烦:首先之前对matlab接触较少,对其还是比较生疏,这直接影响了我在在课堂上完成实验的速度和准确率,其次,对于序列的运算,由于开始没注意且没调用函数,每次序列运算我都忽略了序列的位置向量问题,在运算前没有使两个序列的位置向量对齐就进行运算,还有就是序列乘法运算的时没有使用点乘,这都导致了我每次都得不出正确结果,后来调用了老师文件中的函数,使我解决了这些问题,我也在实验时查看了每一个调用函数里面函数体的内容,直到完全弄明白序列加、乘、移位、卷积等基本运算的在matlab中是如何实验的,总的来说,这是一次收益匪浅的实验,我一定会总结经验,争取下次实验做的更好。

相关文档
最新文档