用方波代替正弦波作傅里叶变换的一种算法研究

2014-11-12 09:14包开云
无线互联科技 2014年10期
关键词:正弦波误差

包开云

摘 要:用方波替代正弦波進行离散傅里叶变换(DFT)的一种算法,以便能在一些计算能力不是很强的嵌入式系统内作傅里叶变换。此算法本身不存在变换误差。对方波的离散总是存在误差,但是随着奇次频项数的增加,误差逐渐减小。总体运算效率还是明显提高。

关键词:正交方波;正弦波;DFT;奇次倍谐波;误差

The calculation method of using square wave

being an alternative to sine wave to practice DFT

Bao Kai Yun(Johnson Electric Group,SHENZHEN 518100)

Abstract:The calculation method of using square wave being an alternative to sine wave to practice DFT. So, we can do the Fourier transformation in a weak calculation ability embedding style system. In theory, there is no existence of errors in inverter. In actual practice, there are errors in square wave disintegration though. As the odd number multiples frequency item numbers has an increasing sequence, there will be fewer and fewer errors. All in all, the operation efficiency has enhanced significantly.

Key words:Middle cross square wave;sine wave;DFT;odd number multiples frequency item numbers;error

1 引言

传统离散傅里叶变换(DFT)或线性调频z变换(CZT)是以正弦波sin(x)作为核进行傅里叶变换,当计算时如果点数不确定,将无法预先计算并保存好固定点数的sin(x)值,所以在实时计算sin(x)时计算量都很大,这在一些嵌入式系统如8051,ARM内,由于没有sin指令,计算sin值时需做多次乘法才能得出,几乎无法实现稍长点数的DFT运算。为此,本文专门提出用方波替代正弦波进行离散傅里叶变换(DFT)的一种算法,以便能在一些计算能力不是很强的嵌入式系统内作傅里叶变换,并对算法进行编程以及验证。

2 用方波代替正弦波作离散傅里叶变换(DFT)的算法分析

2.1 算法的理论推导

至此,x(n)的离散傅里叶变换X(k)就变成了可以只用一对离散正交方波序列表达了。

2.2 算法推导结果的使用

式(4-1)和式(4-2)就是满足耐奎斯特采样定理下的采样序列x(n)用方波代替正弦波作DFT变换的序列X(n)的实部和虚部,式中表明,某个谐波分量X(k)复数值,可以用同频率的正交方波和奇次倍谐波分量复数值合成表示,式中不再有三角函数运算,取而代之的是方波运算,这使得运算量大大简单。

式(4-1)和式(4-2)中如k的3倍频以上没有谐波分量时,即k在fs/6-fs/2区间内,式(4-1)和式(4-2)变为:

式(4-1)和式(4-2)运算分两个部分,首先是计算x(n)与同频率的正交方波乘积的和,即计算式(5-1)和式(5-2);然后,如果存在奇次倍谐波分量,需减去所用奇次倍谐波分量衰减值。所用,只需从高次谐波往低次谐波计算,就可完成式(4-1)和式(4-2)运算。

由于方波序列E1(k)(n)、E2(k)(n)的值只有1和-1两种可能,式(5-1)和式(5-2)其实只包含浮点数的加减运算,而基本没有浮点乘法运算,此算法的优势就明显体现出来了。

2.3 方波离散导致的运算误差分析

由以上推导过程可知,只要式(5-1)和式(5-2)运算准确,此算法本身不存在理论误差。观察式(5-1)和式(5-2),在x(n)不变的情况下,精确表达正交方波E1(k)(n)和E2(k)(n)的离散序列将变得尤为重要。

观察式(1-1)和式(1-2)可知,方波可以看出是自身基频以及一系列无限次奇次频的正弦波合成,所以,对方波的离散总是存在误差,即离散后的序列不能完整的还原连续的方波,但是随着奇次频项数的增加,误差逐渐减小,当取5次谐波合成后,均方差减小到0.07,这基本能满足对方波的合成表达了,由采样定理可知,5次谐波的最低采样频率是10倍基波频,所用,对方波的采样率应是10倍基波频以上时,离散序列所表达的波形与原始波形均方差小于0.07,当x(n)所包含的最高谐波频率确定后,采样频率fs应大于10倍最高谐波频率,式(5-1)和式(5-2)的运算理论与实际均方差小于0.07。

3 算法的程序和验证

对式(5-1)和式(5-2)用VC编程并生成DLL库,以便用LabVIEW仿真验证。下图所示是用LabVIEW对上述算法仿真的结果:fs=2000Hz,N=2000,f1=16Hz,f2=77Hz,f3=153Hz

4 总结

仿真结果显示,实际误差范围落在理论分析误差范围内,仿真结果达到预期误差范围。虽然本算法与传统DFT相比,采样频率有所提高,并存在一定误差,但跟复杂的sin(x)值计算相比,浮点乘除运算明显减少,总体运算效率还是明显提高,这在嵌入式系统需做数字信号分析应用领域还是有一定参考和实用价值。上述算法不只局限于DFT运算,也适用于线性调频z变换,快速相关,数字检波,等数字信号分析领域。

用上述编程方法做DFT运算时,由于存在大量重复运算,并且重复规律跟普通DFT运算重复一致,所用上述方法也可通过FFT运算规则优化,以提高运算效率。

[参考文献]

[1]程佩青.数字信号处理教程[M].北京:清华大学出版社.2000.

[2]王宝祥.信号与系统[M].哈尔滨:哈尔滨工业大学出版社.2000.

[3]邱关源.电路[M].北京:高等教育出版社.2000.

猜你喜欢
正弦波误差
单相正弦波变频电源设计与实现
角接触球轴承接触角误差控制
Beidou, le système de navigation par satellite compatible et interopérable
采用BC5016S的纯正弦波逆变器设计及制作
压力容器制造误差探究
误差分析我做主
九十亿分之一的“生死”误差
一类奇异积分关于积分曲线摄动的误差估计
基于FPGA的信号发生器在分频器检测上的应用
基于嵌入式技术的电网同步正弦波发生装置研究