利用Matlab提取图片中的数据
从事科研或者工程的人员在文档撰写过程中,常需要将文献中的曲线与自己的结果对比,为获取原始数据,一种常用的办法是手动描点,即将原始曲线放大然后打印出来,选取一定数量的点,读出其横纵坐标,然后重绘。对于较为平坦的曲线,这种方法当然可行,但当曲线数量增加,曲线变化复杂,这种方法工作量可想而知。前段时间由于原始数据丢失,仅剩几十幅图片,本人尝试过手动描点,经历几个小时奋战,实在无法继续,索性转向matlab,借助其强大的数据处理能力,编写了两个GUI的小软件image2data、data_poly提取数据,如今大功告成,遂于大家分享。坐标轴标定按下面板上的按钮进行图像放大,按钮恢复初始显示大小,钮采用鼠标拖动图像按钮退出放大或者拖动的鼠标操作模式,空格键表示取点操作,键表示删除上一次取点操作,状态栏的显示当前鼠标取点总数目(注意,初始点数为,然后存处个坐标轴标定坐标,剩余用来存储曲线坐标)。值得指山的是,每次放大或者拖动桨作完毕后,必须按下按钮,才能用空格键进行取点操作。匹回图00.400.351 MHz足0.300.2530 MHz0.20frequency>100 MHz型30681012141618REVERSE VOLTAGE (VFigure 1. RF Capacitance vs ReverseBias. HSMP-3810 Series图坐标轴定标曲线描点按照上述操作反复进行图像放大、拖动、取点,状态栏的和用于显示当前坐标(注紊,这个坐标图像坐标,轴方向向下,后面坐标变换需要考虑),下图给出了描点完毕后的曲线,可以看出取点基本代表了曲线的全部信息。0.45E0400351 MHz0.3002530 MHZ.frequency> 100 MHzpr/。no0.1568101214161820REVERSE VOLTAGE (V)Figure 1. RF Capacitance vs Reversem[1Bias. hsMP-3810 Series图曲线描点数据处理及存储。按下按钮,描点后的曲线会显示在图像当中,按下按钮,程序自动进行坐标转换,得到所有描点的真实坐标,按卜按钮,使会生成一个文木,数据记录其和按钮下都有文本输入框,本别代表输入文本和存储文本的名称,不带后缀)。045"z55sd0.351M3002530 MHafrequency>100 MHz0.1502468101214161820REVERSE VOLTAGE (VFigure l. RF Capacitance vs Reversese4Bias. HsMP-3810 Series图拟合曲线效果记事本巴回囟文件〕编辑巴)格式迫!查看y1帮助)6,6ag15-92h432562gP-6811.18153B60-91488g2c-8912.15288c-E914.81Q68c-691.93177一Bg1571882c-6E-8Ube-出14.168y!:e-Uk1面=363211g-9g1py9py6-6817.99日969e-B914。394g55e-919.6696599e-B913.941218e-0911.119913-Bg3.E786699g-6511.36361243.779192-6811,5邵3777e十3.71813e-6117699899e+053.6164171e-6911_97了5775巴十B035小B725-6612-3111uB!g318286-B12.了7阳7P??5"24"9236P-R13.12096E5e+gs2502的9e-6613.526859e-E日31756187e-651391427562B9.1158646e-6814_287193.806E87ge-651h。47785F7eB98,38E17e-61↓816F877e+2.9877229e-6615.342g3B6e-Eg2.92049e-6615,6428g1eB9g2.B86ge6168697eBgg28616e-816652032cE9g78786ggc-691图数据记录文本数据后处理由于以上数据是于动选取的,故分布不够均匀,下面我们通过数据拟合,然后重新采样得到等间距的数据(可能大家会问,为什么两个功能不做在起呢?数据拟合是个比较味烦的事情,本组曲线采用多项式拟合即可,可对于更多的曲线采用指数函数、正弦函数等才能得到比较好的结果中的工具箱就包含了很多的拟合函数,为避免重复工作,仅绵写了这个小软件用来数据拟合再采样,其他的拟合就靠了)。运行代表多项式拟合的阶数(一般就够用了),代表重新釆样的数据个数,其他几个就不用解释了,默认输入文本为输出文本为,数据拟合结果如下图所示Xmax 23 ymax045fing图数据拟合再采样结果至此,数据提取过程完毕,可能操作上有些不便(毕竞只是小T具而已),但比起于动描点的速度和精度,可谓小巫见大巫。软件编写要点这两个小软件从构思到完成大概用了两大,功能的完成绝大部分归功」丰富的函数库和方便的,其中用到的主要函数上要有列衣如下,更详的介绍请参阅文档。表主要函数列表除了上述函数的掌握之外,还需要对的数据结构和函数响应有一定的理解,在此就不多讲了(多看相关例程就明白了)。编写程序之前,首先心中要有一个框架,做些什么,怎么做,顺序如何等。本软件的结构如下图所示:导入图像创建数据结构坐枟轴定标曲线描点坐标变換数据后处彐:拟合、重新采样、存储图程序沇程示意导入图像程序段:创建数据结构程序段坐标轴定标及坐标变换:数据后处理代码段附录3.1描点数据列表数据拟合结果3.3、重新采样数据列表
- 2020-12-04下载
- 积分:1
xilinx_CORDIC算法(非常经典)
FPGA有关的cordic讲解,xilinx公司ppt型的详细讲解,中文。从原理到实现(模型的建立等)。简介目前的具有许多乘法器和加法器。然而各种各样的通信技术和矩阵算法则需要三角函数、平方根等的运算如何在上执行这些运算可以使用查找表或是迭代法本节介绍了算法这是一个移位相加算法允许计算不同的三角函数例如0.0.0包括除法和对数酾数在内的其它函数。xⅫNX关于算法的细节问题,可参见下面的材料技术并不是什么新鲜的东西。事实上它可以追溯到年由发表的一篇文章。在上个世纪五十年代,在大型实际的计算机中的实行移位相加受到了当时技术上的限制,所以使用变得非常必要。到了七十年代,和其他公司出产了手持计算器,许多计算器使用一个内部单元来计算所有的三角函数(了解这件事的人们一定还记得,那时求一个角度的正切值需要延迟大约1秒中)二十世纪八十年代,随着高速度乘法器与带有大存储量的通用处理器的出现, CORDIC算法变得无关紧要了。然而在二十一世纪的今天,对于来说,定是在应用中(诸如多输入多输出(波束形成以及其他自适应系统)计算三角函数的备选技术。wwwsteepestascenCO1笛卡尔坐标平面旋转在坐标平面上将点(,)旋转0角度到点(,)的标准方法如下所示00这被称为是平面旋转、向量旋转或者线性矩阵代数中的旋转。xⅫNX上面的方程组同样可写成矩阵向量形式00例如一个相移为wwwsteepestascenCO1伪旋转通过提出因数,方程可写成下面的形式000(0)如果去除0项,我们得到伪旋转方程式0)6(0)即旋转的角度是正确的,但是与的值增加9倍由于所以模值变大。注意我们并不能通过适当的数学方法去除0项然而随后我们发现去除θ项可以简化坐标平面旋转的计算操作。xⅫNX在坐标平面中0因此经过伪旋转之后,向量的模值将增加0倍。向量旋转了正确的角度但模值出现错误。wwwsteepestascenCO1方法方法的核心是伪旋转角度θ,其中θ。故方程为下面的表格指出用于算法中每个迭代的旋转角度精确到位小数xⅫNX在这里,我们把变换改成了迭代算法。我们烀各种可能的旋转角度加以限制,使得对任意角度θ的旋转能够通过一系列连续小角度的旋转迭代来完成。旋转角度遵循法则:0,遵循这样的法则,乘以正切项变成了移位操作。前几次迭代的形式为第次迭代旋转第次迭代旋转第次迭代旋转等很显然,每次旋转的方向都影响到最终要旋转的累积角度。在≤日的范围内的任意角度都可以旋转。满足法则的所有角度的总和0为。对于该范围之外的角度,可使用三角恒等式转化成该范围内的角度。当然,角分辨率的数据位数与最终的精度有关。。因此,在次旋转以后,为了标定伪旋转的幅度,要求乘以一个系数角分辨率的数据位数对最终的旋转精度非常关键。wwwsteepestascenCO1
- 2020-11-29下载
- 积分:1