实验一数据处理方法MATLAB实现
数字信号处理MATLAB实验1
实验一熟悉MATLAB环境一、实验目的(1)熟悉MATLAB的主要操作命令。
(2)学会简单的矩阵输入和数据读写。
(3)掌握简单的绘图命令。
(4)用MATLAB编程并学会创建函数。
(5)观察离散系统的频率响应。
二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。
在熟悉了MATLAB基本命令的基础上,完成以下实验。
上机实验内容:(1)数组的加、减、乘、除和乘方运算。
输入A=[1234],B=[3456],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。
(2)用MATLAB实现以下序列。
a)x(n)=0.8n0≤n≤15b)x(n)=e(0.2+3j)n0≤n≤15c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15(n)=x(n+16),绘出四个d)将c)中的x(n)扩展为以16为周期的函数x16周期。
(n)=x(n+10),绘出四个e)将c)中的x(n)扩展为以10为周期的函数x10周期。
(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。
a)x 1(n)=2x(n+2)-x(n-1)-2x(n)b)∑=-=51k 2)k n (nx (n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。
a)x(t)=sin(2πt)0≤t≤10sb)x(t)=cos(100πt)sin(πt)0≤t≤4s(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1<n0<n2,绘出该函数的图形,起点为n1,终点为n2。
(6)给定一因果系统)0.9z 0.67z -1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的幅频响应与相频响应。
(7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。
MATLAB数值实验一(数据的插值运算及其应用完整版)
佛山科学技术学院实 验 报 告课程名称 数值分析 实验项目 插值法与数据拟合 专业班级 机械工程 姓 名 余红杰 学 号 10 指导教师 陈剑 成 绩 日 期 月 日一、实验目的1、学会Lagrange 插值、牛顿插值和三次样条插值等基本插值方法;2、讨论插值的Runge 现象3、学会Matlab 提供的插值函数的使用方法,会用这些函数解决实际问题。
二、实验原理1、拉格朗日插值多项式2、牛顿插值多项式3、三次样条插值 三、实验步骤1、用MATLAB 编写独立的拉格朗日插值多项式函数2、用MATLAB 编写独立的牛顿插值多项式函数3、用MATLAB 编写独立的三次样条函数(边界条件为第一、二种情形)4、已知函数在下列各点的值为:根据步骤1,2,3编好的程序,试分别用4次拉格朗日多项式4()L x 、牛顿插值多项式4()P x 以及三次样条函数()S x (自然边界条件)对数据进行插值,并用图给出 {(,),0.20.08,0,1,2,,10i i i x y x i i =+=},4()L x 、4()P x 和()S x 。
5、在区间[-1,1]上分别取10,20n =用两组等距节点对龙格函数21(),(11)125f x x x=-≤≤+作多项式插值,对不同n 值,分别画出插值函数及()f x 的图形。
6、下列数据点的插值可以得到平方根函数的近似,在区间[0,64]上作图。
(1)用这9个点作8次多项式插值8()L x 。
(2)用三次样条(第一边界条件)程序求()S x 。
7、对于给函数21()125f x x =+在区间[-1,1]上取10.2(0,1,,10)i x i i =-+=,试求3次曲线拟合,试画出拟合曲线并打印出方程,与第5题的结果比较。
四、实验过程与结果:1、Lagrange 插值多项式源代码:function ya=lag(x,y,xa) %x 所有已知插值点 %y 插值点对应函数值 %xa 所求点,自变量 %ya 所求点插值估计量 ya=0; mu=1; %初始化%循环方式求L 系数,并求和: for i = 1:length(y) for j = 1:length(x) if i ~= jmu = mu * (xa - x(j) ) / ( x(i) - x(j) ); else continue end endya = ya + y(i) * mu ; mu = 1; end2、Newton 源代码:function ya = newton(x,y,xa) %x 所有已知插值点 %y 插值点对应函数值 %xa 所求点,自变量 %ya 所求点插值估计量 %建立系数零矩阵D 及初始化:D = zeros(length(x)-1);ya = y(1);xi = 1;%求出矩阵D,该矩阵第一行为牛顿插值多项式系数:for i=1:(length(x)-1)D(i,1) = (y(i+1) -y(i))/(x(i+1) -x(i));endfor j=2:(length(x)-1)for i=1:(length(x)-j)D(i,j) = (D(i+1,j-1) - D(i,j-1)) / (x(i+j) - x(i)); endend%xi为单个多项式(x-x(1))(x-x(2))...的值for i=1:(length(x)-1)for j=1:ixi = xi*(xa - x(j));endya = ya + D(1,i)*xi;xi = 1;end3、三次样条插值多项式(1)(第一边界条件)源代码:function y=yt1(x0,y0,f_0,f_n,x) _____________(1)%第一类边界条件下三次样条插值;%xi 所求点;%yi 所求点函数值;%x 已知插值点;%y 已知插值点函数值;%f_0左端点一次导数值;%f_n右端点一次导数值;n = length(x0);z = length(y0);h = zeros(n-1,1);k=zeros(n-2,1);l=zeros(n-2,1);S=2*eye(n);for i=1:n-1h(i)= x0(i+1)-x0(i);endfor i=1:n-2k(i)= h(i+1)/(h(i+1)+h(i));l(i)= 1-k(i);end%对于第一种边界条件:k = [1;k]; _______________________(2)l = [l;1]; _______________________(3)%构建系数矩阵S:for i = 1:n-1S(i,i+1) = k(i);S(i+1,i) = l(i);end%建立均差表:F=zeros(n-1,2);for i = 1:n-1F(i,1) = (y0(i+1)-y0(i))/(x0(i+1)-x0(i));endD = zeros(n-2,1);for i = 1:n-2F(i,2) = (F(i+1,1)-F(i,1))/(x0(i+2)-x0(i));D(i,1) = 6 * F(i,2);end%构建函数D:d0 = 6*(F(1,2)-f_0)/h(1); ___________(4)dn = 6*(f_n-F(n-1,2))/h(n-1); ___________(5)D = [d0;D;dn]; ______________(6)m= S\D;%寻找x所在位置,并求出对应插值:for i = 1:length(x)for j = 1:n-1if (x(i)<=x0(j+1))&(x(i)>=x0(j))y(i) =( m(j)*(x0(j+1)-x(i))^3)/(6*h(j))+...(m(j+1)*(x(i)-x0(j))^3)/(6*h(j))+...(y0(j)-(m(j)*h(j)^2)/6)*(x0(j+1)-x(i))/h(j)+... (y0(j+1)-(m(j+1)*h(j)^2)/6)*(x(i)-x0(j))/h(j) ; break;else continue;endendend(2)(自然边界条件)源代码:仅仅需要对上面部分标注的位置做如下修改:__(1):function y=yt2(x0,y0,x)__(2):k=[0;k]__(3):l=[l;0]__(4)+(5):删除—(6):D=[0:D:0]4、——————————————PS:另建了一个f方程文件,后面有一题也有用到。
实验一matlab环境语法及数学运算(验证性实验-2课时)
实验一Matlab环境语法及数学运算(验证性实验-2课时)一、实验目的:1、熟悉matlab软件的环境语法及简单的数学运算;2、能熟练运用matlab软件进行简单的数学运算;二、实验设备PC机,配置:PIII450/内存128M/显卡TNT32M/硬盘10G以上。
局域网、MATLAB7.0环境、投影仪三、实验原理MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
MATLAB有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink 模型编辑窗口。
1.命令窗口(The Command Window)当MATLAB启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window)我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
四、实验内容:1、帮助命令使用 help 命令,查找 sqrt(开方)函数的使用方法;2、矩阵运算(1)矩阵的乘法已知 A=[1 2;3 4]; B=[5 6;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(3)矩阵的转置及共轭转置已知 A=[5+i,2-i,1;6*i,4,9-i];求 A.', A'(4)使用冒号选出指定元素已知: A=[1 2 3;4 5 6;7 8 9];求 A 中第 3 行前 2 个元素;A 中所有列第 2,3 行的元素;A 中第 3 列前 2 个元素为:3、多项式求多项式 p(x) = x3 + 2x+ 4的根4、基本绘图命令(1)绘制余弦曲线 y=cos(t),t∈[0,2π](2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5),t∈[0,2π]5、基本绘图控制绘制[0,4π]区间上的 x1=10sint 曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;五、实验步骤1、帮助命令使用 help 命令,查找 sqrt(开方)函数的使用方法;SQRT Square root.SQRT(X) is the square root of the elements of X. Complexresults are produced if X is not positive.See also sqrtm.Overloaded functions or methods (ones with the same name in other directories) help sym/sqrt.mReference page in Help browserdoc sqrt2、矩阵运算(1)矩阵的乘法已知 A=[1 2;3 4]; B=[5 6;7 8];求 A^2*BA^2*B =105 122229 266(2)矩阵除法已知 A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];A\B,A/BWarning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 1.541976e-018.A\B =1.0e+016 *-0.4504 1.8014 -1.35110.9007 -3.6029 2.7022-0.4504 1.8014 -1.3511A/B =1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 3.0000(3)矩阵的转置及共轭转置已知 A=[5+i,2-i,1;6*i,4,9-i];求 A.', A'A.'=5.0000 + 1.0000i 0 +6.0000i2.0000 - 1.0000i 4.00001.0000 9.0000 - 1.0000iA’ =5.0000 - 1.0000i 0 -6.0000i2.0000 + 1.0000i 4.00001.0000 9.0000 + 1.0000i(4)使用冒号选出指定元素已知: A=[1 2 3;4 5 6;7 8 9];求 A 中第 3 行前 2 个元素;A 中所有列第 2,3 行的元素;A 中第 3 列前 2 个元素为:A(3,1:2) =7 8A(2:3,:) =4 5 67 8 9A(1:2,3) =363、多项式求多项式 p(x) = x3 + 2x+ 4的根p=[1 0 2 4];roots(p)ans =0.5898 + 1.7445i0.5898 - 1.7445i-1.17954、基本绘图命令(1)绘制余弦曲线 y=cos(t),t∈[0,2π]t=0:pi/100:2*pi;y=cos(t);plot(t,y)(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5),t∈[0,2π]t=0:pi/100:2*pi;y1=cos(t-0.25);y2=sin(t-0.5);plot(t,y1,t,y2)5、基本绘图控制绘制[0,4π]区间上的 x1=10sint 曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;程序:t=0:pi/100:4*pi;x1=10*sin(t);plot(t,x1,'r-.+')title('t from 0 to 4{\pi}')xlabel('Variable t')ylabel('Variable x1')grid ontext(2,5,'曲线x1=10*sin(t)')legend('x1')六、实验要求利用所学知识,完成上述各项实验内容,并将实验过程和实验步骤和结果写在报告中。
基于matlab的实验报告
基于matlab的实验报告实验报告:基于MATLAB 的实验一、实验目的通过使用MATLAB 软件,掌握如何进行数据分析、图像处理、算法实现等一系列实验操作,提高实验者的实践能力和动手能力。
二、实验原理MATLAB 是一种在科学计算和技术开发领域广泛应用的计算机软件。
它能进行矩阵计算、绘制函数和数据图像、实现算法以及进行数据分析等。
通过掌握MATLAB 的使用,能够快速、高效地解决各种科学和工程问题。
三、实验内容1. 数据分析:使用MATLAB 的数据分析工具进行数据的导入、处理和分析。
2. 图像处理:利用MATLAB 的图像处理工具包对图像进行滤波、增强、分割等操作。
3. 算法实现:使用MATLAB 实现常用的算法,如排序、搜索、图像压缩等。
四、实验步骤1. 数据分析:(1)使用MATLAB 的读取数据函数将数据导入MATLAB 环境中。
(2)利用MATLAB 的数据处理函数进行数据清洗和预处理。
(3)使用MATLAB 的统计工具进行数据分析,如求平均值、标准差等。
(4)利用MATLAB 的绘图函数将分析结果可视化。
2. 图像处理:(1)使用MATLAB 的读取图像函数将图像导入MATLAB 环境中。
(2)利用MATLAB 的图像处理工具包进行滤波操作,如均值滤波、中值滤波等。
(3)使用MATLAB 的图像增强函数对图像进行锐化、变换等操作。
(4)利用MATLAB 的图像分割算法对图像进行分割。
3. 算法实现:(1)使用MATLAB 编写排序算法,如冒泡排序、快速排序等。
(2)使用MATLAB 编写搜索算法,如二分查找、线性搜索等。
(3)使用MATLAB 实现图像压缩算法,如离散余弦变换(DCT)。
五、实验结果实验中,我们使用MATLAB 完成了数据分析、图像处理和算法实现的一系列实验操作。
通过数据分析,我们成功导入了数据并对其进行了清洗和预处理,最后得到了数据的统计结果。
在图像处理方面,我们对图像进行了滤波、增强和分割等操作,最终得到了处理后的图像。
数字信号处理 Matlab实验一 Matlab 基本功能和基础知识操作
温州大学物理与电子信息工程学院Matlab 仿真及其应用 实验报告实验一Matlab 基本功能和基础知识操作 [实验目的和要求]1、 熟练掌握Matlab 的启动与退出2、 熟悉Matlab 的命令窗口、常用命令、帮助系统3、 熟悉Matlab 的数据类型、基本矩阵操作、运算符和字符串处理[实验内容]1、 用逻辑表达式球下列分段函数的值 22201112,=0:0.5:2.52123t t y t t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩其中2、 求[100,999]之间能被32整除的数的个数3、 建立一个字符串向量,删除其中的小写字母。
4、 输入矩阵1234514789A ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,求出此矩阵的行列式,逆和特征根,并找出A 中大于5和小于9的元素,用行列式表示。
5、 不采用循环的形式求出和式63230034ii i i S ===+∑∑6、 给定矩阵E=rand (4,4),计算C+E ,C*E ,C\E实验结果及分析:经过Matlab 软件的程序编辑和测试分析,得出以下实验结果: 详见程序代码、注释及屏幕截图:【题1】程序代码:t=0:0.5:2.5y=t.^2.*((t>=0)&(t<1))+(t.^2-1).*((t>=1)&(t<2))+(t.^2-2*t+1).*((t>=2)&(t<3)) 效果截图:【题2】程序代码:p=rem([100:999],32)==0;sum(p)效果截图:【题3】程序代码:ch='dfghjGUIJKVC',k=find(ch>'a'&ch<='z'),ch(k)=[]效果截图:【题4】程序代码:A=[1 2 3;4 5 14;7 8 9];[i,j]=find(A>5&A<9) %定位for n=1:length(i)m(n)=A(i(n),j(n))endDA=det(A) %行列式IA=inv(A) %逆矩阵EA=eig(A) %特征根效果截图:【题5】程序代码:E=rand(4,4); %产生随机数0~1 C=rand(4,4);B1=C+E;B2=C*E;B3=C/E;B1B2B3效果截图:【题6】程序代码:E=rand(4,4); %产生随机数0~1 C=rand(4,4);B1=C+E;B2=C*E;B3=C/E;B1B2B3效果截图:4、心得:通过本次Matlab课程实验,我已熟练Matlab的命令窗口、常用命令、帮助系统,并掌握Matlab的数据类型、基本矩阵操作、运算符和字符串处理。
实验1Matlab的基本使用方法
7
path(path,’d:\mydir’)。用这种方法设置的目录信息只在当前环境中有效,一旦 Matlab 重新启 动,以前的设置就无效。
等于)
1
2) 逻辑运算:&(与)、|(或)、~(非)(非零元素都表示为真) 关系函数和逻辑函数:
函数
功能
函数
功能
all(x)
检查 x 是否全为 1
any(x)
检查 x 是否有不为零的元素
find(x)
找出非零元素的位置标识
isempty(x) 检查 x 是否为空阵
isinf(x)
检查 x 是否为无穷大
Your variables are:
RXYZtxyz
>> whos
Name
Size
Bytes Class
R
31x31
7688 double array
X
31x31
7688 double array
Y
31x31
7688 double array
Z
31x31
7688 double array
t
1x501
(11) 帮助.
3、实验指导 Matlab 是美国 Mathworks 公司推出的一套高性能的数值分析和计算软件,它将矩阵运
算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问 题分析计算和程序设计的工具。
Matlab 语言可以被认为是一种解释性语言,用户可以在 Matlab 的工作空间中输入一个 指令,也可以在编辑器中编写应用程序,应用程序执行时,Matlab 软件对其中的命令和函 数进行翻译,然后在 Matlab 环境中对它进行处理,最后返回结果。 (1)数值、变量和表达式
基于MATLAB实验数据的几种处理方法
模式识别与仿真技术Pattern Recognition and Simulation《自动化技术与应用》2005年第24卷第1期基于MAT LAB实验数据的几种处理方法吴晓光,徐精彩,李树刚,李 华(西安科技大学,陕西 西安 710054)摘要:本文从M AT LAB的工程计算与数据处理能力出发,着重讨论如何运用M AT LAB实现实验数据处理的方法,包括数据拟合、数值插值、数值微商和数值积分,并通过实际应用得出M AT LAB是具有强大数据计算和分析功能的软件,同时将使用者从繁琐的底层编程中解放出来,大大提高工作效率。
关键词:数据处理;M AT LAB;曲线拟合中图分类号:TP27412 文献标识码:B 文章编号:100327241(2005)0120025203Matla b-bas e d Proces sin g Met h o ds of Exp eri m e ntal DataWU Xiao-guang,XU Jing-cai,LI Shu-gang,LI H ua(X i’an University of Science&T echnology,X i’an710054,China)Abstract:Because of the high capability of the engineering calculation and data processing of M AT LAB,the data processing methods suck as data fit2 ting,data interpretation,differential and integral for the experimental data by using M AT LAB are all presented in the paper.K ey w ords:Data processing;M AT LAB;Curve fitting1 引言数据处理是一项复杂、繁琐的事情,随着计算机技术的迅速发展,美国Mathw orks公司于1967年推出了Matrix Laboratory(缩写为M AT LAB)软件包,集应用程序和图形于同一环境[1]。
Matlab实验报告
实 验 内 容
<设计性实验> 1、对于连续信号 x(t)=1+cos(2πft),其中 f=5kHz,分别以采样频率 fs=6 kHz 和 fs=12kHz 对其 进行采样, (1)分别绘出对应的采样信号。 (2)对信号进行傅里叶变换,绘出对应的曲线。 (3)在 simulink 仿真环境下,设计系统框图,观察信号的频谱成分。 实验源程序: (1)采样 clear all; fs1=6000;fs2=12000;f=5000; dt1=1/fs1;dt2=1/fs2; t=0:0.00001:0.0005;t1=0:dt1:0.005;t2=0:dt2:0.0025; x_t=1+cos(2*pi*f*t); x_t1=1+cos(2*pi*f*t1); x_t2=1+cos(2*pi*f*t2); figure(1) subplot(3,1,1) plot(t,x_t); title('原始信号') subplot(3,1,2) plot(t1,x_t1); title('采样频率 6kHZ 的采样信号') subplot(3,1,3) plot(t2,x_t2); title('采样频率 12kHZ 的采样信号') xlabel('时间/s')
3、lpf 函数 function [t,st]=lpf(f,sf,B); df = f (2) - f (1); T = 1/df; hf = zeros(1,length(f)); bf = [ -floor(B/df):floor(B/df)] + floor(length(f)/2); hf(bf) = 1; yf = hf.*sf; [t,st]=F2T(f,yf); st = real(st);
实验一 数据处理方法的MATLAB实现范文
实验一数据处理方法的MATLAB实现一、实验目的学会在MATLAB环境下对已知的数据进行处理。
二、实验方法1. 求取数据的最大值或最小值。
2. 求取向量的均值、标准方差和中间值。
3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。
三、实验设备1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。
四、实验内容1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。
2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。
五、实验步骤1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。
双击打开Matlab,在命令窗口(command window)中,输入一组数据:实验一数据处理方法的MATLAB实现一、实验目的学会在MATLAB环境下对已知的数据进行处理。
二、实验方法1. 求取数据的最大值或最小值。
2. 求取向量的均值、标准方差和中间值。
3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。
三、实验设备1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。
四、实验内容1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。
2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。
五、实验步骤1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。
双击打开Matlab,在命令窗口(command window)中,输入一组数据:x=[1,4,2,81,23,45]x =1 42 81 23 45单击保存按钮,保存在Matlab指定目录(C:\Program Files\MATLAB71)下,文件名为“mydat.mat”。
实验一 MATLAB数字图像处理初步
实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
6. 了解图像的算术运算在数字图像处理中的初步应用。
7.体会图像算术运算处理的过程和处理前后图像的变化。
二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。
灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。
例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。
因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。
图像关于x和y坐标以及振幅连续。
要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。
将坐标值数字化成为取样;将振幅数字化成为量化。
采样和量化的过程如图1所示。
因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。
作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。
图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类:亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。
若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。
若图像是double类,则像素取值就是浮点数。
重庆大学-数学实验-1MATLAB软件入门
其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为153=1 计算程序
for a=1:1:9 for b=0:1:9 for c=0:1:9 A=a*100+b*10+c; if A==a^3+b^3+c^3 disp(A)
end end end end 最终结果: 153 370 371 407 分析:此题使我进一步熟悉了循环语句for、while等的基本格式和应用方法, 得注意的是每一个循环语句或条件语句的出现,必定要对应的出现一个end,这 点很容易忽视。 6.编写函数M-文件sq.m:用迭代法求的值。求平方根的迭代公式为 程序: function f=sq(a) a>=0 x=eps; y=1/2*(x+a/x); while (abs(x-y)>=10^(-5)) x=y y=1/2*(x+a/x) end f=x else disp('their exist errors') end 运行结果 调用sq(16),输出结果是4.0000 分析:此题要求掌握利用循环语句进行迭代,实现开方方程的求解,另外x的取
分析在表达乘方的时候要用“y1=x.^2”的形式,在表达x分量的时候可以用 linspace和直接用 生成数组的形式。主要函数:plot:生成图片;hold on和old off用来在同一幅图 描图;text:用程序对图片加标注;gtext:用鼠标在图中加字符;title:用于对 加标题。
Matlab解决弗兰克—赫兹实验的实验数据处理
《数学实验》报告实验名称MATLAB与数学实验_ 学院专业班级姓名学号年月工科物理实验一、【作业题目】弗兰克—赫兹实验的实验数据处理;二、【作业程序】x=0:0.5:53;y=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.012,0.027,0.051,0.068,0.085,0.095,0.105,0.113,0.121,0.126,0.127,0.128,0.125,0.12,0.111,0.101,0.088,0.075,0.062,0.048,0.037,0.027,0.021,0.019,0.023,0.041,0.074,0.114,0.154,0.183,0.211,0.231,0.242,0.247,0.243,0.234,0.214,0.191,0.158,0.128,0.095,0.078,0.065,0.054,0.047,0. 04,0.039,0.056,0.084,0.148,0.213,0.263,0.313,0.347,0.372,0.388,0.39,0.381,0.364,0.332,0.289,0.252,0.198,0.146,0.102,0.076,0.054,0.045,0.044,0.045,0.066,0.142,0. 221,0.295,0.348,0.405,0.437,0.47,0.492,0.5,0.498,0.483,0.445,0.417,0.356,0.285];p2=polyfit(x,y,2)p7=polyfit(x,y,7)p10=polyfit(x,y,10)p20=polyfit(x,y,20)disp('二次拟合函数'),f2=poly2str(p2,'x')disp('七次拟合函数'),f7=poly2str(p7,'x')disp('十次拟合函数'),f10=poly2str(p10,'x')disp('二十次拟合函数'),f20=poly2str(p20,'x')x1=0:0.5:53;y2=polyval(p2,x1);y7=polyval(p7,x1);y10=polyval(p10,x1);y20=polyval(p20,x1);plot(x,y,'rp',x1,y2,'--',x1,y7,'bd',x1,y10,'y-.',x1,y20,'k-')三、【作业结果】p2 =0.0001 0.0023 0.0025p7 =-0.0000 0.0000 -0.0000 0.0001 -0.0024 0.0230 -0.0854 0.0648p10 =-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0001 -0.0014 0.0112 -0.0458 0.0727 -0.0202p20 =Columns 1 through 130.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0001Columns 14 through 21-0.0012 0.0084 -0.0398 0.1268 -0.2473 0.2547 -0.1007 0.0027二次拟合函数f2 =8.8472e-05 x^2 + 0.0023245 x + 0.0024688七次拟合函数f7 =-2.4449e-10 x^7 + 4.5621e-08 x^6 - 3.3585e-06 x^5 + 0.00012385 x^4- 0.0023934 x^3 + 0.022986 x^2 - 0.085418 x + 0.06481十次拟合函数f10 =-8.8668e-14 x^10 + 2.1806e-11 x^9 - 2.2792e-09 x^8 + 1.3223e-07 x^7- 4.6647e-06 x^6 + 0.00010298 x^5 - 0.0014065 x^4 + 0.011236 x^3- 0.045832 x^2 + 0.072654 x - 0.020234二十次拟合函数f20 =7.7725e-26 x^20 - 4.2453e-23 x^19 + 1.0725e-20 x^18 - 1.6619e-18 x^17+ 1.7666e-16 x^16 - 1.365e-14 x^15 + 7.9243e-13 x^14 - 3.5248e-11 x^13 + 1.2142e-09 x^12 - 3.2533e-08 x^11 + 6.7733e-07 x^10 - 1.0894e-05 x^9 + 0.00013389 x^8 - 0.0012359 x^7 + 0.0083537 x^6 - 0.039837 x^5+ 0.12682 x^4 - 0.24729 x^3 + 0.25467 x^2 - 0.10066 x + 0.0026858四、【作业分析】通过使用Matlab对弗兰克赫兹实验的实验数据处理,可以观察到上图所示的曲线。
基于MATLAB的误差数据处理实验报告
基于MATLAB的误差数据处理实验报告《误差理论与数据处理》实验20121138晋美扎巴·测控三班实验⼀:MATLAB软件基础(⼀)实验⽬的:熟悉MATLAB软件的⽤户环境;了解MATLAB软件的⼀般⽬的命令;掌握MATLAB教组操作与运算函数;掌握MATLAB软件的基本绘图命令;掌握MATLAB语⾔的⼏种循环、条件和开关选择结构。
(⼆)实验内容:1.MATLAB软件的数组处理及运算操作E=eye(3,3);R=rand(3,2);O=zeros(2,3);S=[2,0;0,4];A=[E,R;O,S]B=[E,R+R*S;O,S^2]C=A*A所以B=C,原结论成⽴。
2.直接使⽤MATLAB软件进⾏作图练习(1)t=-1:0.01:1;x=sin(2*pi*t);y=cos(2*pi*10*t);plot(t,x,t,y)xlabel('t');ylabel('函数值')legend('正弦函数','余弦函数')(2)1) x=-10:0.01:10; y=normpdf(x,0,1); plot(x,y)(3)[x,y]=meshgrid(-10:0.05:10);z=sin(pi*sqrt(x.^2+y.^2));mesh(x,y,z);3.⽤MATLAB语⾔编写命令M-⽂件和函数M-⽂件a=input('请输⼊a的值')x0=a./2x1=(x0+a./x0)./2while(abs((x0-x1)>1e-5))x0=x1;x1=(x0+a./x0)./2;enddigits(8)vpa(x1)实验⼆:测量数据的统计分析(⼀)实验⽬的:通过对测量数据进⾏统计分析,学习掌握测量数据统计分析的基本⽅法。
(⼆)实验内容:1.>> x=normrnd(10,5,500,1);>> mu=mean(x)mu =9.7672>> sigma=std(x)sigma =4.8754>> va=var(x)va =23.7697>> hist(x)>> y=normpdf(x,mu,sigma); >> plot(x,y)2. x=-15:0.01:15; y1=normpdf(x,0,1); y2=normpdf(x,0,4); y3=normpdf(x,10,1); plot(x,y1,y2,y3);3.>> x=randn(500,1);>> mu=mean(x);>> va=var(x);>> cs=skewness(x);>> ck=kurtosis(x);>> hist(x);>> sigma=std(x);>> y=normpdf(x,mu,sigma); >> plot(x,y) >> cscs =0.1117>> ckck =3.0089>> mumu =0.0730>> vava=0.99814. >> x=-5:0.1:5; >> y1=tpdf(x,5); >> y2=tpdf(x,10); >> y3=tpdf(x,20); >> z=normpdf(x,0,1); >>plot(x,y1,x,y2,x,y3,x,z)5.>> x=0:0.2:30; >> y1=chi2pdf(x,5); >> y2=chi2pdf(x,10); >> y3=chi2pdf(x,20); >>plot(x,y1,x,y2,x,y3)6.x=0:0.01:10;y1=fpdf(x,4,5);y2=fpdf(x,10,20);y3=fpdf(x,50,50); plot(x,y1,x,y2,x,y3)实验三:等精度和⾮等精度直接测量数据处理(⼀)实验⽬的:通过本实验使学⽣掌握等精度和⾮等精度直接测量数据的基本处理⽅法;学习如何发现和处理测量列中的随机误差、系统误差和粗⼤误差,如何科学地表达测量结果。
MATLAB程序设计实验1
测试数据:
b3= linspace(0,10,5)
4)定数对数采样的方法(logspace(a,b,n)):
n为数组的总个数,a为第一个元素,b为数组的最后一个元素。经过常用对数采样生成一维数组。
测试数据:
b4=logspace(-1,1,4)
[px,py] = gradient(z,.2,.2);
contour(v,v,z), hold on, quiver(v,v,px,py), hold off
4)fminbnd、fminsearch、fminunc极值
x1 = 0;
x2 =2*pi;
[x,y] = fminbnd(@func,x1,x2)
a5=tril(a)
a6=triu(a,1)
5.字符串数组的创建和操作实验
1)字符串的创建
a.直接输入的方法创建字符串数组
在直接创建数组的时候,可以直接用单引号将字符串括起来作为一个字符串数组,字符窗中如果有单引号,可以利用转义的方法,在单引号前面在加一个单引号。一个字符串的数组还可以由其他的字符串数组拼接而成。
e./f
11)克罗内克张量积
kron(a,b)表示利用a的每一个元素和b矩阵相乘,乘后分别作为结果矩阵的一块.
a=[1,2,3;4,5,6];
b=[1,0,0;0,1,0;0,0,1];
kron(a,b)
kron(b,a)
12)逻辑与&
当数组中的元素数字不为0,均表示逻辑1。
a=[1,2,3];
b=[3,4,5];
a.cat函数
cat函数用于连接数组,标准形式为c=cat(dim,A1,A2,A3,…)其中,dim表示传见数组的维数,A1,A2,A3表示各个维度上的数组。
实验一:matlab实现apriori算法源代码
实验一:matlab 实现apriori 算法源代码一、实验目的通过实验,加深数据挖掘中一个重要方法——关联分析的认识,其经典算法为apriori 算法,了解影响apriori 算法性能的因素,掌握基于apriori 算法理论的关联分析的原理和方法。
二、实验内容对一数据集用apriori 算法做关联分析,用matlab 实现。
三、方法手段关联规则挖掘的一个典型例子是购物篮分析。
市场分析员要从大量的数据中发现顾客放入其购物篮中的不同商品之间的关系。
如果顾客买牛奶,他也购买面包的可能性有多大? 什么商品组或集合顾客多半会在一次购物时同时购买?例如,买牛奶的顾客有80%也同时买面包,或买铁锤的顾客中有70%的人同时也买铁钉,这就是从购物篮数据中提取的关联规则。
分析结果可以帮助经理设计不同的商店布局。
一种策略是:经常一块购买的商品可以放近一些,以便进一步刺激这些商品一起销售,例如,如果顾客购买计算机又倾向于同时购买财务软件,那么将硬件摆放离软件陈列近一点,可能有助于增加两者的销售。
另一种策略是:将硬件和软件放在商店的两端,可能诱发购买这些商品的顾客一路挑选其他商品。
关联规则是描述数据库中数据项之间存在的潜在关系的规则,形式为1212......m n A A A B B B ∧∧∧⇒∧∧∧,其中(1,2...,)i A i m =,(1,2...,)j A j n =是数据库中的数据项.数据项之间的关联规则即根据一个事务中某些项的出现,可推导出另一些项在同一事务中也出现。
四、Apriori 算法1.算法描述Apriori 算法的第一步是简单统计所有含一个元素的项集出现的频率,来决定最大的一维项目集。
在第k 步,分两个阶段,首先用一函数sc_candidate(候选),通过第(k-1)步中生成的最大项目集L k-1来生成侯选项目集C k 。
然后搜索数据库计算侯选项目集C k 的支持度. 为了更快速地计算C k 中项目的支持度, 文中使用函数count_support 计算支持度。
数字信号处理实验MATLAB上机DOC
班级: 学号: 姓名: 日期: 实验一:离散时间信号的分析一、实验目的利用DFT 卷积实现系统的时域分析二、实验原理在离散时间、连续频率的傅里叶变换中,由于卷积性质知道,对系统输出的计算可以通过求x[n]和h[n]的DTFT ,将得到的X(e jw )和H(e jw )相乘就可以得到Y(e jw ),进而再通过反变换得到y[n]。
这就避免了在时域进行繁琐的卷积求解。
三、实验步骤(包括代码和波形)1-2(2)x[k]=g[k]=k+1,0<=k<=3;x[k]=g[k]=0,其他 编码如下:ak=1:4 gk=1:4Z=conv(ak,gk) stem(Z)波形如下:12345675101520251-3(1)已知序列x[k]={1,2,3,4;k=0,1,2,3},y[k]={-1,1,2,3;k=0,1,2,3},试计算x[k]的自相关函数以及序列x[k]与y[k]的互相关函数。
编码如下:x=[1,2,3,4];kx=0:3; y=[-1,1,-2,3];ky=0:3; xf=fliplr(x); s1=conv(x,xf); s2=conv(xf,y); yf=fliplr(y); s3=conv(yf,x);k1=kx(1)+ky(1):kx(end)+ky(end); kxf=-fliplr(kx);k2=kxf(1)+ky(1):kxf(end)+ky(end); kyf=-fliplr(ky);k3=kyf(1)+kx(1):kyf(end)+kx(end); subplot(2,2,1); stem(k1,s1);xlabel('k1');ylabel('s1'); subplot(2,2,2); stem(k2,s2);xlabel('k2');ylabel('s2'); subplot(2,2,3) stem(k3,s3);xlabel('k3');ylabel('s3');波形如下:0246102030k1s 1-4-2024-10-50510k2s 2-4-2024-10-50510k3s 3M-1已知g1[t]=cos(6*pi*t),g2=cos(14*pi*t),g3=cos(26*pi*t),以抽样频率f(max)=10HZ对上述三个信号进行抽样。
matlab实验一实验报告
matlab实验一实验报告实验一:Matlab实验报告引言:Matlab是一种强大的数学软件工具,广泛应用于科学计算、数据分析和工程设计等领域。
本实验旨在通过使用Matlab解决实际问题,探索其功能和应用。
一、实验目的本次实验的主要目的是熟悉Matlab的基本操作和常用函数,了解其在科学计算中的应用。
二、实验内容1. 数值计算在Matlab中,我们可以进行各种数值计算,包括基本的加减乘除运算,以及更复杂的矩阵运算和方程求解。
通过编写相应的代码,我们可以实现这些功能。
例如,我们可以使用Matlab计算两个矩阵的乘积,并输出结果。
代码如下:```matlabA = [1 2; 3 4];B = [5 6; 7 8];C = A * B;disp(C);```2. 数据可视化Matlab还提供了强大的数据可视化功能,可以将数据以图表的形式展示出来,更直观地观察数据的规律和趋势。
例如,我们可以使用Matlab绘制一个简单的折线图,来展示某个物体在不同时间下的位置变化。
代码如下:```matlabt = 0:0.1:10;x = sin(t);plot(t, x);xlabel('Time');ylabel('Position');title('Position vs. Time');```3. 图像处理Matlab还可以进行图像处理,包括图像的读取、处理和保存等操作。
我们可以通过Matlab对图像进行增强、滤波、分割等处理,以及进行图像的压缩和重建。
例如,我们可以使用Matlab读取一张图片,并对其进行灰度化处理。
代码如下:```matlabimg = imread('image.jpg');gray_img = rgb2gray(img);imshow(gray_img);```三、实验结果与分析在本次实验中,我们成功完成了数值计算、数据可视化和图像处理等任务。
基于MATLAB实验数据的几种处理方法
基于MATLAB实验数据的几种处理方法1.数据可视化:MATLAB提供了丰富的绘图函数和工具箱,可以通过绘制柱状图、折线图、散点图等可视化方式来展示实验数据的分布和趋势。
通过数据可视化,可以更直观地观察数据的特征,发现异常值或者趋势,并作为后续数据处理的依据。
2.数据预处理:对实验数据进行预处理可提高后续分析的准确性。
常见的数据预处理方法有:数据清洗(去除异常值、重复值、缺失值)、数据平滑(滤波处理,如移动平均、中值滤波)、数据标准化(归一化、标准化)等。
可以使用MATLAB的内置函数或者工具箱来实现这些数据预处理方法。
3.拟合与回归分析:通过拟合与回归分析,可以建立实验数据的数学模型,用于预测和估计。
MATLAB提供了各种拟合函数和回归分析工具,如线性回归、非线性回归、多项式拟合等。
这些方法可以帮助我们找到最佳的拟合曲线或者回归方程,用于预测未来的数据或者进行参数估计。
4. 数据聚类与分类:聚类与分类是将数据集划分为不同的类别或者簇群,利用相似性或距离度量确定数据之间的关系。
MATLAB提供了多种聚类和分类算法,如K-means聚类、层次聚类、支持向量机(SVM)等。
通过聚类与分类,我们可以发现数据内在的结构与规律,对数据进行分类,提取关键特征。
5.数据频谱分析:频谱分析是研究信号在频域上的特性,对于周期性信号或者周期性成分较强的信号,频谱分析可以揭示其频率分量和相应的能量分布。
MATLAB提供了多种频谱分析方法,如傅里叶变换、功率谱估计等。
通过频谱分析,我们可以对实验数据进行频域特征提取,提供有关信号周期性、频率成分等信息。
6.时间序列分析:时间序列分析是研究时序数据之间的相关性和趋势性的方法。
MATLAB提供了时间序列分析的函数和工具箱,如自相关函数(ACF)、偏自相关函数(PACF)、平稳性检验、ARMA模型等。
通过时间序列分析,可以建立模型预测未来的数据,或者研究数据随时间的变化规律。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据处理方法的MATLAB实现
一、实验目的
学会在MATLAB环境下对已知的数据进行处理。
二、实验方法
1. 求取数据的最大值或最小值。
2. 求取向量的均值、标准方差和中间值。
3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。
三、实验设备
1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM
2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。
四、实验内容
1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。
2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。
五、实验步骤
1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。
双击打开Matlab,在命令窗口(command window)中,输入一组数据:实验一数据处理方法的MATLAB实现
一、实验目的
学会在MATLAB环境下对已知的数据进行处理。
二、实验方法
1. 求取数据的最大值或最小值。
2. 求取向量的均值、标准方差和中间值。
3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。
三、实验设备
1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM
2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。
四、实验内容
1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。
2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。
五、实验步骤
1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。
双击打开Matlab,在命令窗口(command window)中,输入一组数据:
x=[1,4,2,81,23,45]
x =
1 4
2 81 2
3 45
单击保存按钮,保存在Matlab指定目录(C:\Program Files\MATLAB71)下,文件名为“mydat.mat”。
2. 在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。
继续在命令窗口中输入命令:
(1)求取最大值“max(a)”;
>>
max(x)
ans =
81
(2)求取最小值“min(a)”;
>>
min(x)
ans =
1
(3)求取均值“mean(a)”;
>>
mean(x)
ans =
26
(4)求取标准方差“std(a)”;
>>
std(x)
ans =
31.8748
(5)求取中间值“median(a)”;
median(x)
ans =
13.5000
3. 在MATLAB环境下,编写程序,对已知的数据进行曲线拟合和插值。
在Matlab命令窗口中继续输入:
x=10:1:20;
y=[18,16,13,11,9,7,12,15,19,20,27];
n=2;
p=polyfit(x,y,n);
xi=linspace(10,20,10);
yi=polyval(p,xi);
plot(x,y,'-o',xi,yi,'--');
最终拟合图像如图:
六、问题与讨论
1、曲线拟合和插值有什么区别?常用的曲线拟合和插值方法有哪几种,如何用MATLAB函数实现?
答:插值是用高阶函数将测定的数据点平滑的串联起来。
曲线拟合是用一条平滑的曲线比表示函数变量之间的关系,不要求通过每一个已知点,而整体的拟合数据误差最小。
常用的曲线拟合法有最佳直线拟合、二次多项式拟合等。
常用的插值方法有线性插值法,三次样条插值等。
通过改变输入量“n”的数值可以选择是采用直线拟合还二次多项式拟合。