此文档适用于河北工业大学数字信号处理实验内容,请按照需求进行学习,并仅做学习参考使用,如您发现有任何错误请评论区或者私信告知,谢谢。
一、实验目的
1. 了解 MATLAB 语言的主要特点及作用。
2. 熟悉 MATLAB 主界面,初步掌握 MATLAB 命令窗和编辑窗的操作方法。
3. 学习简单的数组赋值、数组运算、绘图、流程控制的程序编写。
二、实验内容
1.列写“四、实验内容”中 1、2 项中各条命令的意义。
(1)简单的数组赋值方法
A=[1 2 3;4 5 6;7 8 9] 创建一个三乘三,值为1、2、3、4、5、6、7、8、9命名为A的数组
A(4,2)=11 在A数组的第四行第二列添加新元素11
A(5,:)=[-13 -14 -15] 在A数组的第五行从第一列开始添加三个元素-13、-14、-15
A(4,3)=abs(A(5,1)) 将A数组第五行第一列元素取绝对值运算后赋值于第四行第三列
A([2,5],:)=[] 将A数组的第二行和第五行清除
A/2 将A数组各个元素的值除以2
A(4,:)=[sqrt(3) (4+5)/6*2 -7] 在A数组第四行从第一列开始将中括号内运算后结果赋值上去
(2)
B=[1+2i,3+4i,5+6i,7+8i] 创建四个复数
C=[1,3;5,7]+[2,4;6,8]*i 创建四个复数
D=sqrt(2+3i) 给复数开根号
D*D 复数相乘
E=C’ 对C复数矩阵共轭转置赋值于E
F=conj(C) 计算复数共轭值赋值给F
G=conj(C)’ 对C计算共轭值后共轭转置赋值于G
(3)
H1=ones(3,2) 生成3*2的矩阵各元素为1
H2=zeros(2,3) 生成2*3的矩阵各元素为0
H3=eye(4) 生成4*4的单位矩阵
(4)输入A=[1 3 5],B=[2 4 6],求C=A+B,D=A-2,E=B-A。
C=A+B矩阵与矩阵相加为其两矩阵各个元素对应相加,矩阵大小要一致
D=A-2 矩阵减去常数为矩阵中各个元素的值减去常数
E=B-A矩阵减矩阵为两矩阵各个元素对应相减,矩阵大小要一致
求F1=A*3,F2=A.*B,F3=A./B,F4=A.\B,F5=B.\A,F6=B.^A,F7=2./B,F8=B.\2
F1=A*3矩阵乘以常数为矩阵各个元素值与常数相乘
F2=A.*B矩阵点乘矩阵为两矩阵各个元素值相乘
F3=A./B矩阵左除矩阵为左矩阵各个元素值除以右矩阵各个元素值
F4=A. \B矩阵右除矩阵为右矩阵各个元素值除以左矩阵各个元素值
F5=B. \A矩阵右除矩阵为右矩阵各个元素值除以左矩阵各个元素值
F6=B.^A B矩阵为各个元素为底,分别以A矩阵各个元素为次方值开方
F7=2./B 常数左除以矩阵为常数除以矩阵各个元素的值
F8=B. \2 矩阵右除以常数为常数除以矩阵各个元素的值
(5)求Z1=A*B’,Z2=B’*A。
Z1=A*B’ 矩阵A乘以矩阵B的转置,结果为常数
Z2=B’*A 矩阵B的转置乘以矩阵A,结果为矩阵
2.列写“四、实验内容”中 3、4 项中各练习题的程序,并打印运行结果。
练习题:
在读懂上述例题程序的基础上,请在同一图形窗口用 2×2 子图轴系描绘下列函数波形
(1) f(t)=4e^[-2t] (0<t<4)
(2) f(t)=e^[-t]cos(2πt) (0<t<3)
(3) f(k)=k (0<k<10)
(4) f(k)=ksin(k) (-20<k<20)
注意:上述练习题中出现的乘除运算是数组运算还是矩阵运算?应使用什么运算符?
代码:
t=0:0.01:4;f=4.*exp(-2.*t);
subplot(2,2,1),plot(t,f);
xlabel('t'),ylabel('f(t)');
title('f(t)=4e^[-2t] (0<t<4)');
t=0:0.1:3;f=exp(-t).*cos(2.*pi.*t);
subplot(2,2,2),plot(t,f);
xlabel('t'),ylabel('f(t)');
title('f(t)=e^[-t]cos(2πt)');
k=0:0.1:10;f=k;
subplot(2,2,3),plot(k,f);
xlabel('k'),ylabel('f(k)');
title('f(k)=k');
k=-20:0.1:20;f=k.*sin(k);
subplot(2,2,4),plot(k,f);
xlabel('k'),ylabel('f(k)');
title('f(k)=ksin(k)');
结果:
结论:第一个函数的波形图在图1左上方,第二个函数的波形图在图1右上方,第三个函数的波形图在图1左下方,第四个函数的波形图在图4右下方。上述出现的乘除运算是数组运算,应当用点乘和点除。
练习题:
代码:
(1)
X=0;
for n=1:20
X=X+(2*n-1)^2;
end
X
(2)
X=0;
for n=1:99
X=X+n*(n+1);
end
X
(3)
a=linspace(1,20,20);a(1)=1;a(2)=1;
for k=1:18
a(k+2)=a(k)+a(k+1);
end
a
结论: