DSP实验报告一
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
phase = 0;
A = 1.5;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Clear old graph
stem(n,x); % Plot the generated sequence
axis([0 40 -2 2]);
grid;
title('Sinusoidal Sequence');
subplot(2,1,1);
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('Time index n');ylabel('Amplitude');
legend('d[n] ','s[n] ','x[n] ');
x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0];
1.3修改程序P1.1,以产生带有延时11个样本的延迟单位样本序列ud[n]。运行修改的程序并显示产生的序列。
1.6运行程序P1.2,以产生复数值得指数序列。
1.7哪个参数控制该序列的增长或衰减率?哪个参数控制该序列的振幅?
1.17运行程序P1.4,以产生正弦序列并显示它。
1.18该序列的频率是多少?怎样可以改变它?哪个参数控制该序列的相位?哪个参数控制该序列的振幅?该序列的周期是多少?
title('Real part');
subplot(2,1,2);
stem(n,imag(x));
xlabel('Time index n');ylabel('Amplitude');
title('Imaginary part');
指数序列的显示结果:
Q.17程序代码:
n = 0:40;
f = 0.1;
在本次实验中,我们初步掌握了数字信号处理中一些序列的产生和基本运算在MATLAB中实现的具体方法。加深了对理论知识的认识和理解,也进一步熟悉MATLAB的运用,为进一步的学习打下了坚实的基础。
1.各种离散时间信号的表示和基本运算的理论知识;
2.运用MATLAB产生不同的离散时间信号;
3.运用MATLAB对各序列进行基本运算。
五、实验步骤
1.根据实验题目要求进行分析;
2.运用所学知识用MATLAB编程实现题目要求;
3.对结果进行分析总结。
六、实验记录(数据、图表、波形、程序等)
Q1.1程序代码:
延迟单位样本序列ud[n]显示结果:
Q1.6程序代码:
clf;
c = -(1/12)+(pi/6)*i;
K = 2;
n = 0:40;
x = K*exp(c*n);
subplot(2,1,1);
stem(n,real(x));
xlabel('Time index n');ylabel('Amplitude');
y = (x1 + x2 + x3)/3;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--');
legend( 'y[n] ','s[n] ');
xlabel('Time index n');ylabel('Amplitude');
所产生相关信号显示:
七、实验思考题及解答
clf;
n = -10:20;
u = [zeros(1,10) 1 zeros(1,20)];
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence');
axis([-10 20 0 1.2]);
Q1.2命令clf,axis,title,xlabel和ylable的作用是什么?
答:clf:运行程序时弹出显示图像的面板;
axis:规定横纵坐标的范围;
title:使图像面板上方显示相应的题目名称;
xlable:定义横坐标的名字;
ylable:定义纵坐标的名字。
Q1.7哪个参数控制改序列的增长或衰减率?哪个参数控制该序列的振幅?
stem(n,x); % Plot the generated sequence
axis([0 49 -3 3]);
grid;
title('Sinusoidal Sequence');
xlabel('Time index n');
ylabel('Amplitude');
axis;
修改后的正选序列周期为12.5S,正选序列显示结果:
实验一离散时间信号的时域分析
实验室名称:实验时间:
姓名:学号:专业:指导教师:
成绩
教师签名:年月日
一、实验目的
1.学会使用MATLAB在时域中产生一些基本的离散时间信号,并对这些信号进行一些基本的运算;
2.学会使用基本的MATLAB命令,并将它们应用到简单的数字信号处理问题中。
二、实验内容
1.1运行程序P1.1,以产生单位样本序列u[n]并显示它。
1.23修改上述程序,以产生长度为50频率为0.08振幅为2.5相移为90度的一个正弦序列并显示它。该序列的周期是多少?
1.29运行程序P1.5,以产生所以相关的信号。
1.32信号小,x1,x2,x3与信号x之间的关系是什么?
三、实验器材及软件
1.微型计算机1台
2. MATLAB 7.0软件
四、实验原理
xlabel('Time index n');
ylabel('Amplitude');
axis;
正选序列的显示结果:
Q1.23程序代码:
n = 0:49;
f = 0.08;
phase = pi/2;
A = 2.5;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Biblioteka lear old graph答:参数c控制该序列的增长或衰减率;参数K控制该序列的振幅。
Q1.18该序列的频率是多少?怎样可以改变它?哪个参数控制该序列的相位?哪个参数控制该序列的振幅?该序列的周期是多少?
答:该序列的频率是0.1Hz;通过改变f的值可以此正弦序列的频率;参数phase控制该序列的初相位;参数A控制该序列的振幅;该序列的周期是10s。
序列u[n]显示结果:
Q1.3程序代码:
clf;
n = -10:20;
u = [zeros(1,21) 1 zeros(1,9)];
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence');
axis([-10 20 0 1.2]);
Q1.32信号x1,x2和x3与信号x之间的关系是什么?
答:x1是在信号x最前面插入两个零信号得到的;x2是在信号x的开始和结尾各插入一个零信号的得到的;x3是在信号x最后面插入两个领信号得到的。
八、实验结果分析与总结
在实验Q1.1中可以通过数组的组合便可以生成所要求的单位样本序列,通过改变Q1.1代码中数组的顺序和长度便可以得到Q1.3中所要求的延迟样本序列。构造一个复数,再代入e指数便可以得到复指数函数,求其相应的实部虚部后,可得到Q1.6所要求的指数序列。构造正选序列,要定义幅度、频率和相角,代入正弦函数公式便可以得到Q1.17所求得正弦序列,改变相应的指标便可得到Q1.23所要求的序列。在Q1.29中可以看出原信号被噪声污染后与原信号有所差异,通过三点滑动平均算法,对某时刻的样本附近的一些样本求平均可以使其逼近原信号,是产生输出信号的一种简单有效的方法。
Q1.29程序代码:
clf;
R = 51;
d = 0.8*(rand(R,1) - 0.5); % Generate random noise
m = 0:R-1;
s = 2*m.*(0.9.^m); % Generate uncorrupted signal
x = s + d'; % Generate noise corrupted signal
A = 1.5;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Clear old graph
stem(n,x); % Plot the generated sequence
axis([0 40 -2 2]);
grid;
title('Sinusoidal Sequence');
subplot(2,1,1);
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('Time index n');ylabel('Amplitude');
legend('d[n] ','s[n] ','x[n] ');
x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0];
1.3修改程序P1.1,以产生带有延时11个样本的延迟单位样本序列ud[n]。运行修改的程序并显示产生的序列。
1.6运行程序P1.2,以产生复数值得指数序列。
1.7哪个参数控制该序列的增长或衰减率?哪个参数控制该序列的振幅?
1.17运行程序P1.4,以产生正弦序列并显示它。
1.18该序列的频率是多少?怎样可以改变它?哪个参数控制该序列的相位?哪个参数控制该序列的振幅?该序列的周期是多少?
title('Real part');
subplot(2,1,2);
stem(n,imag(x));
xlabel('Time index n');ylabel('Amplitude');
title('Imaginary part');
指数序列的显示结果:
Q.17程序代码:
n = 0:40;
f = 0.1;
在本次实验中,我们初步掌握了数字信号处理中一些序列的产生和基本运算在MATLAB中实现的具体方法。加深了对理论知识的认识和理解,也进一步熟悉MATLAB的运用,为进一步的学习打下了坚实的基础。
1.各种离散时间信号的表示和基本运算的理论知识;
2.运用MATLAB产生不同的离散时间信号;
3.运用MATLAB对各序列进行基本运算。
五、实验步骤
1.根据实验题目要求进行分析;
2.运用所学知识用MATLAB编程实现题目要求;
3.对结果进行分析总结。
六、实验记录(数据、图表、波形、程序等)
Q1.1程序代码:
延迟单位样本序列ud[n]显示结果:
Q1.6程序代码:
clf;
c = -(1/12)+(pi/6)*i;
K = 2;
n = 0:40;
x = K*exp(c*n);
subplot(2,1,1);
stem(n,real(x));
xlabel('Time index n');ylabel('Amplitude');
y = (x1 + x2 + x3)/3;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--');
legend( 'y[n] ','s[n] ');
xlabel('Time index n');ylabel('Amplitude');
所产生相关信号显示:
七、实验思考题及解答
clf;
n = -10:20;
u = [zeros(1,10) 1 zeros(1,20)];
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence');
axis([-10 20 0 1.2]);
Q1.2命令clf,axis,title,xlabel和ylable的作用是什么?
答:clf:运行程序时弹出显示图像的面板;
axis:规定横纵坐标的范围;
title:使图像面板上方显示相应的题目名称;
xlable:定义横坐标的名字;
ylable:定义纵坐标的名字。
Q1.7哪个参数控制改序列的增长或衰减率?哪个参数控制该序列的振幅?
stem(n,x); % Plot the generated sequence
axis([0 49 -3 3]);
grid;
title('Sinusoidal Sequence');
xlabel('Time index n');
ylabel('Amplitude');
axis;
修改后的正选序列周期为12.5S,正选序列显示结果:
实验一离散时间信号的时域分析
实验室名称:实验时间:
姓名:学号:专业:指导教师:
成绩
教师签名:年月日
一、实验目的
1.学会使用MATLAB在时域中产生一些基本的离散时间信号,并对这些信号进行一些基本的运算;
2.学会使用基本的MATLAB命令,并将它们应用到简单的数字信号处理问题中。
二、实验内容
1.1运行程序P1.1,以产生单位样本序列u[n]并显示它。
1.23修改上述程序,以产生长度为50频率为0.08振幅为2.5相移为90度的一个正弦序列并显示它。该序列的周期是多少?
1.29运行程序P1.5,以产生所以相关的信号。
1.32信号小,x1,x2,x3与信号x之间的关系是什么?
三、实验器材及软件
1.微型计算机1台
2. MATLAB 7.0软件
四、实验原理
xlabel('Time index n');
ylabel('Amplitude');
axis;
正选序列的显示结果:
Q1.23程序代码:
n = 0:49;
f = 0.08;
phase = pi/2;
A = 2.5;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Biblioteka lear old graph答:参数c控制该序列的增长或衰减率;参数K控制该序列的振幅。
Q1.18该序列的频率是多少?怎样可以改变它?哪个参数控制该序列的相位?哪个参数控制该序列的振幅?该序列的周期是多少?
答:该序列的频率是0.1Hz;通过改变f的值可以此正弦序列的频率;参数phase控制该序列的初相位;参数A控制该序列的振幅;该序列的周期是10s。
序列u[n]显示结果:
Q1.3程序代码:
clf;
n = -10:20;
u = [zeros(1,21) 1 zeros(1,9)];
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence');
axis([-10 20 0 1.2]);
Q1.32信号x1,x2和x3与信号x之间的关系是什么?
答:x1是在信号x最前面插入两个零信号得到的;x2是在信号x的开始和结尾各插入一个零信号的得到的;x3是在信号x最后面插入两个领信号得到的。
八、实验结果分析与总结
在实验Q1.1中可以通过数组的组合便可以生成所要求的单位样本序列,通过改变Q1.1代码中数组的顺序和长度便可以得到Q1.3中所要求的延迟样本序列。构造一个复数,再代入e指数便可以得到复指数函数,求其相应的实部虚部后,可得到Q1.6所要求的指数序列。构造正选序列,要定义幅度、频率和相角,代入正弦函数公式便可以得到Q1.17所求得正弦序列,改变相应的指标便可得到Q1.23所要求的序列。在Q1.29中可以看出原信号被噪声污染后与原信号有所差异,通过三点滑动平均算法,对某时刻的样本附近的一些样本求平均可以使其逼近原信号,是产生输出信号的一种简单有效的方法。
Q1.29程序代码:
clf;
R = 51;
d = 0.8*(rand(R,1) - 0.5); % Generate random noise
m = 0:R-1;
s = 2*m.*(0.9.^m); % Generate uncorrupted signal
x = s + d'; % Generate noise corrupted signal