MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
优势特点
1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2) 具有完备的图形处理功能,实现计算结果和编程的可视化;
3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
直流分量的滤除
直流分量的影响
将采集的脉搏信号截取- 一段数据长度为600 进行信号处理。利用MATLAB仿真,对脉波信号进行功率谱估计的结果如图1所示。在图1中,由于信号中存在直流分量,如果从功率谱峰值上考虑主频,即功率谱峰值最大值所对应的点是信号的主频位置,则在图1中所示的脉搏信号的主频接近于0 Hz,这明显是错误的因为脉搏信号的主频应为1HZ 左右。这样只从功率谱峰值上就很难辨别出脉搏信号的主频值,不利于自动检测信号的主烦。因此,完全有必要把直流分量I0(t)滤除。
无对称性的- -般周期信号f(t)傅立叶级数中包含有直流、正弦和余弦分量。正如图1中所示。在周期信号中,滤除(或增加)一-个直流置,傅立叶级数只会改变其直流分量,其他系数不改变,也就是说,其他的正弦分量不会改变,从而能够简化频谱的分析计算。
最小二乘法原理的应用
通过式(1)可知,1g(t)为信号中的直流分量,如果想滤除信号的直流分量,必须滤除信号中的1。(t)。最小二乘法是以误差理论为依据的严格方法,是实际研究工作中采用的正规的数据处理方法。设xj,xg,A,x。是任一待测量的各次测得值,假设待测量的最可信赖值是%,则应有;
即:最可信赖值乃是能使测量的值误差平方和最小的那个值‘’。,这就是最小二乘法原理的数学描述,此式可从等精度的误差概率正态分布规律推出,在此不作证明。
根据最小二乘法原理,最佳值应满足条件:
滤除信号的直流分量
通过上面所述可知,最可信赖值乃是能使测量的值误差平方和最小的那个值,即各次测量值的算术平均值。在这里我们可以近似认为1。(l)=x,即直流分量等于测量值的算术平均值。那么,在所测信号中减去直流分量即测量的算术平均值,即:先求出所在“窗”内600个数据的平均值元,然后每一个值都减去平均值所得的数值(x。-元),对信号(x。-元)进行功率谐估计。滤除直流分量的脉搏信号(x。-x)的功率谱估计见图2。
3结论
本文在讨论了功率谱估计的原理上,通过直接法功率谱估计的MATLAB仿真,查找信号的主频,分析直流分量的对查找信号主频的影响。基于最小二乘法的原理,找到与信号直流分量I。(t)接近的数值,即各次测量值的算术平均值。通过每一个测量值都减去平均值所得的数值(x。-元),对信号(x。-元)进行功率谱估计,能够有效的滤除信号的直流分量,方便的找到信号的主频,非常有利于信号主频的自动检测,算法简单有效。
评论
查看更多