ADC的过采样技术
过采样ADC滤波算法

过采样ADC滤波算法过采样ADC滤波算法过采样ADC(Analog-to-Digital Converter)是一种常用的模拟信号转换为数字信号的技术。
它通过在模拟信号采样过程中进行多次采样,然后通过数字滤波算法对这些采样值进行处理,以提高精度和抗干扰能力。
下面我们来逐步介绍过采样ADC滤波算法的实现步骤:第一步:采样首先,我们需要对模拟信号进行采样。
过采样ADC通常会以更高的采样率进行采样,从而提高系统的抗干扰能力和准确度。
在这一步骤中,我们会得到一系列模拟信号的采样值。
第二步:建立滤波器接下来,我们需要建立一个数字滤波器来对采样值进行处理。
这个滤波器通常是一个数字滤波算法,如FIR(Finite Impulse Response)滤波器或IIR (Infinite Impulse Response)滤波器。
滤波器的功能是去除采样值中的噪声和不必要的频率成分。
第三步:插值在这一步骤中,我们会对采样值进行插值处理。
插值是一种通过已知数据点,估计其他位置上数值的方法。
常用的插值方法有线性插值、多项式插值等。
插值的目的是增加采样点,使得滤波器的输出更加平滑。
第四步:滤波现在,我们可以将插值后的采样值输入到滤波器中进行滤波。
滤波器会根据采样值的频域特性进行处理,去除不需要的频率成分,并将滤波后的结果输出。
第五步:降采样最后,我们需要对滤波器的输出进行降采样。
降采样是将高采样率的数据转换为低采样率的数据。
这可以通过简单地选择输出数据中的每第n个样本来实现,其中n是降采样的因子。
通过以上步骤,我们成功地实现了过采样ADC滤波算法。
这个算法能够有效地提高系统的精度和抗干扰能力,适用于很多需要高质量信号转换的应用领域,如音频处理、无线通信等。
总结起来,过采样ADC滤波算法的步骤包括采样、建立滤波器、插值、滤波和降采样。
通过这些步骤的处理,我们可以获得更准确、更稳定的数字信号。
sigemaadc原理

sigemaadc原理sigma-delta广播,也称为sigma-delta调制,是一种数字信号处理技术,用于将模拟信号转换为数字信号。
它的目标是以尽可能低的成本和复杂度来实现高度精确的模拟到数字(ADC)和数字到模拟(DAC)转换。
下面我将详细介绍sigma-delta广播的原理和工作方式。
1.概述sigma-delta广播是一种过采样技术,其原理是通过将模拟信号与高频的数字信号混合,然后通过数字滤波器进行滤波和解调,最后得到所需的数字表示。
这种技术是一种折衷方案,它通过牺牲频率范围来获得更高的分辨率。
2.工作原理sigma-delta广播的基本理念是将输入信号通过一个差分器与一个参考电平相减,然后将结果通过一个累加器进行积分。
累加器的输出经过一个比较器与一个比较电平进行比较,产生一个数字输出。
这个数字输出表示模拟信号相对于参考电平的增减情况。
3.模拟和数字滤波为了产生高精度的数字表示,sigma-delta广播使用了两个滤波器。
第一个是模拟滤波器,它通过降低输入信号的带宽来抑制高频噪声。
第二个是数字滤波器,它对经过模数转换器的输出进行滤波和解调。
这些滤波器可以是软件实现的数字滤波器或硬件电路中的滤波器。
4.高阶和多级结构为了提高精度,sigma-delta广播通常使用高阶(即具有多级或多个级联的一阶差分器)结构。
高阶结构可以通过增加积分器的数量来提高信噪比。
此外,多级结构还可以通过级联多个模数转换器来提高分辨率。
5.量化误差和噪声振幅在sigma-delta广播中,量化误差是由于数字转换器本身的有限精度引起的。
为了减小量化误差的影响,通常需要使用更高的比特数来表示数字输出。
另一个影响精度的因素是噪声振幅,即模拟信号中包含的噪声。
通过使用高阶结构、过采样和滤波器设计,可以有效地抑制量化误差和噪声振幅。
6.使用范围sigma-delta广播通常用于低频和中频信号的数字转换。
由于它的高精度和低成本,它在音频和视频编码、无线通信、传感器接口等领域得到广泛应用。
SigmaDelta ADC原理.ppt

现在,如果对噪声成型后的∑-△调制器输出进行数字滤 波,将有可能移走比简单过采样中更多的噪声。这种调制器 (一阶)在每两倍的过采样率下可提供9dB的SNR改善。
在∑-△调制器中采用更多的积分与求和环节,可以提 供更高阶数的量化噪声成形。例如,一个二阶∑-△调制器 在每两倍的过采样率可改善SNR 15dB。
q 1/ 2N
•若输入信号的最小幅度大于量化器的量化阶梯Q, 量化噪声的总功率是一个常数,与采样频率fs无关,
功率密度谱在0~fs/2的频带范围内均匀分布。
•量化噪声电平与采样频率成反比,提高采样频率, 可以降低量化噪声电平,而基带是固定不变的,因 而减少了基带范围内的噪声功率,提高了信噪比。
1 K
。如果直接使用
过采样方法使分辨率提高N位,必须进行 K 22N 倍过
采样。
为使采样速率不超过一个合理的界限,在Σ-ΔADC 中采用Σ-Δ调制器,利用反馈来改变量化噪声在0~ fs / 2 之间的平坦分布,使之成为增函数形式。
设Q为量化噪声,H(S)为模拟滤波器的传递函数,输 入信号为X,输出信号为Y,有
三、量化噪声整形
1、量化误差定义
ADC输入的模拟量是连续的,而输出的数字量是 离散的,用离散的数字量表示连续的模拟量,需要经 过量化和编码,由于数字量只能取有限位,故量化过 程会引入误差,量化误差也称量化噪声。
数字量用N位二进制数表示时最多可有 2N 个不同 编码。在输入模拟信号归一化为0~1之间数值的情 况下,对应输出码的一个最低有效位(LSB)发生变化 的最小输入模拟量的变化量为:
Y (X Y) / S Q
整理得
Y X /(S 1) QS/(S 1)
可见,当频率接近0时,(S→0),输出Y趋于X,且无噪声分量, 当频率增高时,X/(S+1)项的值减小,而噪声分量QS/(S+1)增加, 即Σ-△调制器对输入信号具有低通作用,对内部量化器产生的量
SigmaDeltaADC原理总结

2、量化噪声功率
设量化噪声是白噪声,用e(n)表示,其在以±q/2 量化单位所划分的各量化电平内的分布是一样的, 量化噪声功率用方差表示为 2
3、量化噪声的功率谱密度 由于量化噪声均等地散布于整个采样频率( fS )范围 内,所以量化噪声的功率谱密度可表示为:
q2 D(f ) 12f S
1 q/2 2 q E[e ] e de q q / 2 12
带模拟滤波和数字滤波的过采样
信噪比与阶数和过采样倍率之间的关系
单级调制器1~4阶与达到分辨率的最低过采样比
精度(n)
M(1阶) 2048 8192 32768 131072 524288
M(2阶) 65 129 257 514 1034
M(3阶)
M(4阶)
12 14 16 18 20
36 59 9•若输入信号的最小幅度大于量化器的量化阶梯 Q, 量化噪声的总功率是一个常数,与采样频率fs无关,
功率密度谱在0~fs/2的频带范围内均匀分布。
•量化噪声电平与采样频率成反比 ,提高采样频率 , 可以降低量化噪声电平 , 而基带是固定不变的 , 因 而减少了基带范围内的噪声功率,提高了信噪比。
1 K
设Q为量化噪声,H(S)为模拟滤波器的传递函数,输 入信号为X,输出信号为Y,有
Y ( X Y) / S Q
整理得
Y X /(S 1) QS /(S 1)
可见,当频率接近0时,(S→0),输出Y趋于X,且无噪声分量, 当频率增高时,X/(S+1)项的值减小,而噪声分量QS/(S+1)增加, 即Σ-△调制器对输入信号具有低通作用,对内部量化器产生的量 化噪声具有高通作用。换言之, Σ-△调制器具有改变噪声分布状 Σ-Δ调制器的频域线性化模型 态的功能。这种对量化噪声的频谱进行整形的特性为噪声整形特 性。
基于stm32微控制器的过采样技术研究与实现

基于stm32微控制器的过采样技术研究与实现过采样(Oversampling)技术是指通过提高采样率,对输入信号进行多次采样,以提高较低采样率下的信号精度和动态范围。
在基于STM32微控制器的过采样技术研究与实现上,通常会使用STM32的内置模数转换器(ADC)模块来进行过采样。
以下是一种可能的实现方法:1. 初始化ADC模块:首先,需要初始化ADC模块的相关参数,包括采样率、精度、通道等。
可以通过寄存器配置或者使用CubeMX等开发工具进行初始化。
2. 设置过采样参数:设置过采样率和过采样模式。
过采样率一般选择为4倍或8倍,可以根据实际需求进行调整。
过采样模式有两种:线性过采样和峰值过采样。
线性过采样模式将多次采样的结果相加取平均值,峰值过采样模式则选择多次采样中的最大值作为结果。
3. 进行过采样采样:按照设置的过采样率进行多次采样,可以使用ADC的DMA 模式进行连续采样,也可以使用定时器中断触发采样。
每次采样完成后,将采样结果保存到缓冲区中。
4. 处理过采样结果:根据选择的过采样模式,对采样结果进行处理。
线性过采样模式下,将多次采样结果相加,然后除以过采样率得到平均值;峰值过采样模式下,选择多次采样中的最大值作为结果。
处理后的结果可以直接使用,也可以进一步进行滤波等处理。
需要注意的是,在进行过采样时,需要考虑处理器的处理能力和存储空间。
过高的过采样率会占用较多的处理能力和存储空间,可能导致系统性能下降。
因此,需要根据实际需求进行权衡和优化。
此外,还可以使用STM32的其他功能模块,如滤波器模块和定时器模块,对过采样结果进行进一步处理和控制。
总之,基于STM32微控制器的过采样技术研究与实现可以通过配置ADC模块、设置过采样率和过采样模式、进行多次采样、处理采样结果等步骤来实现。
具体的实现方法可以根据实际应用需求和硬件资源进行调整和优化。
单片机内置ADC实现高分辨率采样

什么是过采样?在信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。
从理论上讲,如果以奈奎斯特速率或更高的速率进行采样,则可以完美地重建带宽受限的信号。
奈奎斯特频率定义为信号带宽的两倍。
过采样能够提高分辨率和信噪比SNR,并且通过放宽抗混叠滤波器的性能要求,有助于避免混叠和相位失真。
在很多项U应用中,需要测量信号的动态范W较大,且需要参数的微小变化。
例如,ADC需要测量很大的温度范囤(比如工业中其至要求从- 2o(rc~5o (rc),但仍要求系统对小于i度的变化做出响应。
常见的单片机片上ADC位数为12位,如要实现高于12位分辨率要怎么做呢?我们知道奈奎斯特・香农采样定理可知:/» = 2 X /m其中:条:为输入待采样信号最高频率九•为奈奎斯特频率。
如果实际采样频率高于奈奎斯特频率仏即为过采样。
那么低于奈奎斯特采样高的分辨率呢?要知道所采用的ADC®件核分辨率是固定的,难道还会变不成?过采样提高分辨率_____________________________________________________ 如果对一模拟信号,采用过采样,然后再进行一定的软件后处理,理论上是可以得到更高分辨率的:为增加有效位数effective number of bits),对信号进行过采样,所需(ENOB :的过采样率可以曲下面公式确定(省略理论推导,过于枯燥):九=4* X去其中:/加为过采样频率人产品所需实际采样频率W为额外所需增加的分辨率位数假设系统使用12位ADC每100 ms输出一次采样值也即(lOHz)。
为了将测量的分辨率提高到16位,我们按上述公式计算过采样频率:仏=4用X /, = 4^ X 10 = 2560Hz因此,如果我们以fs=2560Hz对信号进行过采样,然后在所需的采样周期内收集足够的样本以对它们进行平均,现在可以将16位输出数据用于16位测量。
学习笔记-过采样原理与应用
学习笔记
过采样原理与应用
1、为什么使用过采样技术?
12 位ADC 并采用过采样和求均值技术即可达到以16位分辨率测量某个参数的目的,而不必使用昂贵的片外16位ADC。
2、优缺点?
优点:过采样和求均值对SNR和测量分辨率的改善。
缺点:增加CPU时间和降低数据吞吐率。
3、应用限制
ADC 噪声近似为白噪声的情况。
如果输入信号在样本之间随机变化,变化幅度与代码规模(1 LSB)接近,并且在两个个相邻代码之间有相等的概率,则噪声可以被当作白噪声处理,白噪声的特点是在整个有用频带内具有一致的功率谱密度,在噪声可以被近似为白噪声的情况下,过采样和求均值可以改善SNR 和提高数据的有效分辨率。
可以用过采样和求均值技术提高性能的例子如下:
不适合的例子如下:
4、应用方程
例如12位ADC希望通过过采样达到16位效果,则采样频率需要提升2(16-12)=256倍,256次采样结果加和然后除以16,即可得到16位的输出结果。
5、参考资料
1.《AN018-用过采样和求均值提高ADC 分辨率》
2.《AN2834-如何在STM32微控制器中获得最佳ADC精度》
STM32采样精度提高.pdf AN018_用过采样和求均值提高ADC分。
ADC的过采样技术
ADC 的过采样技术其实原理很简单, 很容易明白, 怎样实现提高分辨率?假定环境条件: 10位ADC最小分辨电压1LSB 为1mv假定没有噪声引入的时候, ADC采样上的电压真实反映输入的电压, 那么小于1mv的话,如ADC在0.5mv是数据输出为0我们现在用4倍过采样来, 提高1位的分辨率,当我们引入较大幅值的白噪声: 1.2mv振幅(大于1LSB), 并在白噪声的不断变化的情况下, 多次采样, 那么我们得到的结果有真实被测电压白噪声叠加电压叠加后电压ADC输出ADC代表电压0.5mv 1.2mv 1.7mv 1 1mv0.5mv 0.6mv 1.1mv 1 1mv0.5mv -0.6mv -0.1mv 0 0mv0.5mv -1.2mv -0.7mv 0 0mvADC的和为2mv, 那么平均值为: 2mv/4=0.5mv!!! 0.5mv就是我们想要得到的这里请留意, 我们平时做滤波的时候, 也是一样的操作喔! 那么为什么没有提高分辨率?????是因为, 我们做滑动滤波的时候, 把有用的小数部分扔掉了, 因为超出了字长啊, 那么0.5取整后就是0 了, 结果和没有过采样的时候一样是0 ,而过采样的方法时候是需要保留小数部分的, 所以用4个样本的值, 但最后除的不是4, 而是2! 那么就保留了部分小数部分, 而提高了分辨率!从另一角度来说, 变相把ADC的结果放大了2倍(0.5*2=1mv), 并用更长的字长表示新的ADC 值,这时候, 1LSB(ADC输出的位0)就不是表示1mv了, 而是表示0.5mv, 而(ADC输出的位1)才是原来表示1mv的数据位,下面来看看一下数据的变化:ADC值相应位9 8 7 6 5 4 3 2 1 00.5mv测量值0 0 0 0 0 0 0 0 0 0 0mv(10位ADC的分辨率1mv,小于1mv无法分辨,所以输出值为0)叠加白噪声的4次过采样值的和0 0 0 0 0 0 0 0 1 0 2mv滑动平均滤波2mv/4次0 0 0 0 0 0 0 0 0 0 0mv(平均数, 对改善分辨率没作用)过采样插值2mv/2 0 0 0 0 0 0 0 0 0 0 1 2mv/2=0.5mv, 将这个数作为11位ADC值, 那么代表就是0.5mv这里我们提高了1位的ADC分辨率这样说应该就很简单明白了吧, 其实多出来的位上的数据, 是通过统计输入量的分布, 计算出来的,而不是硬件真正分辨率出来的, 引入噪声并大于1LSB, 目的就是要使微小的输入信号叠加到ADC能识别的程度(原ADC最小分辨率).理论来说, 如果ADC速度够快, 可以无限提高ADC的分辨率, 这是概率和统计的结果但是ADC的采样速度限制, 过采样令到最后能被采样的信号频率越来越低,就拿stm32的ADC来说, 12ADC, 过采样带来的提高和局限分辨率采样次数每秒采样次数12ADC 1 1M13ADC 4 250K14ADC 16 62.5K15ADC 64 15.6K16ADC 256 3.9K17DC 1024 97618ADC 4096 24419ADC 16384 6120ADC 65536 15要记住, 这些采样次数, 还未包括我们要做的滑动滤波,看到这些文档, 啰啰嗦嗦说一大堆公式什么的, 忍不住就随便写了些,如果我是做IC的, 我一定要求把文档写到白话文一样, 小学生都能看明白的, 自然小学生都会用, 人多用了, 才有钱赚嘛,都不知道这些芯片厂是怎么推广的, 写一大堆公式有什么用, 这么复杂的芯片都设计了, 写个文档却马马虎虎,其实不管多复杂的公式, 实现起来还不是加减乘除, 废话少说, 有时间再写了......。
通信信号处理中过采样技术的应用方法
通信信号处理中过采样技术的应用方法
过采样是一种在信号处理中常用的技术,通过对信号进行适当的过采样可以提高信号的质量和精度,同时对于某些特殊的应用还可以有其他的优势。
以下是通信信号处理中过采样技术应用的一些方法。
1. 模数转换器(ADC)的读数平滑:过采样可以提高ADC的读数精度和动态范围。
通常情况下,ADC的输出是一个离散的数字序列,通过对信号进行过采样,可以得到更多的采样点,从而更准确地还原原始信号。
2. 数字滤波器的设计:过采样可以提高数字滤波器的性能。
在通信系统中,需要对信号进行滤波以去除噪声和不必要的频率成分,过采样可以增加数字滤波器的工作频率范围,从而提高滤波器的性能。
3. 时钟恢复:过采样可以提高时钟恢复电路的性能。
在接收方,时钟恢复电路用于接收方时钟与发射方时钟同步,过采样可以提供更多的采样点,从而提高时钟恢复电路的精度和稳定性。
4. 编码和调制:过采样可以用于编码和调制技术中。
在数字通信系统中,需要将原始信号编码为数字序列并进行调制以便传输,在这个过程中,过采样可以提供更多的采样点,从而提高编码和调制的精度和可靠性。
过采样技术——精选推荐
过采样技术⽬录1 过采样技术的简介2 过采样技术的作⽤3 过采样技术的应⽤4 过采样技术的软件实现1过采样技术的简介 过采样技术⼀般分三步: 1、⾼速(相对于输⼊信号频谱)采样模拟信号 2、数字过采样低通滤波 3、抽取数字序列。
采⽤这项技术,既保留了输⼊信号的较完整信息,降低了对输⼊信号频谱的要求,⼜可以提⾼采样⼦系统的精度。
2过采样技术的作⽤ 1、过采样降低对模拟抗混叠滤波器的限制 在采样过程中⾸要的问题是采样频率的选择,Nyquist采样定理指出:若连续信号x(t)是有限带宽的,其频谱的最⾼频率为fc,对x(t)采样时,若保证采样频率fs≥2fc,那么,就可由采样信号恢复出x(t)。
在实际对x(t)作采样时,⾸先要了解x(t)的最⾼截⽌频率fc,以确定应选取的采样频率fs。
若x(t)不是有限带宽的,在采样前应使⽤抗混叠(anti-aliasing)滤波器对x(t)作模拟滤波,以去掉f>fc的⾼频成分。
因此,在AD转换前就需要模拟低通滤波器具有尖锐的滚降特性,来限制模拟信号的频谱。
⼀个理想的滤波器应能让所有低于fs/2的频率通过,⽽完全阻隔掉所有⼤于fs/2的频率。
通常,滤波器和采样频率的选择是将我们感兴趣的频带限制在DC和fs/2之间。
2、过采样提⾼信噪⽐ 经模拟滤波后,模拟信号被采样并转换成数字值,因为数字域仅包含有限的字长,若要⽤它来表⽰连续信号,就要引⼊量化误差,最⼤量化误差为±0.5LSB。
因为⼀个N位的ADC的输⼊范围被分成2N个离散的数值,每⼀个数值由⼀个N位的⼆进制数表⽰,所以,ADC的输⼊范围和字长N是最⼤量化误差的⼀个直接表⽰,也是分辨率的⼀个直接表⽰。
代表数字值的字长决定了信噪⽐,因此通过增加信噪⽐可以增加转换的分辨率。
加⼊三⾓波信号可提⾼信噪⽐(详见TI公司的资料:Oversampling Techniques Using theTMS320C24x Family,June 1998)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADC 的过采样技术
其实原理很简单, 很容易明白, 怎样实现提高分辨率?
假定环境条件: 10位ADC最小分辨电压1LSB 为1mv
假定没有噪声引入的时候, ADC采样上的电压真实反映输入的电压, 那么小于1mv的话,如ADC在0.5mv是数据输出为0
我们现在用4倍过采样来, 提高1位的分辨率,
当我们引入较大幅值的白噪声: 1.2mv振幅(大于1LSB), 并在白噪声的不断变化的情况下, 多次采样, 那么我们得到的结果有
真实被测电压白噪声叠加电压叠加后电压ADC输出ADC代表电压
0.5mv 1.2mv 1.7mv 1 1mv
0.5mv 0.6mv 1.1mv 1 1mv
0.5mv -0.6mv -0.1mv 0 0mv
0.5mv -1.2mv -0.7mv 0 0mv
ADC的和为2mv, 那么平均值为: 2mv/4=0.5mv!!! 0.5mv就是我们想要得到的
这里请留意, 我们平时做滤波的时候, 也是一样的操作喔! 那么为什么没有提高分辨率?????
是因为, 我们做滑动滤波的时候, 把有用的小数部分扔掉了, 因为超出了字长啊, 那么0.5取整后就是0 了, 结果和没有过采样的时候一样是0 ,
而过采样的方法时候是需要保留小数部分的, 所以用4个样本的值, 但最后除的不是4, 而是2! 那么就保留了部分小数部分, 而提高了分辨率!
从另一角度来说, 变相把ADC的结果放大了2倍(0.5*2=1mv), 并用更长的字长表示新的ADC 值,
这时候, 1LSB(ADC输出的位0)就不是表示1mv了, 而是表示0.5mv, 而(ADC输出的位1)才是原来表示1mv的数据位,
下面来看看一下数据的变化:
ADC值相应位9 8 7 6 5 4 3 2 1 0
0.5mv测量值0 0 0 0 0 0 0 0 0 0 0mv(10位ADC的分辨率1mv,小于1mv无法分辨,所以输出值为0)
叠加白噪声的4次过采样值的和0 0 0 0 0 0 0 0 1 0 2mv
滑动平均滤波2mv/4次0 0 0 0 0 0 0 0 0 0 0mv(平均数, 对改善分辨率没作用)
过采样插值2mv/2 0 0 0 0 0 0 0 0 0 0 1 2mv/2=0.5mv, 将这个数作为11位ADC值, 那么代表就是0.5mv
这里我们提高了1位的ADC分辨率
这样说应该就很简单明白了吧, 其实多出来的位上的数据, 是通过统计输入量的分布, 计算出来的,
而不是硬件真正分辨率出来的, 引入噪声并大于1LSB, 目的就是要使微小的输入信号叠加到ADC能识别的程度(原ADC最小分辨率).
理论来说, 如果ADC速度够快, 可以无限提高ADC的分辨率, 这是概率和统计的结果
但是ADC的采样速度限制, 过采样令到最后能被采样的信号频率越来越低,
就拿stm32的ADC来说, 12ADC, 过采样带来的提高和局限
分辨率采样次数每秒采样次数
12ADC 1 1M
13ADC 4 250K
14ADC 16 62.5K
15ADC 64 15.6K
16ADC 256 3.9K
17DC 1024 976
18ADC 4096 244
19ADC 16384 61
20ADC 65536 15
要记住, 这些采样次数, 还未包括我们要做的滑动滤波,
看到这些文档, 啰啰嗦嗦说一大堆公式什么的, 忍不住就随便写了些,
如果我是做IC的, 我一定要求把文档写到白话文一样, 小学生都能看明白的, 自然小学生都会用, 人多用了, 才有钱赚嘛,
都不知道这些芯片厂是怎么推广的, 写一大堆公式有什么用, 这么复杂的芯片都设计了, 写个文档却马马虎虎,
其实不管多复杂的公式, 实现起来还不是加减乘除, 废话少说, 有时间再写了......。