实验报告模板-实验一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一离散时间信号的MATLAB实现
课程名称:数字信号处理实验日期:2016.4.21
班级:数媒1403 姓名:李欣学号:1030514327
一、实验目的
掌握:(1) 序列的生成; (2) 离散序列的基本运算与波形变换的MATLAB实现;
(3) 线性时不变系统求解的MATLAB实现; (4) 序列的傅里叶变换与信号重构MATLAB实现
二、实验要求
按照实验材料内容,利用MATLAB编程实现相关任务。
三、实验步骤
(以实验材料第四部分“序列的傅里叶变换与信号重构MATLAB实现”为例,给出实验步骤描述、相关代码等。)
程序如下:
Dt=0.00005;
t=-0.005: Dt:0.005;
xa=exp(-1000*abs(t));
%模拟信号
Wmax=2*pi*2000;
K=500;
k=0:1:K;
W=k*Wmax/K;
%连续时间傅立叶变换
Xa=xa*exp(-1i*t'*W)*Dt;
Xa=real(Xa);
W=[-fliplr(W),W(2:501)];
Xa=[fliplr(Xa),Xa(2:501)];
figure(1)
subplot(2,1,1);
plot(t*1000,xa,'.');
xlabel('t in msec');
ylabel('xa(t)');
gtext('模拟信号');
subplot(2,1,2);
plot(W/(2*pi*1000),Xa*1000,'.');
xlabel('Frequence in KHz');
ylabel('Xa(jw)*1000');
gtext('连续时间傅立叶变换');
程序运行结果:
程序如下:
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=500;
k=0:1:K;
w=pi*k/K; %离散时间傅立叶变换
X=x*exp(-1i*n'*w);
X=real(X);
w=[-fliplr(w),w(2:501)];
X=[fliplr(X),X(2:501)];
figure
subplot(2,1,1);
plot(t*1000,xa,'.');
ylabel('xa1(t)');
gtext('离散信号');
hold on ;
stem(n*Ts*1000,x);
hold off ;
subplot(2,1,2);
plot(w/pi,X,'.');
ylabel('X1(jw)');
gtext('离散时间傅立叶变换');
gtext('Ts=0.2msec')
程序运行结果:
程序如下:
Ts1=0.0002;
Fs1=1/Ts1;
n1=-25:1:25;
nTs1=n1*Ts1; %离散时间信号
x1=exp(-1000*abs(nTs1));
Ts2=0.001;
Fs2=1/Ts2;n2=-5:1:5;
nTs2=n2*Ts2;
x2=exp(-1000*abs(nTs2));
Dt=0.00005;
t=-0.005:Dt:0.005; %模拟信号重构
xa1=x1*sinc(Fs1*(ones(length(nTs1),1)*t-nTs1'*ones(1,length(t))));
xa2=x2*sinc(Fs2*(ones(length(nTs2),1)*t-nTs2'*ones(1,length(t))));
subplot(2,1,1);
plot(t*1000,xa1,'.');
ylabel('xa1(t)');
title('从x1(n)重构模拟信号xa(t)');
hold on;
stem(n1*Ts1*1000,x1);
hold off;
subplot(2,1,2);plot(t*1000,xa2,'.');
ylabel('xa2(t)');
title('从x2(n)重构模拟信号xa(t)');
hold on;
stem(n2*Ts2*1000,x2);
hold off
程序运行结果:
四、实验体会
(1) 掌握了MATLAB的基本操作以及学会了序列的生成;
(2) 学会了用MATLAB实现离散序列的基本运算与波形变换;
(3) 学会了用MATLAB实现线性时不变系统求解;
(4) 学会了用MATLAB实现序列的傅里叶变换与信号重构