DSP-B实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 Matlab 的基本应用
一、实验目的
1、 掌握MATLAB 软件的基本使用方法。
2、 掌握变量和文件名的命名规则以及M 文件编辑器的基本使用方法。
3、 学会使用MATLAB 的帮助系统。
4、 掌握数组的构造方法和数组、矩阵的四则运算。
5、 掌握绘图常用函数的使用。
6、 掌握简单的脚本文件和函数文件的编写及调试方法。
二、实验内容与要求
1. 已知1u =,3v =,用MATLAB 分别执行下列语句。并在实验报告中记录语句和结果。
a. 43u v
b. ()
222v u v -+ c. 3
33
v v u - d.243v π 注意:变量名的命名规则。
2. 在M 文件编辑器中编写程序画出函数0.22x y e -=的图形,要求标注相关信息(如标题、横坐标、纵坐标等)以增加图形的可读性。
3. 构造数组并回答以下指令运行后的结果是什么。在实验报告中列出方法和结果
1.1 3.2 3.40.60.6 1.10.6 3.11.30.6 5.50A -⎡⎤
⎢⎥=-⎢⎥
⎢⎥⎣⎦
(1)求矩阵A 的大小,(提示:函数size)。并回答它与length(A)的区别是什么?
(2)A(:, 3) A(3, :) A (2,3) A (2:end,:) A(1,[1 3]) (3 ) 列出数组A 中所包含的数值0.6的下标。提示:用函数find 。 (4)A (1:2,[1 4])=[20 21; 22 23]
4. 构造以下数组并回答以下表达式的结果是什么。在实验报告中列出方法和结果
⎥⎦⎤⎢⎣⎡--=2122a ⎥⎦
⎤
⎢⎣⎡-=2011b
⎥⎦
⎤
⎢⎣⎡-=21c )2(eye d =
(1)r = a + b; (2)r = a * d; (3)r = a .* d; (4)r = a * c; (5)r = a .* c; (6)r = a \ b; (7)r = a .\ b; (8)r = a .^ b; (9)r=a.*[c c]
5. 运行下列语句,回答以下命令运行的结果。
回答这几个函数的作用,并比较它们之间的区别。
6. 编写脚本文件。输入一组数据(数据可为正、负或零),根据以下公式计算其平均值和标准方差。(注:采用for 循环)
∑==
N
i i
x
N
x 1
1
注意:学习程序的调试方法。
7. (选做)编写函数文件,通过输入不同的x,y 值,根据以下公式计算f(x,y)的值并显示。
⎪⎪⎩⎪
⎪⎨⎧<<+≥<+<≥+≥≥+=0,00,00,00,0),(222
2y x y
x y x y x y x y x y x y x y x f
注意:函数文件的编写格式和调用方法。
实验2 序列的时域表示与运算
一、实验目的
1. 掌握离散时间信号的表示;
2. 掌握离散时间信号的基本运算(加、减、乘、反折、移位)的规则;
3. 能用MATLAB 进行简单的编程;
4. 学习MATLAB 函数的调用,实现序列的显示和运算。
二、实验内容与要求
请在实验报告中记录以下程序和结果
1.用MATLAB 产生并画出下列序列的样本。
1)
()()()10
10()1[221],025m x n m n m n m n δδ==+----≤≤∑
2) ()()()()()()2
2()[56]10200.5[410]n
x n n u n u n n u n u n δ=+--++--- 3) ()3()0.9cos(0.2/3),020n
x n n n ππ=+≤≤ 4)
()24()10cos(0.0008),0100x n n w n n π=+≤≤,式中()w n 是在[-1,1]之间均匀分
布的随机序列;
2. 学习函数的调用。设}1,2,3,4,5,6,7,6,5,4,3,2,1{)(↑
=n x ,求解并画出下面序列。
)4(3)5(2)(1+--=n x n x n y )2()()3()(2---=n x n x n x n y 3. 已知序列1010][)3.01.0(≤≤-=+-n e n x n
j ,在一个图形窗中分别画出该序列的
实部、虚部、幅值和相位图。
注:学习abs 、angle 、real 、imag 、subplot 、title 函数的使用。
4. 若线性时不变系统的单位样值响应为)()6.0()(n u n h n =,输入序列
)10()()(--=n u n u n x ,求系统的输出)(n y ,并画出其波形图。(思考:你可以用几种
方法来实现?)
三、实验所用部分函数如下
1.单位冲激序列(信号)生成函数impseq
[x,n] = impseq(n0,n1,n2)
2.阶跃序列(信号)生成函数stepseq
[x,n] = stepseq(n0,n1,n2)
3.序列(信号)相加函数sigadd
[y,n] = sigadd(x1,n1,x2,n2)
以上为MATLAB没有,需外加入的函数(将相应函数拷贝到自己当前目录下)
4. 正(余)弦生成函数sin、cos
y = sin(x) ,y = cos(x) (注意:x以弧度为单位)
5. 随机序列生成函数rand,用法如:
Y = rand (n) 生成n×n阶的均匀分布随机阵;
Y = rand (m, n) 生成m×n阶的随机阵;
rand 返回在[0,1]区间上的一个随机数;
将上面的rand写成randn则可以生成均值为0、方差为1的正态分布的随机变量。
6.全1矩阵生成函数ones (m, n) :生成m×n阶全1矩阵
7.全0矩阵生成函数zeros (m, n) :生成m×n阶全0矩阵
8.离散序列绘图函数stem
stem (y) 以1、2、3…为横坐标, y为纵坐标画杆形图;
stem(x, y) 以x为横坐标, y为纵坐标画杆形图(x与y数据个数必须一致);
stem (…,’fill’)选项’fill’指定杆顶为实心,若无此选项则默认空心。
9.线性坐标平面绘图函数plot
用法与stem 类似,具体用法可查看MATLAB帮助
以上为MATLAB内置函数(在此仅为同学复习MATLAB提供)
四、参考程序
1.典型序列函数
1)单位阶跃函数(the step sequence)
function [x,n] = stepseq(n0,n1,n2)
% Generates x(n) = u(n-n0); n1 <= n,n0 <= n2
% ------------------------------------------
% [x,n] = stepseq(n0,n1,n2)