通信14 数字信号处理 实验指导书讲解文档格式.docx
《通信14 数字信号处理 实验指导书讲解文档格式.docx》由会员分享,可在线阅读,更多相关《通信14 数字信号处理 实验指导书讲解文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
2.注意实验报告要求分析组织有条理,截图美观,结论正确。
实验1Matlab基本操作、数组及矩阵运算
实验目的
熟悉Matlab工作环境和基本操作,熟悉Matlab数组及矩阵运算。
实验内容
1.熟悉Matlab工作环境,掌握clc,clear,cd这几个常见命令。
图1MATLAB桌面,具体布局可能因机器和版本的不同而会有轻微变化
2.假设x=3,y=4。
利用MATLAB计算下列表达式:
,
要求:
(1)在命令窗口直接输入,得到运算结果;
(2)编写M文档并在命令窗口执行,然后用工作空间平台查看有哪些变量在当前工作区。
3.一小球从空中下落的位移公式为:
利用MATLAB计算小球在t=5s时的位置,已知:
.
4.通过以下两种方式得到关于exp函数的帮助:
(1)在命令窗口中输入helpexp命令。
(2)运用帮助空间窗口。
5.
计算函数
在
为如下取值时候的函数值,
取4.9,3.2,100,1.5,9.75,2.56,16,4.9,10。
6.确定下列数组的大小,通过whos或工作空间窗口(Theworkspacebrowser)检查你的答案。
注意在本练习中后面的数组可能要用到前面数组的定义。
(1)u=[1020*i10+20]
(2)v=[-1;
20;
3]
(3)w=[10-9;
2-20;
123]
(4)x=[u'
v]
(5)y(3,3)=-7
(6)z=[zeros(4,1)ones(4,1)zeros(1,4)'
]
(7)v(4)=x(2,1)
1).w(2,1)的值是多少?
2).x(2,1)的值是多少?
3).y(2,1)的值是多少?
7.c数组的定义如下,写出下面子数组的内容。
c=
1.1000
-3.2000
3.4000
0.6000
0.6000
-0.6000
3.1000
1.3000
5.5000
(1)c(2,:
)
(2)c(:
end)
(3)
c(1:
2,2:
end)
(4)c(6)
(5)c(4:
end)(6)c(1:
4)(7)c([14],2)(8)c([22],[33])
8.当赋值语句执行后,下列数组的内容是多少?
(1)a=[123;
456;
789];
a([31],:
)=a([13],:
);
(2)a=[123;
a([13],:
)=a([22],:
(3)a=[123;
a=a([22],:
9.当数组执行后,下列数组a的内容是多少?
(1)a=eye(3,3);
b=[123];
a(2,:
)=b;
(2)a=eye(3,3);
b=[456];
a(:
3)=b'
;
(3)a=eye(3,3);
b=[789];
a(3,:
)=b([312]);
(4)a=eye(3,3);
10.假设a,b,c和d的定义如下:
分别运行出下列表达式的运算结果,并思考。
(1)a+b
(2)a.*c
(3)a*b
(4)a*c
(5)a+c
(6)a+d
(7)a.*d
(8)a*d
实验2常见数字信号的产生与显示
1.实验目的
复习MATLAB的使用方法和基本功能;
熟悉单位冲激序列、单位阶跃序列、矩形序列和指数序列等常用序列的产生;
掌握利用MATLAB画图函数显示信号波形的方法。
2.实例分析
2.1常用离散序列的产生和图形显示
例1.1产生单位冲激序列
在MATLAB中,函数zeros(1,N)产生一个N个零的行向量,利用它可以实现在有限区间上的单位冲激序列。
按照之前学习过的MATLAB编程方法,将下列指令编辑到“exlimp.m”文件中。
%exe1imp.m利用zeros(1,N)产生单位冲激序列
clear;
%清除空间变量
clc;
%清除屏幕
n=-49:
49;
%定义横坐标轴
x=zeros(1,99);
%MATLAB中数组下标从1开始
x(50)=1;
closeall;
%关闭所有窗口
stem(n,x);
%绘制离散序列数据
title('
单位冲激序列'
运行“exe1imp.m”文件将产生如图1-1所示的序列。
例1.2产生单位阶跃序列
在MATLAB中,函数ones(1,N)产生一个N个1的行向量,利用它可以实现在有限区间上的单位阶跃序列。
同样,将下列指令编辑到“exe1step.m”文件中。
%exe1step.m利用ones(1,N)产生单位阶跃序列
%定义横坐标
x=ones(1,99);
%MATLAB中数组下标从1开始
x(1:
49)=0;
单位阶跃信号序列'
运行“exe1step.m”文件将产生如图1-2所示的序列。
图2-1单位冲激序列
图2-2单位阶跃序列
例1.3产生矩形序列
在MATLAB中,符号函数sign(x)在x大于0时其值为1;
在x等于0时其值为0;
在x小于0时其值为-1。
利用它可以实现窗长度为N的矩形序列。
将下列指令编辑到“exe1rectang.m”文件中。
%exe1rectang.m利用sign(x)产生矩形序列
N=10;
n=0:
30;
x=sign(sign(N-1-n)+1);
n=-10:
x=[zeros(1,10),x];
矩形序列'
运行“exe1rectang.m”文件将产生如图1-3所示的序列。
图2-3矩形序列
例1.4产生实指数序列
在MATLAB中,可以用运算符“.^”,即点乘方实现实指数序列。
将下列指令编辑到“exe1relexp.m”文件中。
%exe1realexp.m利用运算符“.^”产生实指数序列
N-1;
a=0.5;
b=2;
x=a.^n;
y=b.^n;
subplot(1,2,1);
subplot(1,2,2);
stem(n,y);
运行“exe1realexp.m”文件将产生如图1-4所示的序列。
图2-4 实指数序列
例1.5产生正弦和余弦序列
将下列指令编辑到“exe1sincos.m”文件中。
N=50;
A=1;
f=50;
fs=1000;
x=A*sin(2*pi*f*n/fs);
y=A*cos(2*pi*f*n/fs);
运行“exe1sincos.m”文件将产生如图1-5所示的序列。
图2-5 正弦和余弦序列
例1.6产生复指数序列
复指数序列也称为复正弦序列,由余弦序列做实部,正弦序列做虚部构成。
在MATLAB中,函数exp(x)为指数函数,real(x)取x的实部,imag(x)取x的虚部,abs(x)求x的模值,angel(x)求x的幅角。
将下列指令编辑到“exe1exp.m”文件中。
x=exp(j*pi*n/6);
x_real=real(x);
x_imag=imag(x);
x_magnitute=abs(x);
x_phase=angle(x)*180/pi;
subplot(2,2,1);
stem(n,x_real);
xlabel('
x-real'
subplot(2,2,2);
stem(n,x_imag);
x-imag'
subplot(2,2,3);
stem(n,x_magnitute);
x-magnitute'
subplot(2,2,4);
stem(n,x_phase);
x-phase'
运行“exe1exp.m”文件将产生如图1-6所示的序列。
图2-6 复指数序列
2.2常用信号的产生和显示
例1.7产生均匀分布的白噪声信号
在MATLAB中,函数rand(x)产生均匀分布的随机数,利用它可以实现在有限区间上的白噪声信号。
将下列指令编辑到“exe1noise.m”文件中。
clear
N=500;
x=rand(1,N);
plot(x);
gridon;
hist(x);
运行“exe1noise.m”文件将产生如图1-7所示的图形显示。
图2-7 白噪声信号
例1.8产生信号处理中的sinc(t)函数。
已知
,将下列指令编辑到“exe1sinc.m”文件中。
N=200;
step=4*pi/N;
t=-2*pi:
step:
2*pi;
y=sinc(t);
plot(t,y,'
LineWidth'
2);
axis([-88