matlab实验三
- 格式:doc
- 大小:71.50 KB
- 文档页数:4
实验三MATLAB计算的可视化一、实验目的1.掌握绘制二维图形的常用函数。
2.掌握绘图三维图形的常用函数。
3.掌握绘制图形的辅助操作。
二、实验内容1.二维曲线绘图基本指令演示。
本例运作后,再试验plot(t), plot(Y), plot(Y,t) ,以观察产生图形的不同。
t=(0:pi/50:2*pi)';k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)plot指令基本操作演示plot(t)图形:plot(Y)图形:plot(Y ,t)图形:2.⎥⎦⎤⎢⎣⎡++21sin 35.0x x cosx ,在x=0~2π区间取101点,绘制函数的曲线。
实验程序如下:实验图形:3.已知y1=x2,y2=cos(2x),y3=y1 y2,完成下列操作:(1)在同一坐标系下用不同的颜色和线型绘制三条曲线。
实验程序:实验图形:(2)以子图形式绘制三条曲线。
实验图形:(3)分别用条形图、阶梯图、杆图和填充图绘制三条曲线。
实验程序:实验图形:在条形图代码的基础上修改得到以下图形:梯形图杆图填充图4.已知 y=⎪⎪⎩⎪⎪⎨⎧>++≤+0,1ln(210,22x x x x e x π 在-5≤x ≤5区间绘制函数曲线 实验程序:实验图形:总结:本次实验使用了plot(t), plot(Y), plot(Y,t) 等绘图函数,还通过修改绘图参数,改变了图形的形状、颜色。
通过修改参数:bar 、hist 、stem 、filld 等来改变绘图种类。
实验三1.利用 rand 函数编写一个新的函数 rand2,该函数能够产-之间的随机数,其中 n 为任意正数。
该函数以 rand 生[],n n函数为子函数。
解:function x=rand2(a,b,n)x=round(rand(a,b)*2*n-n);2.依据第五章创建的结构体,使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次等。
解:student=struct('name',{'Hunter','Allen','Henry'},'number',{'1801','1803','1827'},'score',{[65 89 59],[48 63 75],[74 55 88]})student(1)Hunter_sum=sum(student(1).score)Hunter_mean=mean(student(1).score)student(2)Allen_sum=sum(student(2).score)Allen_mean=mean(student(2).score)student(3)Henry_sum=sum(student(3).score)Henry_mean=mean(student(3).score)score_sum=[ Hunter_sum,Allen_sum,Henry_sum];sort(score_sum,'descend')3.编写程序判断输入的年份是否为闰年并计算这一天是一年当中的第几天(包括当天)。
其中要求把判断闰年和计算天数的程序分别编写为两个函数文件leapyear.m和countday.m,并在主程序中输入要计算的年、月、日,实现对这两个函数的调用,输出信息说明该年是否是闰年和该天是一年的第几天。
实验三函数式M文件和MA TLAB绘图一、实验目的:1、掌握基本的绘图命令2、掌握各种图形注释方法3、掌握三维图形的绘制方法4、了解一些特殊图形的绘制5、了解图形的高级控制技巧二、相关知识1基本的绘图命令1)、常用绘图命令常用的统计图函数:在MA TLAB 7中,使用plot函数进行二维曲线图的绘制>> x=0:0.1:10;>> y1=sin(x);>> y2=cos(x-2.5);>> y3=sqrt(x);>> plot(x,y1,x,y2,x,y3)3)、极坐标图形的绘制MA TLAB提供了polar(x1,x2,s)函数来在极坐标下绘制图形:(参数1角度,参数2极半径,参数3颜色和线性)>> x= 0:0.01:10;>> y1=sin(x);>> y2 = cos(x-2.5);>> polar(y1,y2,'-r+')4)、多个图形的绘制方法subplot函数可以实现多个图形的绘制:>>x = 0:.1:20;>>subplot(2,2,1)>>plot(x,sin(x));>>subplot(2,2,2);>>plot(x,cos(x))5)、曲线的色彩、线型和数据点型基本的绘图命令都支持使用字符串来给不同的曲线定义不同的线型,颜色和数据点型。
plot(x,sin(x),'-rd')图形注释对图形进行注释的方式A 图形注释“工具栏。
B 图形调色板中的注释工具C insert 菜单中的“注释”命令D 直接使用注释命令Annotation 函数Xlabel ,ylabel ,zlabel 函数 Title 函数 Colorbar 函数 Legend 函数实验内容: 一、 基础练习1、跟我练输入x,y 的值,并将它们的值互换后输出 x=input('Input x please:\n');y=input('Input y please:\n'); echo on z=x; x=y; y=z; disp(x); disp(y);echo off2、练习请求键盘输入命令keyboard ,处理完毕后,键入return ,程序将继续运行 求一元二次方程ax2 +bx+c=0的根。
实验三信号的调制与解调一.实验目的:1.熟悉幅度调制与解调过程,熟悉调制解调过程中信号时域波形和频谱。
2.掌握Modulate函数实现调幅和调频信号。
3.熟悉快速傅立叶变换函数fft,求模函数abs和fftshift函数求信号幅度频谱。
4.掌握butter函数进行巴特沃兹低通滤波器设计,熟悉滤波器频率响应函数freqz,滤波函数filter。
5.熟悉信号的合成与分解原理,加深对傅里叶级数的理解;二、实验原理:1.两个信号的调制通常用乘法器实现,由一个信号控制另一个信号的某个参量,例如用一个低频正弦波信号控制高频载波的幅值,则产生一个振幅调制信号,称为调幅波;类似还可产生调频波等。
2.幅度调制与解调原理:(如下图所示)调制信号()p t,假设信道不引入噪声,解调时采用同步解f t,载波()调,LPF为低通滤波器,()f t为接收信号。
C三、实验内容1.验证性实验a)使用modulate函数产生调幅信号解:Fm=10; Fc=100; Fs=1000; N=1000; k=0:N; t=k/Fs;x=abs(sin(2*pi*Fm*t));xf=abs(fft(x,N)); y1=modulate(x,Fc,Fs,'am');subplot(2,1,1);plot(t(1:200),y1(1:200));xlabel('时间'); ylabel('幅度'); title('调幅');yf=abs(fft(y1,N)); subplot(2,1,2); stem(yf(1:200));xlabel('频率');ylabel('幅度');b)使用modulate函数产生调频信号解:Fm=10; Fc=100; Fs=1000; N=1000; k=0:N; t=k/Fs;x=abs(sin(2*pi*Fm*t));xf=abs(fft(x,N)); y1=modulate(x,Fc,Fs,'pm');subplot(2,1,1);plot(t(1:200),y1(1:200));xlabel('时间'); ylabel('幅度'); title('调频');yf=abs(fft(y1,N)); subplot(2,1,2); stem(yf(1:200)); xlabel('频率');ylabel('幅度');c)周期信号的分解与合成解:t=-3:0.01:3; Fm=0.5; sum=0; n=100; for i=1:2:n;sum=sum+4/pi.*(1/i).*sin(i*2*pi*Fm*t); endplot(t,sum);title('周期信号的分解与合成');2. 设计性实验1) 发射端调制信号()2cos(2)f t t =,载波()cos(20)p t t =,已调信号()A f t ,理想信道无噪声。
实验三利用MATLAB进行系统频域分析系统频域分析是指通过对系统的输入输出信号进行频域分析,从而分析系统的频率响应特性和频率域特征。
利用MATLAB进行系统频域分析可以方便地实现信号的频谱分析、滤波器设计等功能。
下面将介绍如何利用MATLAB进行系统频域分析的基本步骤。
一、信号频谱分析1. 将信号导入MATLAB环境:可以使用`load`函数导入数据文件,或者使用`audioread`函数读取音频文件。
2. 绘制信号的时域波形图:使用`plot`函数绘制信号的时域波形图,以便对信号的整体特征有一个直观的了解。
3. 计算信号的频谱:使用快速傅里叶变换(FFT)算法对信号进行频谱分析。
使用`fft`函数对信号进行频域变换,并使用`abs`函数计算频谱的幅度。
4. 绘制信号的频谱图:使用`plot`函数绘制信号的频谱图,以便对信号的频率特征有一个直观的了解。
二、滤波器设计1.确定滤波器类型和要求:根据系统的要求和信号的特性,确定滤波器的类型(如低通滤波器、高通滤波器、带通滤波器等)和相应的频率响应要求。
2. 设计滤波器:使用MATLAB中的滤波器设计函数(如`fir1`、`butter`、`cheby1`等)来设计滤波器。
这些函数可以根据指定的滤波器类型、阶数和频率响应要求等参数来生成相应的滤波器系数。
3. 应用滤波器:使用`filter`函数将滤波器系数应用到信号上,得到滤波后的信号。
三、系统频率响应分析1. 生成输入信号:根据系统的要求和实际情况,生成相应的输入信号。
可以使用MATLAB中的信号生成函数(如`square`、`sine`、`sawtooth`等)来生成基本的周期信号,或者使用`randn`函数生成高斯白噪声信号。
2.绘制输入信号的频谱图:使用前面提到的信号频谱分析方法,绘制输入信号的频谱图。
3. 输入信号与输出信号的频域分析:使用`fft`函数对输入信号和输出信号进行频谱分析,并使用`abs`函数计算频谱的幅度。
实验三MATLAB数值运算实验者:祝松年级:机设092 学号:09405701002一、实验目的掌握 MATLAB 的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。
二、实验内容:(1)多项式运算。
(2)多项式插值和拟合。
(3)数值微积分。
(4)结构数组和细胞数组。
三、实验步骤:1. 多项式运算(1) 多项式表示。
在 MATLAB 中,多项式表示成向量的形式。
如:9s在 MATLAB 中表示为+s34^+>>S=[ 1 3 -5 0 9](2) 多项式的加减法相当于向量的加减法,但须注意阶次要相同。
如不同,低阶的要补 0 。
如多项式 2 s 2 + 3 s + 9 与多项式 s 4 + 3 s 3 − 5 s 2 + 4 s + 7 相加。
>>S1=[0 0 2 3 11 ]>>S2=[1 3 -5 4 7 ]>>S3=S1+S2(3) 多项式的乘、除法分别用函数 conv 和 deconv 实现>>S1=[ 2 3 11 ]>>S2=[1 3 -5 4 7 ] >>S3=conv(S1,S2)>>S4=deconv(S3,S1)(4) 多项式求根用函数 roots>> S1=[ 2 4 2 ]>> roots(S1)(5) 多项式求值用函数 polyval>>S1=[ 2 4 1 -3 ]>>polyval(S1,3) % 计算 x = 3 时多项式的值>>x = 1:10>>y=ployval(S1,x) % 计算 x 向量对应的值得到 y 向量练习:求(s^2+1)(s+3)(s+1)/s^3+2s+1的“商”及“余”多项式。
2、结构数组与细胞数组(1) 结构数组的创建。
>> student.number='20050731001';>> ='Jack';>> student(2).number='20050731002';>>student(2).name ='Lucy';或者用 struct 函数创建。
MATLAB实验报告3MATLAB实验报告3一、实验目的1.掌握MATLAB程序的调试方法;2.掌握MATLAB中的矩阵操作;3.熟悉MATLAB中处理图像的基本操作。
二、实验内容1.用MATLAB调试程序;2.用MATLAB进行矩阵运算;3.用MATLAB处理图像。
三、实验原理及步骤1.MATLAB程序的调试方法在MATLAB中调试程序可以采用设置断点、逐行运行、单步调试等方法。
设置断点可以在程序中的其中一行上点击左键,会出现一个红色的圆点表示断点已设置。
逐行运行可以通过点击Editor界面上的运行按钮实现。
单步调试可以通过点击断点所在行的左侧按钮实现。
2.矩阵运算在MATLAB中,对于矩阵的运算可以使用一些基本的函数,如矩阵加法、减法、乘法等。
矩阵加法可以使用"+"操作符实现,减法可以使用"-"操作符实现,乘法可以使用"*"操作符实现。
另外,MATLAB还提供了一些更复杂的矩阵运算函数,如矩阵的转置、逆等。
3.图像处理在MATLAB中,可以使用imread函数加载图像文件,使用imshow函数显示图像,使用imwrite函数保存图像。
另外,还可以使用一些图像处理函数对图像进行处理,如灰度化、二值化、平滑滤波等。
四、实验步骤1.调试程序首先,在MATLAB的Editor界面中打开要调试的程序文件。
然后,在程序的其中一行上点击左键,即设置了一个断点。
最后,点击运行按钮,程序会在断点处停下,然后可以通过单步调试和逐行运行来逐步查看程序的执行过程和变量的取值。
2.矩阵运算首先,定义两个矩阵A和B,并赋值。
然后,使用"+"操作符对两个矩阵进行相加,得到矩阵C。
最后,使用disp函数显示矩阵C的值。
3.图像处理首先,使用imread函数加载一张图像。
然后,使用imshow函数显示加载的图像。
接着,使用rgb2gray函数将彩色图像转换为灰度图像。
1.设计脚本文件,利用for循环求1!+2!+3!+ 4!+5!的值。
运行结果:
2.设计一个脚本文件,求[100,200]之间所有能被29整除的整数。
运行结果:
3.设计一个脚本文件,实现:从键盘输入成绩百分制成绩x, 将其转换为等级grade为“满分”、“优秀”、“良好”、“及格”、“不及格”从屏幕输出。
转换规则如下:
(1)x=100,满分;
(2)x>=90,优秀;
(3)x>=80,良好;
(4)x>=60,及格;
(5)x>=60,不及格。
运行结果:
4.设计一个函数),3,2,1(!
)(1
==∑=x n x g x
n ,试编写实现该函数的函数文件。
function r=AddJc(n)
n=input('ÊäÈ룺n=');
k=1;r=0;
while k<=n
r=r+Jc(k)
k=k+1;
end
function s=Jc(m)
s=1;k=1;
while k<=m
s=s*k;
k=k+1;
end
实验结果:
5.产生一个8阶魔阵,并存取到文本文件mag_file.txt中。
A=magic(8);
fid=fopen('mag_file.bin','w');
count=fwrite(fid,A,'int32');
fclose(fid);
type mag_file.bin;
fid=fopen('mag_file.bin','r');
[B,count]=fread(fid,64,'int32');
B=reshape(B,8,8)。