MATLAB实验二(修改)分解
实验二 信号的表示及其基本运算
一、实验目的
1、掌握连续信号及其MATLAB 实现方法;
2、掌握离散信号及其MA TLAB 实现方法
3、掌握离散信号的基本运算方法,以及MA TLAB 实现
4 熟悉应用MATLAB 实现求解系统响应的方法 4、了解离散傅里叶变换的MA TLAB 实现 5、了解IIR 数字滤波器设计 6、了解FIR 数字滤波器设计1
二、实验设备
计算机,Matlab 软件 三、实验内容
(一)、 连续信号及其MATLAB 实现 1、 单位冲激信号
()0,0()1,0
t t t dt ε
ε
δδε-?=≠??=?>???
例1.1:单位冲击信号的MATLAB 实现程序如下:
t1=-4; t2=4; t0=0; dt=0.01; t=t1:dt:t2; n=length(t); x=zeros(1,n);
x(1,(-t0-t1)/dt+1)=1/dt; stairs(t,x);
axis([t1,t2,0,1.2/dt]);
2、 任意函数
()()()f t f t d τδττ+∞
-∞
=-?
例1.2:用MA TLAB 画出如下表达式的脉冲序列
()0.4(2)0.8(1) 1.2() 1.5(1) 1.0(2)0.7(3)f n n n n n n n δδδδδδ=-+-+++++++
3 单位阶跃函数
1,0()0,
t u t t ?≥?=?
?
例1.3:用MA TLAB 实现单位阶跃函数
clear all;
t=-0.5:0.001:1; t0=0;
u=stepfun(t,t0); plot(t,u)
axis([-0.5 1 -0.2 1.2])
4 斜坡函数
0()()g t B t t =-
例1.4:用MA TLAB 实现g(t)=3(t-1) clear all; t=0:0.01:3; B=3; t0=1;
u=stepfun(t,t0); n=length(t); for i=1:n
u(i)=B*u(i)*(t(i)-t0); end plot(t,u)
axis([-0.2 3.1 -0.2 6.2])
5 抽样信号 抽样信号Sa(t)=sin(t)/t 在MATLAB 中用 sinc 函数表示。 定义为 )/(sin )(πt c t Sa =
t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on;
axis([-10,10,-0.5,1.2]); %定义画图范围,横轴,纵轴 title('抽样信号') %定义图的标题名字
6 指数函数
()at f t Ae =
例1.5:用MA TLAB 实现0.5()3t
f t e =
7 正弦函数
2()cos(
)t
f t A T π?=+ 例1.6:用MA TLAB 实现正弦函数f(t)=3cos(10πt+1) 8 虚指数信号
例 虚指数信号 调用格式是f=exp((j*w)*t) t=0:0.01:15;
w=pi/4; X=exp(j*w*t);
Xr=real(X); %取实部 Xi=imag(X); %取虚部 Xa=abs(X); %取模 Xn=angle(X); %取相位
subplot(2,2,1),plot(t,Xr),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]), title('实部');
subplot(2,2,3),plot(t,Xi),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]), title('虚部');
subplot(2,2,2), plot(t,Xa),axis([0,15,0,max(Xa)+1]),title('模');
subplot(2,2,4),plot(t,Xn),axis([0,15,-(max(Xn)+1),max(Xn)+1]),title('相角'); %subplot(m,n,i) 命令是建立m 行n 列画图窗口,并指定画图位置i 9 复指数信号
例 复指数信号 调用格式是f=exp((a+j*b)*t) t=0:0.01:3;
a=-1;b=10;
f=exp((a+j*b)*t);
subplot(2,2,1),plot(t,real(f)),title('实部') subplot(2,2,3),plot(t,imag(f)),title('虚部') subplot(2,2,2),plot(t,abs(f)),title('模') subplot(2,2,4),plot(t,angle(f)),title('相角')
(二)、离散信号及其MATLAB 实现 1、 单位冲激序列
1,0()0,
n n n δ?=?=?
≠??
例2.1:用MA TLAB 产生64点的单位冲激序列
clear all; N=64;
x=zeros(1,N); x(1)=1; xn=0:N-1; stem(xn,x)
axis([-1 65 0 1.1])
2、 任意序列
()()()m f n f m n m δ∞
=-∞
=
-∑
例2.2:用MA TLAB 画出如下表达式的脉冲序列
()8.0() 3.4(1) 1.8() 5.6(3) 2.9(4)0.7(5)f n n n n n n n δδδδδδ=+-++-+-+-
3、 单位阶跃序列
1,0()0,
n u n n ?≥?=?
?
例2.3:用MA TLAB 实现单位阶跃函数
4、 斜坡序列
0()()g n B n n =-
例2.4:用MA TLAB 实现g(n)=3(n-4)点数为32的斜坡序列 clear all; N=32; k=4 B=3; t0=1;
x=[zeros(1,k) ones(1,N-k)]; for i=1:N
x(i)=B*x(i)*(i-k); end
xn=0:N-1; stem(xn,x)
axis([-1 32 0 90])
5、 正弦序列
()sin(2)x n A fn π?=+
例2.5:用MA TLAB 实现幅度A=3,频率f=100,初始相位Φ=1.2,点数为32的正弦信号 6、 实指数序列
()n x n Aa =
例2.6:用MA TLAB 实现0.7
()3x n e =,点数为32的实指数序列
clear all; N=32; A=3; a=0.7; xn=0:N-1; x=A*a.^xn; stem(xn,x)
7、 复指数序列
()(),a j n x n Ae n ω+=?
例2.7:用MA TLAB 实现幅度A=3,a=0.7,角频率ω=314,点数为32的实指数序列 clear all;
N=32;
A=3;
a=0.7;
w=314;
xn=0:N-1;
x=A*exp((a+j*w)*xn);
stem(xn,x)
8、随机序列
利用MATLAB产生两种随机信号:
rand(1,N)在区间上产生N点均匀分布的随机序列
randn(1,N)产生均值为0,方差为1的高斯随机序列,即白噪声序列
例2.8:用MA TLAB产生点数为32的均匀分布的随机序列与高斯随机序列
clear all;
N=32;
x_rand=rand(1,N);
x_randn=randn(1,N);
xn=0:N-1;
figure(1);
stem(xn,x_rand)
figure(2);
stem(xn,x_randn)
(三)、离散信号的基本运算
1、信号的延迟
给定离散信号x(n),若信号y(n)定义为:y(n)=x(n-k),那么y(n)是信号x(n)在时间轴上右移k个抽样周期得到的新序列。
例3.1:正弦序列y(n)=sin(100n)右移3个抽样周期后所得的序列,MATLAB程序如下:clear all;
N=32;
w=100;
k=3;
x1=zeros(1,k);
xn=0:N-1;
x2=sin(100*xn);
figure(1)
stem(xn,x2)
x=[x1 x2];
axis([-1 N -1.1 1.1])
N=N+k;
xn=0:N-1;
figure(2)
stem(xn,x)
axis([-1 N -1.1 1.1])
利用for 循环语句实现周期延迟. 2、 信号相加
若信号12()()()x n x n x n =+,值得注意的是当序列1()x n 和2()x n 的长度不相等或者位置不对应时,首先应该使两者的位置对齐,然后通过zeros 函数左右补零使其长度相等后再相加 例3.2:用MA TLAB 实现两序列相加 clear all; n1=0:3
x1=[2 0.5 0.9 1]; figure(1) stem(n1,x1)
axis([-1 8 0 2.1] ) n2=0:7
x2=[ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; figure(2) stem(n2,x2)
axis([-1 8 0 0.8] ) n=0:7;
x1=[x1 zeros(1,8-length(n1))]; x2=[ zeros(1,8-length(n2)),x2]; x=x1+x2; figure(3) stem(n,x)
axis([-1 8 0 2.1])
已知f1(t)=sinwt , f2(t)=sin8wt , w=2pi , 求f1(t)+f2(t)和f1(t)f2(t) 的波形图
3、 信号相乘
信号序列1()x n 和2()x n 相乘所得信号()x n 的表达式为:12()()()x n x n x n =
这是样本与样本之间的点乘运算,在MA TLAB 中可采用“.*”来实现,但是在信号序列相乘之前,应对其做与相加运算一样的操作。 例3.3:用MA TLAB 实现上例中两序列相乘 clear all; n1=0:3
x1=[2 0.5 0.9 1]; figure(1) stem(n1,x1)
axis([-1 8 0 2.1] ) n2=0:7
x2=[ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; figure(2) stem(n2,x2)
axis([-1 8 0 0.8] ) n=0:7;
x1=[x1 zeros(1,8-length(n1))]; x2=[ zeros(1,8-length(n2)),x2]; x=x1.*x2; figure(3) stem(n,x)
axis([-1 8 0 0.35])
4、 信号翻转
信号翻转的表达式为:y(n)=x(-n),在MATLAB 中可以用fliplr 函数实现此操作 例3.4:用MA TLAB 实现“信号相加”中的1()x n 序列翻转 clear all; n=0:3
x1=[2 0.5 0.9 1]; x=fliplr(x1); stem(n,x)
axis([-1 4 0 2.1] )
5、 信号和
对于N 点信号()x n ,其和的定义为:1
()N
n y x n ==
∑
例3.5:用MA TLAB 实现“信号相加”中的1()x n 序列和 clear all; n=0:3
x1=[2 0.5 0.9 1]; x=sum(x1)
6、 信号积
对于N 点信号()x n ,其积的定义为:1
()N
n y x n ==
∏
例3.5:用MA TLAB 实现“信号相加”中的1()x n 序列积 clear all; n=0:3
x1=[2 0.5 0.9 1]; x=prod(x1) 7 卷积
1、 完成)(1t f 与)(2t f 两函数的卷积运算 其中:)4()()(),
()(221--==-t u t u t f t u e
t f t
在一个图形窗口中,画出)(1t f 、
)(2t f 以及卷积结果。要求每个坐标系有标题、坐标轴名称。
p=0.1; t=0:p:10;
f1=exp(-2*t).*u(t); f2=u(t)-u(t-4); f=conv(f1,f2); subplot(1,3,1); plot(t,f1,'r');
title('f1(t)=e^-2*t*u(t)'); xlabel('t(sec)'); ylabel('f1(t)'); subplot(1,3,2); plot(t,f2,'g');
title('f2(t)=u(t)-u(t-4)'); xlabel('t(sec)'); ylabel('f2(t)'); subplot(1,3,3); plot(f);
title('f(t)=f1(t)*f2(t)'); xlabel('t(sec)'); ylabel('f(t)');
四 MATLAB 在信号与系统中的应用
该实验用MATLAB 中库函数,如tf2zp(b,a),ss2zp(A,B,C,D),zplane(z,p),freqz(b,a)等。例如:
1.传递函数为
14.02
5.0)(2
2+++-=s s s s s H ,求其零极点图。 程序如下:
num=[1 0.5 2]; 分子系数,按降幂顺序排列 den=[1 0.4 1]; 分母系数,按降幂顺序排列 [z,p]=tf2zp(num,den); 用tf2zp 函数求出其零点z 和极点p zplane(z,p) 作出零极点图
2.若给出的是滤波器的输入与输出的状态方程,如:
u x x ??????+??????-='013101,[]u x y 0141+???
???-=,求其零极点图。 程序如下: A=[1,0;1,-3];
B=[1;0];
C=[-41
,1];
D=0;
[z,p]=ss2zp(A,B,C,D);求出其零极点z,p zplane(z,p)
在连续时间系统中,当极点在虚轴的右半平面时,系统不稳定,在虚轴上, 单阶极点系统稳定;若零点均处于左半平面内,则系统为最小相位系统。在离散系统中,极点在单位圆外系统不稳定,在单位圆上,单阶极点系统稳定;零点在单位圆内,系统为最小相位系统。
对一滤波器,我们不仅要知道它的零点和极点,还要了解它的频率特性,本实验可求其频率特性。
对模拟滤波器,可用freqs 函数求得其频率特性,对数字滤波器,则用freqz 函数求得。
3 已知模拟滤波器的传递函数为
14.01
3.02.0)(2
2++++=s s s s s H ,求其频率特性。 程序如下:
num=[0.2 0.3 1]; den=[1 0.4 1];
w=logspace(-1,1); 频率范围 freqs(num,den,w)
例4.数字滤波器212
14.013.02.0)(----++++=
z z z z z H ,取样点数为128点,求其频率特性。
程序如下:
num=[0.2 0.3 1]; den=[1 0.4 1]; freqz(num,den,128) 实验内容:
1.已知下列传递函数H(s)或H(z),求其零极点,并画出零极点图。
a. )2)(1()2)(1(3)(++--=s s s s s H
b.
s s H 1)(=
c.
521
)(2
2+++=s s s s H d.
1235
2236.0)(23
23++++++?=z z z z z z z H
2.已知下列H(s)或H(z),求其频响。 a. 111)(-+=
z z H
b.
122)(2++=
s s s s H
c.
22
161.01)1()(--++=
z z z H d. )2)(1()2)(1(3)(++--=
s s s s s H
1: 若某连续系统的输入为e (t ),输出为r (t ),系统的微分方程为:
''()5'()6()3'()2()y t y t y t f t f t ++=+
①求该系统的单位冲激响应h (t )及其单位阶跃响应g (t )。 ②若2()()t
f t e t ε-= 求出系统的零状态响应y(t )
分析: ① 求冲激响应及阶跃响应的MATLAB 程序:
a=[1 5 6];b=[3 2];
subplot(2,1,1), impulse(b,a,4) subplot(2,1,2), step(b,a,4)
运行结果如右:
② 求零状态响应的MATLAB 程序:
a=[1 5 6];b=[3 2];
p1=0.01; %定义取样时间间隔为0.01 t1=0:p1:5; %定义时间范围 x1=exp(-2*t1); %定义输入信号
lsim(b,a,x1,t1), %对取样间隔为0.01时系统响应进行仿真
hold on; %保持图形窗口以便能在同一窗口中绘制多条曲线 p2=0.5; %定义取样间隔为0.5 t2=0:p2:5; %定义时间范围 x2=exp(-2*t2); %定义输入信号
lsim(b,a,x2,t2), hold off %对取样间隔为0.5时系统响应进行仿真并解除保持
运行结果如下:
2 已知一个过阻尼二阶系统的状态方程和输出方程分别为:
010'()()()232x t X t f t ????=+????--????
, r (t )=[0 1]X (t ) 。
若系统初始状态为X (0)=[4 -5]T , 求系统在4()3()t
f t e t ε-=作用下的全响应。 求全响应程序如下:
A=[0 1 ; -2 -3] ;B=[0 2]';C=[0 1];D=[0];
X0=[4 -5]'; %定义系统初始状态 t=0: 0.01:10;
E =[3*exp(-4*t).*ones(size(t))]'; %定义系统激励信号
[r , x]=lsim(A,B,C,D,E,t,X0); %求出系统全响应的数值解 plot(t,r) %绘制系统全响应波形 运行结果如右。
3 已知描述离散系统的差分方程为:()0.25(1)0.5(2)()(1)y k y k y k f k f k --+-=+-,且已知系统输入序列为12()()()k
f k k ε=,
① 求出系统的单位函数响应h (k )在-3 ~10离散时间范围内响应波形。
② 求出系统零状态响应在0 ~15区间上的样值;并画出输入序列的时域波形以及系统零状态响应的波形
分析:①求系统的单位函数响应的MATLAB 程序:
a=[1,-0.25,0.5]; b=[1,1,0];
impz(b,a,-3:10), title('单位响应') %绘出单位函数响应在-3 ~10区间上的波形
运行结果如图a 。
②求零状态响应的MATLAB 程序:
a=[1,-0.25,0.5];b=[1,1,0]
k=0:15; %定义输入序列取值范围 x=(1/2).^k; %定义输入序列表达式
y=filter(b,a,x) %求解零状态响应样值 subplot(2,1,1),stem(k,x) %绘制输入序列的波形 title('输入序列')
subplot(2,1,2),stem(k,y) %绘制零状态响应的波形 title('输出序列')
运行结果如下:
y =
Columns 1 through 10
1.0000 1.7500 0.6875 -0.3281 -0.2383 0.1982 0.2156 -0.0218 -0.1015 -0.0086 Columns 11 through 16
图a. ①运行结果 图b. ②运行结果
实验内容
1. 已知描述系统的微分方程和激励信号e (t ) 分别如下,并用MATLAB 绘出系统单位冲激响应和系统零状态响应的波形.
①''()4'()4()'()3()y t y t y t f t f t ++=+;()()t
f t e t ε-= ②''()2'()26()'()y t y t y t f t ++=;()()f t t ε= ③''()4'()3()()y t y t y t f t ++=;2()()t
f t e t ε-=
④如下图所示的电路中,已知1234()R R R ===Ω,121()L L H ==,且两电感上初始电流分别为12(0)2(),(0)0()i A i A ==,如果以电阻3R 上电压()y t 作为系统输出,请求出系统在激励()12()f t t ε=(v )作用下的全响应。
2. 请用MATLAB 分别求出下列差分方程所描述的离散系统,在0~20时间范围内的单位函数响应、阶跃响应和系统零状态响应的数值解,并绘出其波形。另外,请将理论值与MATLAB 仿真结果在对应点上的值作比较,并说出两者的区别和产生误差的原因。
① ()2(1)(2)()y k y k y k f k +-+-=;14()()f k k ε=
② (2)0.7(1)0.1()7(2)2(1)y k y k y k f k f k +-++=+-+;()()f k k ε=
③ 5166()(1)(2)()(2)y k y k y k f k f k --+-=--;()()f k k ε=
④一带通滤波器可由下列差分方程描述:()0.81(2)()(2)y k y k f k f k +-=--, 其中()f k 为系统输入, ()y k 为系统输出。请求出当激励为
[]()1010cos(/2)10cos()()f k kn kn k ε=++(选取适当的n 值)时滤波器的稳态输出。
(四)、傅里叶变换的MATLAB 实现
①在MATLAB 中实现傅里叶变换的函数为:
F=fourier( f ) 对f(t)进行傅里叶变换,其结果为F(w)
F =fourier(f,v) 对f(t)进行傅里叶变换,其结果为F(v)
F=fourier( f,u,v ) 对f(u)进行傅里叶变换,其结果为F(v) ②傅里叶反变换
f=ifourier( F ) 对F(w)进行傅里叶反变换,其结果为f(x)
f=ifourier(F,U) 对F(w)进行傅里叶反变换,其结果为f(u)
f=ifourier( F,v,u ) 对F(v)进行傅里叶反变换,其结果为f(u) 例① 求门函数()(1)(1)f t t t εε=+--的傅里叶变换,并画出幅度频谱图
MATLAB 程序如下:
syms t w %定义两个符号变量t,w Gt=sym('Heaviside(t+1)-Heaviside(t-1)'); %产生门宽为2的门函数
Fw=fourier(Gt,t,w); %对门函数作傅氏变换求F(jw)
FFw=maple('convert',Fw,'piecewise'); %数据类型转换,转为分段函数,此处可以去掉
FFP=abs(FFw); %求振幅频谱| F(jw)|
ezplot(FFP,[-10*pi 10*pi]);grid; %绘制函数图形,并加网格 axis([-10*pi 10*pi 0 2.2]) %限定坐标轴范围
运行结果:Fw= exp(i*w)*(pi*Dirac(w)-i/w)-exp(-i*w)*(pi*Dirac(w)-i/w)
% Dirac(w)为δ(ω),即傅立叶变换结果中含有奇异函数,故绘图前需作函数类型
转换
FFw= -i*exp(i*w)/w+i*exp(-i*w)/w % FFw 为复数
FFP= abs(-i*exp(i*w)/w+i*exp(-i*w)/w) %求FFw 的模值
例② 求函数2
1
()1F j ωω
=
+的傅里叶反变换f (t ) MATLAB 程序如下:
syms t w %定义两个符号变量t,w Fw=sym('1/(1+w^2)'); %定义频谱函数F(jw)
ft=ifourier(Fw,w,t); %对频谱函数F(jw)进行傅氏反变换
运行结果: ft =
1/2*exp(-t)*Heaviside(t)+1/2*exp(t)*Heaviside(-t)
2、傅里叶变换的数值计算实现法
严格说来,如果不使用symbolic 工具箱,是不能分析连续时间信号的。采用数值计算方法实现连续时间信号的傅里叶变换,实质上只是借助于MATLAB 的强大数值计算功能,特别是其强大的矩阵运算能力而进行的一种近似计算。傅里叶变换的数值计算实现法的原理如下:
对于连续时间信号f(t),其傅里叶变换为:
()F j ω0
()lim
()j t
j n n f t e
dt f n e ωωττττ∞
∞
---∞
→=-∞
==∑
?
其中τ为取样间隔,如果f(t)是时限信号,或者当|t|大于某个给定值时,f(t)的值已经衰减得很厉害,可以近似地看成是时限信号,则上式中的n 取值就是有限的,假定为N ,有: ()F j ω1
()N j n n f n e
ωτ
τ
τ--==∑
若对频率变量ω进行取样,得:
()()k F k F j ω=1
()0k N j n n f n e k M ωτ
ττ--==<<∑
通常取:0
2k k k M
M ωπ
ωτ
=
=
,
其中0ω是要取的频率范围,或信号的频带宽度。采用MATLAB 实现上式时,其要点是要生成f(t)的N 个样本值()f n τ的向量,以及向量k j n e
ωτ
-,两向量的
内积(即两矩阵的乘积),结果即完成上式的傅里叶变换的数值计算。
注意:时间取样间隔τ的确定,其依据是τ必须小于奈奎斯特(Nyquist )取样间隔。如果f(t)不是严格的带限信号,则可以根据实际计算的精度要求来确定一个适当的频率0ω为信号的带宽。
例③ 用数值计算法实现上面门函数()(1)(1)f t t t εε=+--的傅里叶变换,并画出幅度频谱图.
分析: 该信号的频谱为()2()F j Sa ωω=,其第一个过零点频率为π,一般将此频率认为是信号的带宽。但考虑到()F j ω的形状(为抽样函数),假如将精度提高到该值的50倍,即取05050B ωωπ==,则据此确定的Nyquist 取样间隔为:0011
0.02222F τωπ
≤
==?。
MATLAB 程序如下:
R=0.02; %取样间隔τ=0.02 t=-2:R:2; % t 为从-2到2,间隔为0.02的行向量,有201个样本点 ft=[zeros(1,50),ones(1,101),zeros(1,50)]; % 产生f(t)的样值矩阵(即f(t)的样本值组
成的行向量)
W1=10*pi; %取要计算的频率范围
M=500; k=0:M; w=k*W1/M; %频域采样数为M, w 为频率正半轴的采样点 Fw=ft*exp(-j*t'*w)*R; %求傅氏变换F(jw) FRw=abs(Fw); %取振幅
W=[-fliplr(w),w(2:501)] ; %由信号双边频谱的偶对称性,利用fliplr(w)
形成负半轴的点,% w(2:501)为正半轴的点,函数fliplr(w)对矩阵w 行向量作180度反转
FW=[fliplr(FRw),FRw(2:501)]; %形成对应于2M+1个频率点的值
Subplot(2,1,1) ; plot(t,ft) ;grid; %画出原时间函数f(t)的波形,并加网格 xlabel('t') ; ylabel('f(t)'); %坐标轴标注 title('f(t)=u(t+1)-u(t-1)'); %文本标注
subplot(2,1,2) ; plot(W,FW) ;grid on; %画出振幅频谱的波形,并加网格 xlabel ('W') ; ylabel ('F(W)'); %坐标轴标注 title('f(t)的振幅频谱图'); %文本标注
运行结果如下:
三、 实验内容
1.编程实现求下列信号的幅度频谱
(1) 求出1()(21)(21)f t t t εε=+--的频谱函数F 1(j ω),请将它与上面门宽为2的门
函数()(1)(1)f t t t εε=+--的频谱进行比较,观察两者的特点,说明两者的关系。
(2) 三角脉冲 21||||1()0
||1
t t f t t -≤?=?
>?
(3) 单边指数信号3()()t
f t e t ε-=
(4) 高斯信号2
3()t f t e -=
2.利用ifourier( ) 函数求下列频谱函数的傅氏反变换
(1)2
2()16F j j ω
ωω
=-+ (2) 22()58()()65j j F j j j ωωωωω+-=++
例4:若()s i n ()4
n x n π
=是一个N=32的有限序列,利用MATLAB 计算它的DFT 并画出图形。
N=32; n=0:N-1;
xn=cos(pi*n/6); k=0:N-1;
WN=exp(-j*2*pi/N); nk=n ’*k;
WNnk=WN.^nk; Xk=xn*WNnk; figure(1)
stem(n,xn) figure(2)
stem(k,abs(Xk))
在MATLAB 中,可以直接利用内部函数fft 来实现FFT 算法,该函数是机器语言,而不是MATLAB 指令写成的,执行速度很快。常用格式为: y=fft(x) y=fft(x,N)
4.2 )4/sin()8/sin()(ππn n n x +=是一个N =16的有限序列,用MATLAB 求其DFT 的结果,并画出其结果图,如图3-1所示。
图 3-1 有限长序列的DFT 结果图
程序 N=16;
n=0:1:N-1; %时域采样 xn=sin(n*pi/8)+sin(n*pi/4); k=0:1:N-1; %频域采样 WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk;
Xk=xn*WNnk;
subplot(2,1,1)
stem(n,xn);
subplot(2,1,2)
stem(k,abs(Xk));
n
j
(3/π
=,n=[0,10]
)
n
9.0(
e
x)
运算结果
Xk =
Columns 1 through 5
0.0000 -0.0000 - 8.0000i -0.0000 - 8.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
Columns 6 through 10
-0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
Columns 11 through 15
0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 + 8.0000i
Column 16
0.0000 + 8.0000i
用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。
解 MATLAB程序如下:
a=[-2 0 1 -1 3];
b=[1 2 0 -1];
c=conv(a,b);
M=length(c)-1;
n=0:1:M;
stem(n,c);
xlabel('n'); ylabel('幅度');
图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:{-2 -4 1 3 1 5 1 -3}。
1-2 用MATLAB计算差分方程
当输入序列为时的输出结果。
解 MATLAB程序如下:
N=41;
a=[0.8 -0.44 0.36 0.22];
b=[1 0.7 -0.45 -0.6];
x=[1 zeros(1,N-1)];
k=0:1:N-1;
y=filter(a,b,x);
stem(k,y)
xlabel('n');ylabel('幅度')
图 1.2 给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。
用MATLAB 计算例1-2差分方程
所对应的系统函数的DTFT 。
解 例1-2差分方程所对应的系统函数为:
123
123
0.80.440.360.02()10.70.450.6z z z H z z z z -------++=
+--
其DTFT 为
23230.80.440.360.02()10.70.450.6j j j j j j j e e e H e
e e e ωωωω
ωωω--------++=
+--
用MATLAB 计算的程序如下: k=256;
num=[0.8 -0.44 0.36 0.02]; den=[1 0.7 -0.45 -0.6]; w=0:pi/k:pi;
h=freqz(num,den,w); subplot(2,2,1);
plot(w/pi,real(h));grid title('实部')
xlabel('\omega/\pi');ylabel('幅度') subplot(2,2,2);
plot(w/pi,imag(h));grid title('虚部')
xlabel('\omega/\pi');ylabel('Amplitude') subplot(2,2,3);
Matlab上机实验答案
Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -
>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +
Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50
+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =
MATLAB基本操作实验报告
南昌航空大学 数学与信息科学学院 实验报告 课程名称:数学实验 实验名称: MATLAB基本操作 实验类型:验证性■综合性□ 设计性□ 实验室名称:数学实验室 班级学号: 10 学生姓名:钟 X 任课教师(教师签名): 成绩: 实验日期: 2011-10- 10
一、实验目的 1、熟悉MATLAB基本命令与操作 2、熟悉MATLAB作图的基本原理与步骤 3、学会用matlab软件做图 二、实验用仪器设备、器材或软件环境 计算机MATLAB软件 三、实验原理、方案设计、程序框图、预编程序等 问题1:在区间【0,2π】画sinx 实验程序: >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) 问题2:在【0,2π】用红线画sinx,用绿圈画cosx,实验程序:
>> x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> plot(x,y,'r',x,z,'co') >> 问题3:在【0,π】上画y=sinx的图形。 实验程序: >> ezplot('sin(x)',[0,pi]) >> 问题4:在【0,π】上画x=cos3t,y=sin3t星形图形。
实验程序: >> ezplot('cos(t).^3','sin(t).^3',[0,pi]) >> 问题5:[-2,0.5],[0,2]上画隐函数 实验程序: >> ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) >> 问题6:在[-2,2]范围内绘制tanh的图形。实验程序: >> fplot('tanh',[-2,2])
MATLAB全部实验及答案
MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c
(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc
实验一 MATLAB基本操作及运算(含实验报告).
实验一 MATLAB 基本操作及运算 一、 实验目的 1、 理解Matlab 数据对象的特点; 2、 掌握基本Matlab 运算规则; 3、 掌握Matlab 帮助的使用方法; 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 三、 实验内容 要求建立一个名为experiment01.m 的,把与实验内容1-7相关的实验命令都放入该文件中,题与题之间用相应注释分割。注意对实验中出现的相关函数或变量,请使用help 或doc 查询相关帮助文档,学习函数的用法。 1、 建立以下标量: 1) a=10 2) b=2.5×1023 3) c=2+3i ,(i 为虚数单位) 4) d=3/2πj e ,(j 为虚数单位,这里要用到exp ,pi ) 2、 建立以下向量: 1) aVec=[3.14 15 9 26] 2) bVec=????? ???????18228871.2 3) cVec=[5 4.8 … -4.8 -5 ] (向量中的数值从5到-5,步长为-0.2) 4) dVec=[100 100.01 … 100.99 101] (产生1到10之间的等对数间隔向量,参考logspace ,注意向量的长度) 3、 建立以下矩阵: 1)???? ??????=2222 aMat aMat 一个9×9的矩阵,其元素全为2;(参考ones 或zeros )
2)??????? ?????????=1000005000001 bMat bMat 是一个9×9的矩阵,除主对角上的元素为[1 2 3 4 5 4 3 2 1]外,其余元素均为0。(参考diag )。 3)100 20109212291111 =cMat cMat 为一个10×10的矩阵,可有1:100的向量来产生(参考reshape ) 4)???? ??????=NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN dMat dMat 为3×4的NaN 矩阵,(参考nan ) 5)?? ????---=8710225113eMat 6)产生一个5×3随机整数矩阵fMat ,其值的范围在-3到3之间。(参考rand 和floor 或ceil ) 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ) 6/)15((11--+=a e x 2) g g h h b a y /121,)(=+=提示π,参考sqrt 。 3) c c a d c d c R z ))3/sin()]))([(log(π-+= ,其中R 表示取括号内复数的实数部分,c 表示c 的共轭复数,log 是自然对数。(参考real ,conj ,log ) 5、 使用题2中的向量求解一下等式: 1))25.2/(22 25.221 cVec e xVec -=π, 其中cVec 指的是题2 中定义的向量cVec ,一下雷同。 2)22)(bVec aVec yVec T +=,T aVec 表示aVec 的转置 3) )/1(log 10dVec zVec =,10log 表示已10为底的对数,参考log10 6、 使用题2和题3中所产生的向量和矩阵计算以下等式,注意本题的操作
实验二 Matlab程序设计基本方法1
实验二Matlab程序设计基本方法 覃照乘自092 电气工程学院 一、实验目的: 1、熟悉MATLAB 程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 二、实验基本知识: ◆for循环结构 语法:for i=初值:增量:终值 语句1 …… 语句n end 说明:1.i=初值:终值,则增量为1。 2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 ◆while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达 式的值为假,则程序执行end之后的语句。 2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位 置加break语句、以便程序能正常执行。(执行循环体的次数不确定; 每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下:
while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end ◆if-else-end分支结构 if 表达式1 语句1 else if 表达式2(可选) 语句2 else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。 2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。 ◆switch-case结构 语法:switch表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 …… otherwise 语句组n end
Matlab实验五分支结构程序设计答案
实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');
elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end
MATLAB)课后实验答案
实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 012 2sin 851z e =+ (2) 21ln(2 z x =,其中2 120.45 5i x +??=? ?-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022 a a e e a z a a --+= ++=--L (4) 22 42011 122123t t z t t t t t ?≤=-≤?-+≤ ,其中t =0:0.5:2.5 解:
4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。解:(1) 结果: (2). 建立一个字符串向量例如: ch='ABC123d4e56Fg9';则要求结果是:
实验二 MATLAB 矩阵分析与处理 1. 设有分块矩阵33322322E R A O S ?????? =? ??? ,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22 E R RS A O S +?? =???? 。 解: M 文件如下; 5. 下面是一个线性方程组: 1 231 1 12340.951110.673450.5211145 6x x x ?? ??????????????=??? ?????????????????? ? ch = 123d4e56g9
(1) 求方程的解。 (2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。 (3) 计算系数矩阵A 的条件数并分析结论。 解: M 文件如下: 实验三 选择结构程序设计 1. 求分段函数的值。 2226035605231x x x x y x x x x x x x ?+-<≠-? =-+≤<≠≠??--? 且且及其他 用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 解:M 文件如下:
matlab操作实验报告
实验一matlab基本操作 一、实验目的 熟悉matlab的安装与启动;熟悉matlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。 二、实验设备与工具 1.计算机 2.matlab软件 三、实验步骤 1. 了解matlab的硬件和软件必备环境; 2. 启动matlab; 3. 学习优化建模过程。 四、实验报告要求 1. 写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部 分的功能; 2. 优化建模过程应用举例 五、实验内容 (一)、Matlab操作界面 1.命令窗口(command window) 2.命令历史窗口(command history) 3.工作空间管理窗口(workspace) 4.当前路径窗口(current directory) (二)、优化建模过程应用举例 1、简单矩阵 123 456 789 A ?? ?? =?? ?? ?? 的输入步骤。 (1)在键盘上输入下列内容 A = [1,1,3; 4,5,6; 7,8,9] (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A = 1 2 3 4 5 6 7 8 9
2、矩阵的分行输入。 A=[1,2,3 4,5,6 7,8,9] A = 1 2 3 4 5 6 7 8 9 3、指令的续行输入 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 S = 0.6345 4、画出衰减振荡曲线t e y t 3sin 3-=及其它的包络线3 0t e y -=。t 的取值范围是]4,0[π。 t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b') grid 5、画出2222) sin(y x y x z ++=所表示的三维曲面。y x ,的取值范围是]8,8[-。 clear;x=-8:0.5:8; y=x';
matlab实验二
实验2 MATLAB数值计算、符号运算功能 一、实验目的 1、掌握建立矩阵、矩阵分析与处理的方法。 2、掌握线性方程组的求解方法。 3、掌握数据统计和分析方法、多项式的常用运算。 4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。 5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。 二、预习要求 (1)复习4、5、6章所讲内容; (2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。 三、实验内容 1、已知 29618 20512 885 A -?? ?? =?? ?? - ?? ,求A的特征值及特征向量,并分析其数学意义。 >> A=[-29,6,18;20,5,12;-8,8,5]; >> [V,D]=eig(A) V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 V为A的特征向量,D为A的特征值,3个特征值是-25.3169、10.5182和16.8351。 >> A*V ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 >> V*D
ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 经过计算,A*V=V*D 。 2、 不用rot90函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A ,A 左旋后得到B ,右旋后得到C 。 147102581136912A ????=??????,101112789456123B ??????=??????,321654987121110B ??????=?????? 提示:先将A 转置,再作上下翻转,则完成左旋90°;如将A 转置后作左右翻转,则完成右旋转90°,可用flipud 、fliplr 函数。 >> a=[1 4 7 10;2 5 8 11;3 6 9 12] a= 1 4 7 10 2 5 8 11 3 6 9 12 >> B=rot90(a) B = 10 11 12 7 8 9 4 5 6 1 2 3 >>C= rot90(s,3) C= 3 2 1 6 5 4 9 8 7 12 11 10
Matlab实验第一次实验答案
实验一Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i
1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置
MATLAB实验题答案
1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000>> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A
MATLAB基本操作实验报告
MATLAB基本操作 实验报告 课程名称: 院系: 专业班级: 学号: 学生姓名: 指导教师: 开课时间:至学年第学期
一、学生撰写要求 按照实验课程培养方案的要求,每门实验课程中的每一个实验项目完成后,每位参加实验的学生均须在实验教师规定的时间内独立完成一份实验报告,不得抄袭,不得缺交。 学生撰写实验报告时应严格按照本实验报告规定的内容和要求填写。字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。 二、教师评阅与装订要求 1.实验报告批改要深入细致,批改过程中要发现和纠正学生实验报告中的问题,给出评语和实验报告成绩,签名并注明批改日期。实验报告批改完成后,应采用适当的形式将学生实验报告中存在的问题及时反馈给学生。 2.实验报告成绩用百分制评定,并给出成绩评定的依据或评分标准(附于实验报告成绩登记表后)。对迟交实验报告的学生要酌情扣分,对缺交和抄袭实验报告的学生应及时批评教育,并对该次实验报告的分数以零分处理。对单独设课的实验课程,如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。 3.各实验项目的实验报告成绩登记在实验报告成绩登记表中。本学期实验项目全部完成后,给定实验报告综合成绩。 4.实验报告综合成绩应按课程教学大纲规定比例(一般为10-15%)计入实验课总评成绩;实验总评成绩原则上应包括考勤、实验报告、考核(操作、理论)等多方面成绩; 5.实验教师每学期负责对拟存档的学生实验报告按课程、学生收齐并装订,按如下顺序装订成册:实验报告封面、实验报告成绩登记表、实验报告成绩评定依据、实验报告(按教学进度表规定的实验项目顺序排序)。装订时统一靠左侧按“两钉三等分”原则装订。
MATLAB实验报告实验二
实验二 MATLAB矩阵及其运算 学号:3121003104 姓名:刘艳琳专业:电子信息工程1班日期:2014.9.20 一实验目的 1、掌握Matlab数据对象的特点以及数据的运算规则。 2、掌握Matlab中建立矩阵的方法以及矩阵处理的方法。 3、掌握Matlab分析的方法。 二实验环境 PC_Windows 7旗舰版、MATLAB 7.10 三实验内容 4、1. (1)新建一个.m文件,验证书本第15页例2-1; (2)用命令方式查看和保存代码中的所有变量;
(3)用命令方式删除所有变量; (4)用命令方式载入变量z。 2. 将x=[4/3 1.2345e-6]在以下格式符下输出:短格式、短格式e方式、长格式、长格式e方式、银行格式、十六进制格式、+格式。 短格式 短格式e 长格式
长格式e方式 银行格式 十六进制格式 3.计算下列表达式的值 (1)w=sqrt(2)*(1+0.34245*10^(-6)) (2)x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a) a=3.5;b=5;c=-9.8; (3)y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a) a=3.32;b=-7.9; (4)z=0.5*exp(2*t)*log(t+sqrt(1+t*t)) t=[2,1-3i;5,-0.65];
4. 已知A=[1 2 3 4 5 ;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20],对其进行如下操作:(1)输出A在[ 7, 10]范围内的全部元素; (2)取出A的第2,4行和第1,3,5列; (3)对矩阵A变换成向量B,B=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; (4)删除A的第2,3,4行元素; (1) (2)
实验5 Matlab绘图操作实验报告
Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+23 50 00 50 7. 某工厂2005年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制柱形图和饼图,并说明图形的实际意义。
8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)
(2)
(3)
MATLAB实验二(修改)
实验二 信号的表示及其基本运算 一、实验目的 1、掌握连续信号及其MATLAB 实现方法; 2、掌握离散信号及其MA TLAB 实现方法 3、掌握离散信号的基本运算方法,以及MA TLAB 实现 4 熟悉应用MATLAB 实现求解系统响应的方法 4、了解离散傅里叶变换的MA TLAB 实现 5、了解IIR 数字滤波器设计 6、了解FIR 数字滤波器设计1 二、实验设备 计算机,Matlab 软件 三、实验内容 (一)、 连续信号及其MATLAB 实现 1、 单位冲激信号 ()0,0()1,0 t t t dt ε ε δδε-?=≠??=?>??? 例1.1:单位冲击信号的MATLAB 实现程序如下: t1=-4; t2=4; t0=0; dt=0.01; t=t1:dt:t2; n=length(t); x=zeros(1,n); x(1,(-t0-t1)/dt+1)=1/dt; stairs(t,x); axis([t1,t2,0,1.2/dt]); 2、 任意函数 ()()()f t f t d τδττ+∞ -∞ =-? 例1.2:用MA TLAB 画出如下表达式的脉冲序列 ()0.4(2)0.8(1) 1.2() 1.5(1) 1.0(2)0.7(3)f n n n n n n n δδδδδδ=-+-+++++++ 3 单位阶跃函数 1,0()0, t u t t ?≥?=? ? 例1.3:用MA TLAB 实现单位阶跃函数 clear all;
t=-0.5:0.001:1; t0=0; u=stepfun(t,t0); plot(t,u) axis([-0.5 1 -0.2 1.2]) 4 斜坡函数 0()()g t B t t =- 例1.4:用MA TLAB 实现g(t)=3(t-1) clear all; t=0:0.01:3; B=3; t0=1; u=stepfun(t,t0); n=length(t); for i=1:n u(i)=B*u(i)*(t(i)-t0); end plot(t,u) axis([-0.2 3.1 -0.2 6.2]) 5 抽样信号 抽样信号Sa(t)=sin(t)/t 在MATLAB 中用 sinc 函数表示。 定义为 )/(sin )(πt c t Sa = t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on; axis([-10,10,-0.5,1.2]); %定义画图范围,横轴,纵轴 title('抽样信号') %定义图的标题名字 6 指数函数 ()at f t Ae = 例1.5:用MA TLAB 实现0.5()3t f t e = 7 正弦函数 2()cos( )t f t A T π?=+ 例1.6:用MA TLAB 实现正弦函数f(t)=3cos(10πt+1) 8 虚指数信号 例 虚指数信号 调用格式是f=exp((j*w)*t) t=0:0.01:15;
MATLAB上机实验(答案)
MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =
matlab实验报告
实验报告 2. The Branching statements 一、实验目的: 1.To grasp the use of the branching statements; 2.To grasp the top-down program design technique. 二、实验内容及要求: 1.实验内容: 1).编写 MATLAB 语句计算 y(t)的值 (Write the MATLAB program required to calculate y(t) from the equation) ???<+≥+-=0 530 53)(2 2t t t t t y 已知 t 从-5到 5 每隔0.5取一次值。运用循环和选择语句进行计算。 (for values of t between -5 and 5 in steps of 0.5. Use loops and branches to perform this calculation.) 2).用向量算法解决练习 1, 比较这两个方案的耗时。 (tic ,toc 的命令可以帮助你完成的时间计算,请使用'help'函数)。 Rewrite the program 1 using vectorization and compare the consuming time of these two programs. (tic, toc commands can help you to finish the time calculation, please use the …help ? function). 2.实验要求: 在报告中要体现top-down design technique, 对于 3 要写出完整的设计过程。 三、设计思路: 1.用循环和选择语句进行计算: 1).定义自变量t :t=-5:0.5:5; 2).用循环语句实现对自变量的遍历。 3).用选择语句实现对自变量的判断,选择。 4).将选择语句置入循环语句中,则实现在遍历中对数据的选择,从而实现程序的功能。 2. 用向量法实现: 1).定义自变量t :t=-5:0.5:5; 2).用 b=t>=0 语句,将t>=0得数据选择出,再通过向量运算y(b)=-3*t(b).^2 + 5; 得出结果。 3).用取反运算,选择出剩下的数据,在进行向量运算,得出结果。 四、实验程序和结果 1.实验程序 实验程序:创建m 文件:y_t.m
Matlab实验
MATLAB实验报告 学校:湖北文理学院 学院:物理与电子工程学院 专业:电子信息工程 学号: 2013128182 姓名:张冲 指导教师:宋立新
实验一 MATLAB环境的熟悉与基本运算 一、实验目的: 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验内容 1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明, 学习使用指令eye(其它不会用的指令,依照此方法类推) 2、学习使用clc、clear,观察command window、command history和workspace 等窗口的变化结果。 3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、 exerc2、exerc3……),学习使用MATLAB的基本运算符。 三、练习 1)help rand,然后随机生成一个2×6的数组,观察command window、 command history和workspace等窗口的变化结果。 2)学习使用clc、clear,了解其功能和作用。 3)用逻辑表达式求下列分段函数的值 4)求[100,999]之间能被21整除的数的个数。(提示:rem,sum的用法) 四、实验结果 1)
2)clc:清除命令窗口所有内容,数值不变;clear:初始化变量的值。3) 4)
实验二 MATLAB数值运算 一、实验目的 1、掌握矩阵的基本运算 2、掌握矩阵的数组运算 二、实验内容 1)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3, (10) 2)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命令窗 口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A 3)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组A第2 行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有 元素。 4)两种运算指令形式和实质内涵的比较。设有3个二维数组A 2×4,B 2×4 ,C 2×2 , 写出所有由2个数组参与的合法的数组运算和矩阵指令。 5)学习使用表4列的常用函数(通过help方法) 6)学习使用表5数组操作函数。 7)生成一个3行3列的随机矩阵,并逆时针旋转90°,左右翻转,上下翻转。 8)已知a=[1 2 3],b=[4 5 6],求a.\b和a./ b 9)用reshape指令生成下列矩阵,并取出方框内的数组元素。 三、实验结果 1)C(i)表示C中的第i个的数值;
河南城建学院MATLAB上机实验答案
一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式
MATLAB实验报告1(推荐文档)
学生实验报告
一、实验目的 熟悉MATLAB 软件的用户环境;了解MATLAB 软件的一般命令;掌握MATLAB 向量、数组、矩阵操作与运算函数;掌握MATLAB 软件的基本绘图命令;掌握MATLAB 语言的几种循环、条件和开关选择结构,及其编程规范。 通过该实验的学习,使学生能灵活应用MATLAB 软件解决一些简单问题,能借助MATLAB 软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律。 二、实验仪器、设备或软件: 电脑,MATLAB 软件 三、实验内容 1.MATLAB 软件的数组操作及运算练习; 2.直接使用MATLAB 软件进行作图练习; 3.用MATLAB 语言编写命令M 文件和函数M 文件。 四、实验步骤 1.在D 盘建立一个自己的文件夹; 2.开启软件平台——MATLAB ,将你建立的文件夹加入到MATLAB 的搜索路径中; 3.利用帮助了解函数max, min, sum, mean, sort, length ,rand, size 和diag 的功能和用法; 4.开启MATLAB 编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7.写出实验报告,并浅谈学习心得体会。 五、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→算法与编程→计算结果或图形→心得体会) 1. 已知矩阵??????????=321212113A , ???? ? ?????--=101012111B 要求:(1)屏幕输出A 与B ;(2)A 的转置A′;(3)求A+B 的值;(4)求A-B 的值;(5)求4A ;(6)求A×B ;(7)求A -1.