1、数字信号处理实验报告一 数学与计算科学学院数字信号处理实验报告题 目: 熟悉MATLAB环境及简单序列运算 专 业: 信息与计算科学 学 号: 1309301-11 姓 名: 周露 指导教师: 胡振华教授 成 绩: 二零一五年 十一 月 二十 日目 录一 实验目的1二 实验内容及结果2一、实验目的(1)熟悉MATLAB的主要操作命令;(2)学会简单的矩阵输入和数据读写;(3)掌握简单的绘图命令;(4)用MATLAB编程并学会创建函数。二、实验内容及结果认真阅读讲义前面的“MATLAB简介”和本实验的“实验说明及程序示例”部分,在MATLAB环境下选择简介和说明中的部分例子重做一遍,体会各条命令
2、或指令的含义。在熟悉了MATLAB的基本命令的基础上,完成以下实验。1. 序列(一维数组)、矩阵(多维数组)的输入和特殊序列、矩阵的产生。(1)输入A=1 2 3 4, B=1, 2, 3, 4, C=1; 2; 3; 4, D=1 2 3; 4 5 6; 7 8 9, E=1, 2, 3; 4, 5, 6; 7, 8, 9, 比较各个变量的结果及特点。结果:输入如题要求代码后可知:A和B皆为一行四列的矩阵;C为一列四行的矩阵;D和E皆为三行三列的矩阵。(2)采用“”形式的指令(语句)产生一个等差序列,该序列A的初值为a、终值为b(或略小于b的一个值)、等差为x(若等差为1则可缺省该值)。产生
3、一个n=0, 1, 2, , 15的序列;改变a, x, b的值,比较各序列的结果与特点。 代码:A=0:15 便产生了一个n=0, 1, 2, , 15的序列; 改变a, x, b的值如下 代码:A=0:2:15 结果: A = 0 2 4 6 8 10 12 14 显然当x无法整除b时,产生序列的终值会小于b (3)利用ones, zeros, randn函数分别产生各个元素为“全1、全0、正态分布随机数”的序列和矩阵(行序列就是1N的矩阵,而列序列就是N1的矩阵)。改变函数参数,比较各个结果。 代码:A=zeros(1,4)B=zeros(4,1)C=ones(1,4)D=ones(4,
4、1)E=randn(1,4)F=randn(4,1)便产生了如题要求矩阵,改变括号的参数(x,y),便会产生x行y列的“全1、全0、正态分布随机数”的矩阵。2. 序列的简单运算。输入A=1 2 3 4, B=5 6 7 8, 求C=A+B, D=A-B, E=A.*B, F=A./B, H=A.3, I=A.B, 比较各个序列的结果(注意体会对应“点运算”的特点),并用stem语句画出各个序列。代码:A=1 2 3 4, B=5 6 7 8C=A+BD=A-BE=A.*BF=A./BH=A.3I=A.B结果:A = 1 2 3 4B = 5 6 7 8C = 6 8 10 12D = -4 -
5、4 -4 -4E = 5 12 21 32F = 0.2000 0.3333 0.4286 0.5000H = 1 8 27 64I = 1 64 2187 65536画图代码stem(c)Stem(D)Stem(E)Stem(F)Stem(H)Stem(I)3. 矩阵的简单运算。输入A=1 2 3; 4 5 6; 7 8 9, B=3 1 6; 7 9 2; 5 8 4, 求C=A+B, D=A-B, E=A*B, F=A .* B, G=A/B, H=A ./ B, I=A2, J=A .2, K=A .B。比较各个矩阵的结果(注意体会对应“点运算”的特点)。代码:A=1 2 3; 4 5
6、 6; 7 8 9, B=3 1 6; 7 9 2; 5 8 4C=A+BD=A-BE=A*BF=A .* BG=A/BH=A ./ BI=A2J=A .2K=A .B结果:C = 4 3 9 11 14 8 12 16 13D = -2 1 -3 -3 -4 4 2 0 5E = 32 43 22 77 97 58 122 151 94F = 3 2 18 28 45 12 35 64 36G = 0.1574 -0.4537 0.7407 0.5185 -0.2593 0.8519 0.8796 -0.0648 0.9630H = 0.3333 2.0000 0.5000 0.5714 0
7、.5556 3.0000 1.4000 1.0000 2.2500I = 30 36 42 66 81 96 102 126 150J = 1 4 9 16 25 36 49 64 81K = 1 2 729 16384 1953125 36 16807 16777216 65614. 应用函数length、size求取序列和矩阵的大小。先输入或生成一个序列和矩阵,用上述函数求序列和矩阵的大小,体会二者的作用和不同之处。代码:A=1 2 3; 4 5 6; 7 8 9B=1 2 3 4l=length(B)n, m=size(A)结果; l = 4n = 3m = 3* 5. 采用rand函数
8、分别产生两个长度不同的序列A、B。(1)修改序列A部分元素的值:将A的中间45个元素的值修改为“1”;(2)将A、B中长度较长的序列截短,使二者长度一致;(3)将A、B中长度较短的序列在后面补零加长,使二者长度一致;(4)求序列C:长度为A的一半,且各元素为A、B前一半元素的对应相加。(1)代码:A=rand(1,5)B=rand(1,4)A(2:5)=1结果: A = 0.9649 0.1576 0.9706 0.9572 0.4854B = 0.8003 0.1419 0.4218 0.9157A = 0.9649 1.0000 1.0000 1.0000 1.0000(2)代码A=ran
9、d(1,5)B=rand(1,4)l=length(B)A=A(1:l)结果A = 0.3922 0.6555 0.1712 0.7060 0.0318B = 0.2769 0.0462 0.0971 0.8235l = 4A =0.3922 0.6555 0.1712 0.7060(3)代码:A=rand(1,5)B=rand(1,4)l=length(A)B(l)=0结果:A = 0.0759 0.0540 0.5308 0.7792 0.9340B = 0.1299 0.5688 0.4694 0.0119l = 5B =0.1299 0.5688 0.4694 0.0119 0(4)代
10、码:A=rand(1,6)B=rand(1,4)l=(length(A)/2;a=A(1:l);b=B(1:l);c=a+b结果:A = 0.2400 0.4173 0.0497 0.9027 0.9448 0.4909B = 0.4893 0.3377 0.9001 0.3692c = 0.7292 0.7550 0.94976. 绘出下列时间函数的图形(注意:t的取值点选取合理,使绘出的图形恰当!),对图形的X轴Y轴以及图形上方均须加上适当的标注:(1);(2)。(1)代码:t=0 : 0.1 : 3 y=sin(t)plot(y)结果(2)代码:t=0 : 0.1 : 4y=(cos(2
11、0*pi*t).*(sin(pi*t)plot(y)结果:7. 编写函数weight_add(x1, x2, w),实现两个序列x1(n)、x2(n)的加权和运算:。函数参数中,x1、x2为输入序列,w为权值。给定两个序列x1、x2,绘出原序列和函数执行后得到的序列图形。运行代码:function y = weight_add(x1, x2, w) y = w.*x1+(1-w).*x2;endx1=randn(1,5)x2=randn(1,5)w=randn(1,5)C=weight_add(x1, x2, w);stem(C)运行结果:* 8. 编写函数stepshift(n0, n1, n2),实现u(n-n0), n1n0=0; stem(n,x,fill);xlable(时间序列n);ylable(u(n-n0)运行结果:请输入起点:2请输入终点8请输入阶跃位置6
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1