基于FPGA的高精度正弦信号发生器设计与实现
彭卓1,2, 邓焱1, 马骋1, 熊剑平1, 尹永利2
1. 清华大学 精密仪器系, 精密测试技术及仪器国家重点实验室, 北京 100084
2. 中国航天员科研训练中心, 北京 100094
邓焱, 副教授, E-mail:dengy2000@mail.tsinghua.edu.cn

作者简介: 彭卓(1986-), 男(汉), 陕西, 博士研究生。

摘要

地震数据采集系统自检时需要总谐波失真小于 -106 dB的高保真正弦信号,一般采用24位ΔΣ数模转换器来产生,关键技术是如何生成驱动ΔΣ数模转换器的位流。该文提出一种由正弦数据存储器、插值滤波器和ΔΣ调制器组成的位流生成器,重点介绍了插值滤波器和ΔΣ调制器的设计思路、仿真方法及其在现场可编程门阵列(FPGA)中借助DSP Builder工具实现的方法。实测结果表明: 该位流生成器可以驱动一块ΔΣ数模转换器产生31.25 Hz、 峰峰值3.96 V的高保真正弦信号,信噪比达到111.4 dB, 总谐波失真达到-121.0 dB, 满足地震数据采集系统自检的要求,并且具有结构简单、可编程和开发周期短的优势。

关键词: 地震数据采集; 正弦信号发生器; ΔΣ调制器; 现场可编程门阵列(FPGA)
中图分类号:TP274 文献标志码:A 文章编号:1000-0054(2014)02-0197-05
FPGA based high precision sinusoidal signal generator
Zhuo PENG1,2, Yan DENG1, Cheng MA1, Jianping XIONG1, Yongli Yin2
1. State Key Laboratory of Precision Measurement Technology and Instruments, Department of Precision Instruments, Tsinghua University, Beijing 100084, China
2. Astronaut Center of China, Beijing 100094, China
Abstract

A 24-bit sigma-delta digital-to-analog converter (DAC) is used to produce high precision sinusoidal signals with low total harmonic distortion (usually less than -106 dB) for seismic data acquisition system self-tests. The key problem is to convert the sinusoid to a sigma-delta bit stream to drive the sigma-delta DAC. This paper presents a field-programmable gate array (FPGA) based bit stream generator which is composed of a sinusoidal data memory, an interpolation filter and a sigma-delta modulator. This paper focuses on the design and simulation methods for the interpolation filter and the sigma-delta modulator and the whole system implementation using the DSP Builder in FPGA. Tests show that the bit stream generator can drive a 24-bit sigma-delta DAC to produce a 31.25 Hz, 3.96 V peak-peak voltage sinusoidal signal with -121.0 dB total harmonic distortion and 111.4 dB signal-to-noise ratio, which meets the needs for seismic use. The design is simple, programmable and easy to implement.

Keyword: seismic data acquisition; sinusoidal signal generator; delta-sigma modulator; field-programmable gate array (FPGA)

地震勘探是石油地球物理勘探最主要的方法之一,它通过采集人工地震波所携带的地下信息来分析地层结构从而寻找油气资源[1]。地震信号动态范围大,要求采集系统对信号的谐波失真越小越好,一般要求采集通道的总谐波失真(total harmonic distortion, THD)小于-106 dB[2]。为了保证采集精度,地震数据采集系统在工作前要自检采集通道的THD, 自检时采用THD更低的正弦信号作为激励[3]。为了产生这种高精度正弦信号,通常采用24位ΔΣ数模转换器(digital-to-analog converter, DAC), 而ΔΣ DAC一般不能直接产生正弦信号,需要输入由正弦调制而成的ΔΣ位流。位流通常由专用芯片来提供,例如国内业界普遍使用的美国CirrusLogic公司的地震数据采集套片[4,5],其位流就是由专用数字滤波芯片CS5376A提供的。这些专用位流生成芯片价格昂贵且集成度不高,为此本文提出一种替代方案,在FPGA中生成ΔΣ位流。

在FPGA中生成ΔΣ位流有两种方法: 1) 将事先算得的位流数据存储起来,再将其读出复现,例如长江大学的刘益成提出的ROM型正弦信号发生器[6],这种方法容易实现,但是只能产生一定时长的信号,且存储量较大。2) 在FPGA中构建生成位流的数字信号处理算法,例如Cheung等提出的基于FPGA的24位96 kHz音频ΔΣ DAC[7]和Song等提出的基于FPGA的7阶ΔΣ调制器[8],他们的设计均采用底层硬件描述语言实现,编程复杂,且都没有在地震数据采集系统中实际应用。本文针对地震数据采集系统的实际应用,提出一种模型简单、容易实现的基于FPGA的位流生成方法,并驱动24位ΔΣ DAC CS4373A产生高精度模拟正弦信号。该方法可以替代传统的专用芯片,提高系统集成度,降低成本,具有广阔的应用前景。

1 原理设计

本文提出的位流生成器结构如图1所示,由波形数据存储器、数字插值滤波器和ΔΣ调制器组成。波形数据存储器中存储了一个正弦波周期的波形数据。ΔΣ调制器将多位的波形数据调制成1位的位流输出。因为ΔΣ调制器的采样率远高于Nyqwist频率,为了避免波形数据存储量过大,在波形数据存储器和ΔΣ调制器之间设置了数字插值滤波器,通过插值运算在波形数据存储器输出的每两个波形数据之间插入若干新值,以提高波形数据的采样率。

波形数据存储器采用ROM实现,此处不再赘述。数字插值滤波器由零值内插器与低通滤波器组成。 I倍插值时首先在每两个原始数据点之间插入 I-1个零值,此时在频域相当于原信号频谱的 I次镜像周期重复,周期为2 π /I, 最后经过一个低通滤波器滤除镜像谱还原信号。ΔΣ调制是基于过采样与量化噪声成型的一种波形编码调制技术,其原理是“以速度换精度”,即以远大于Nyquist频率的采样率对信号进行过采样,然后利用对信号具有低通特性、对量化噪声具有高通特性的滤波网络和低位量化器(常为1位)将量化噪声转移到基带之外,输出具有很高信噪比的位流。

2 算法设计
2.1 数字插值滤波器

根据图1所示结构,设过采样频率为 fs, 欲产生的正弦信号频率为 fsig, 预存波形数据为 N个,插值因子为 I, 则它们之间满足关系式(1)。如果 fs N已定,则可通过调整 I来产生不同频率的信号。

fs=NfsigI.(1)

为了保证足够的精度且减少数据存储量, N取1 024, fs由所使用的ΔΣ DAC确定,本文所采用的CS4373A要求 fs取256 kHz, 地震数据采集系统自检要求 fsig取31 .25 Hz, 由式(1)可得插值因子 I为8。

数字插值滤波器的关键是抗镜像低通滤波器的设计,常用的有半带滤波器、 Sinc滤波器以及二者的级联结构。半带滤波器可实现2倍插值,获得比较陡峭的截止特性,常用于级联结构中对滤波特性要求较高的前几级。Sinc滤波器可以实现较大的插值因子,而且不需要乘法运算,易于硬件实现,但是其衰减特性不够陡峭,并且通带不够平坦,在插值精度要求较高时需要外加有限长单位冲激响应(finite impulse response,FIR)滤波器补偿带内衰减[9],常用于级联结构中对滤波特性要求较低的后级。单级Sinc滤波器传递函数为 H( z) =(1 -z-D) /(1 -z-1), 若取滤波器阶数 D与插值因子 I相等,则其频谱在0 ~fs之间均匀分布 D-1个正好和镜像谱中心频率重合的零点,可以抑制较窄通带内的镜像谱,非常适合较大插值因子时的滤波,其直流增益为 D。多级Sinc滤波器(Sinc M滤波器)传递函数为 H( z) =[(1 -z-D) /(1 -z-1)] M, 其频谱中旁瓣衰减更快,对镜像谱抑制效果更明显,同时其直流增益变为 DM。因为本文中信号为单一频率的正弦,滤波时可以不考虑带内衰减,也不需要很陡峭的截止特性,所以选用8阶Sinc3滤波器,总插值增益为64。

综上所述,本文采用由8倍零值内插器和8阶Sinc3低通滤波器组成的数字插值滤波器,其结构如图2所示。其中,将Sinc3滤波器的梳状部分等效前移到了零值内插器以前,这样可以将 D阶的延时单元简化为 D/I阶的延时单元,有效减少寄存器的数目。

2.2 ΔΣ调制器

地震数据采集系统自检采用31.25 Hz的正弦信号,计算THD时最高考虑到7次谐波,即218.75 Hz, 因此调制器的通带能够覆盖这个范围即可,考虑到一定的余量,在设计调制器时按信号通带为 0~500 Hz 进行设计,采样率 fs=256 kHz, 则过采样率为

OSR=fs2fB=2560002×500=256.(2)

CS4373A输出信号的THD标称值为-116 dB, 因此设计ΔΣ调制器时以THD优于-116 dB为目标。根据Schreier提供的1位调制器信号量化噪声比(signal to quantization noise ration, SQNR)经验图[10], 3阶ΔΣ调制器在过采样率为256时SQNR最大可达138 dB(此时对应信号幅值为保证调制器稳定的最大值), 理想的ΔΣ调制器在通带内谐波与量化噪声量级相当,可以认为THD约为-138 dB。考虑到实际电路的其他噪声以及实际信号幅值并非保证稳定的最大值(信号幅值越小信噪比越低), 留有20 dB的设计余量,可以选用3阶ΔΣ调制器。

ΔΣ调制器的一般模型为

V(z)=STF(z)U(z)+NTF(z)E(z).(3)

其中: U( z)为输入; V( z)为输出; E( z)为量化器引入的加性白噪声; STF( z)为信号传递函数,具有低通特性; NTF( z)为噪声传递函数,具有高通特性。该模型可由多种拓扑结构来实现,选用硬件开销较小的CIFB(cascaded integrators with feedback)结构[10],如图3所示,推导可得:

NTF(z)=(z-1)[(z-1)2+c2g1]/{a1c1c2c3+a2c2c3(z-1)+a3c3(z-1)2+(z-1)[(z-1)2+c2g1]},(4)STF(z)={b1c1c2c3+b2c2c3(z-1)+b3c3(z-1)2}{a1c1c2c3+a2c2c3(z-1)+a3c3(z-1)2+(z-1)[(z-1)2+c2g1]}.(5)

NTF( z)和STF( z)的分母相同,极点由 ai确定, NTF( z)的一个零点为1, 另外两个零点由 g1确定以达到零点优化的效果,使通带内的噪声更为平坦以获得更高的信噪比。STF( z)的零点由 bi确定, ci为动态范围调节因子,控制中间数据的位宽。为了简化模型,取 bi=0 ( i>1), 并将 b1与插值滤波器增益补偿因子以及信号幅值调节系数合并(通过 b1可调节输出信号的幅值), 1位量化即取符号,因此取 c3为1, 这样系统中可以省去两个乘法器 b1 c3, 进一步减少硬件开销。图3中的各参数值如表1所示。图3中, Q表示1位量化器。

图3 3阶CIFB型ΔΣ调制器拓扑结构

表1 3阶CIFB型ΔΣ调制器参数计算值
3 硬件实现

在FPGA中可以编写底层硬件描述语言来实现位流生成器,但是这样做工作量很大。为了缩短开发周期,本文采用系统级的数字信号处理开发工具DSP Builder来实现,在Matlab Simulink环境下调用DSP Builder模块搭建系统,仿真验证后由系统自动转换生成可在Quartus II软件中综合的硬件[11]。DSP Builder中实现的是定点运算,因此需要综合考虑精度和硬件成本将数学模型中的浮点运算转换为定点运算,即选择合适的位宽。

数字插值滤波器的位宽可按式(6)和(7)来确定[12]。其中: i为级数,按照图2中从梳状部分到积分器的顺序依次编号; M为Sinc M滤波器的级数, I为插值因子, Gi表示第 i级的增益; BIN表示输入位宽; Bi表示第 i级的位宽。位宽计算结果从第1级到第6级依次为25、 26、 27、 26、 28、 30。

Gi=2i,i=1,2,,M,22M-iIi-M-1,i=M+1,,2M.6Bi=BIN+log2Gi.(7)

ΔΣ调制器的中间数据受到动态范围调节因子 ci的调节,被限制在输入最大幅值以内,因此各积分器均采用24位有符号整数。系数 a1 a2 a3 c1 c2采用2位整数22位小数表示,将插值滤波器增益补偿因子以及信号幅值因子合并到 b1中, b1 g1采用2位整数30位小数表示。

最终在DSP Builder中搭建的位流生成器硬件模型如图4所示,在硬件实现时必须保证主时钟和子时钟同源。

图4 DSP Builder中的位流生成器硬件模型

4 实验结果
4.1 仿真结果

在Simulink中对图4所示的位流生成器DSP Builder硬件模型进行仿真,对输出的位流取219个点进行快速Fourier变换(FFT)(将硬件模型位流中的0替换成-1以消除直流偏置), 结果如图5所示。仿真结果表明: 位流的频谱具有明显的噪声成型分布特性,在0~500 Hz的通带范围内,噪声幅值均分布在信号幅值以下约135 dB以外,信噪失真比SNDR(约等于SQNR)达到127.8 dB, THD(计算到7次谐波)达到-137.7 dB, 满足设计要求。其中, SNDR小于理论最大值138 dB, 这是由于输入信号并非最大幅值造成的。

图5 位流生成器模型的硬件模型仿真结果

4.2 实测结果

在EP2C35 FPGA中实现该位流生成器,并驱动CS4373A产生模拟正弦信号,用高精度地震数据采集器采集该正弦信号(采样率1 000 Hz)。采集结果是峰峰值3.96 V、 频率31.25 Hz的正弦波,取 2 048 个采样点进行FFT, 得到的频谱如图6所示。SNDR达到-111.4 dB, THD达到-121.0 dB, 满足地震数据采集系统自检时对THD小于-106 dB的要求。

图6 实测正弦信号发生器输出波形的频谱

5 结 论

本文设计了一种基于FPGA的板级高精度正弦信号发生器,重点阐述了在FPGA中构建位流生成器的数字信号处理算法及实现方法,并对该正弦信号发生器的实际性能进行了实验验证。实测结果表明: 该正弦信号发生器能够满足地震数据采集单元的自检要求,且成本低,集成度高,易于实现和扩展,具有广阔的应用前景。

The authors have declared that no competing interests exist.

参考文献
[1] 罗维炳, 刘益成. 信号处理与过抽样转换器 [M]. 北京: 电子工业出版社, 1997.
LUO Weibing, LIU Yicheng. Signal Processing and Over-Sampling Converter [M]. Beijing: Publishing House of Electronics Industry, 1997. (in Chinese) [本文引用:1]
[2] SY/T5391-2007. 石油地震数据采集系统[S]. 北京: 国家发展和改革委员会, 2008.
SY/T5391-2007. Petroleum Seismic Data Acquisition System[S]. Beijing: National Development and Reform Commission, 2008. (in Chinese) [本文引用:1]
[3] 刘益成, 易碧金, 罗福龙. 地震数据采集系统谐波畸变测试方法研究[J]. 石油物探, 2006, 45(4): 431-443.
LIU Yicheng, YI Bijin, LUO Fulong. Testing method for harmonious distortion of seismic data acquisition system[J]. Geophysical Prospecting for Petroleum, 2006, 45(4): 431-443. (in Chinese) [本文引用:1] [CJCR: 0.969]
[4] YU Zhuan, WU Jie, XIE Mingpu, et al. Implementation of distributed high precision real-time data acquisition system [C]//Proceedings of 2009 16th IEEE-NPSS Real Time Conference. Beijing: IEEE Press, 2009: 446-449. [本文引用:1]
[5] 韦康, 邓焱, 汪海山. 地震勘探数字滤波芯片CS5376与FPGA的接口设计[J]. 清华大学学报: 自然科学版, 2009, 49(5): 76-79.
WEI Kang, DENG Yan, WANG Haishan. Design interface between seismic exploration digital filter chip CS5376 and FPGA[J]. J Tsinghua Univ: Sci and Tech, 2009, 49(5): 76-79. (in Chinese) [本文引用:1]
[6] 刘益成. 基于带通Σ-Δ调制技术的正弦信号发生器[J]. 长江大学学报: 自然科学版, 2006, 3(1): 43-44.
LIU Yicheng. Sine signal generators based on bandpass Σ-Δ modulator[J]. Journal of Yangtze University: Nat Sci Edit, 2006, 3(1): 43-44. (in Chinese) [本文引用:1] [CJCR: 0.246]
[7] Cheung R C C, Pun K P, Yuen S C L, et al. An FPGA-based re-configurable 24-bit 96 kHz sigma-delta audio DAC [C]//Proceedings of 2003 IEEE International Conference on Field-Programmable Technology. Tokyo, 2003: 110-117. [本文引用:1]
[8] SONG Hongzhi, WU Jie, MA Yichao, et al. An FPGA-based 7-order 1-bit sigma-delta modulator for high-precision signal generation [C]//Proceedings of 9th International Conference on Electronic Measurement and Instruments. Beijing, 2009: 4160-4164. [本文引用:1]
[9] CHEN Run, LIU Liyuan, LI Dongmei. A novel multi-stage interpolation filter design technique for high-resolution Σ-Δ DAC[J]. Chinese Journal of Semiconductors, 2007, 28(11): 1735-1741. [本文引用:1] [CJCR: 0.2198]
[10] Schreier R. Understanding Delta-Sigma Data Converters[M]. New York: Wiley, 2005. [本文引用:2]
[11] 谢然, 李玉惠, 沈慧, . 基于DSP Builder的双三次插值算法FPGA实现的研究[J]. 云南大学学报: 自然科学版, 2009, 31(S2): 85-89.
XIE Ran, LI Yuhui, SHEN Hui, et al. A study on FPGA implementation of bi-cubic interpolation algorithm based on DSP builder[J]. Journal of Yunnan University: Natural Sciences Edition, 2009, 31(S2): 85-89. (in Chinese) [本文引用:1] [CJCR: 0.655]
[12] Hogenauer E B. An economical class of digital filters for decimation and interpolation[J]. IEEE Transactions on Acoustics, Speech, and Signal Processing, 1981, 29(2): 155-162. [本文引用:1]