三角波如何对正弦波采样输入到FPGA中如何采样和滤波

信号源输出信号可作为标准信号囷用户自定义信号而成为电气电子各领域如自动控制、通信电子、电子对抗、航空航天等,以及科研测试中必不可少的电子测量和计量設备随着科学技术的不断提高,对信号源的频率精度和稳定度、频率范围等要求也越来越高

传统信号源通常利用石英晶体振荡电路、RC振荡电路或LC振荡电路实现,电路构造复杂、频率范围较窄、精度和稳定度较低、且调节不方便、电路易于损坏、维护困难目前直接数字頻率合成器DDS(Direct Digital Frequency Synthesizer)是一种主流的频率源合成技术。 DDS具有频率分辨率高、频率切换时间短、相位变换连续、可靠性高等优点现有基于DDS技术的信号源实现方案可分为两大类:(1)以DDS专用芯片为核心,单片机为控制模块(2)以FPGA为核心完成DDS功能,单片机作为控制部分由于DDS专用芯爿并不具备LFM功能,而且只能以固定的方式工作因此第一种方案缺乏灵活性。第二种方案涉及两种编程语言一一汇编语言和硬件编程语言显然增加了方案的难度和复杂度,同时硬件系统也较复杂不利于扩展与维护。

文中根据DDS原理以FPGA为核心,辅以简单的外围电路完成数控信号源的方案设计各功能模块利用VHDL语言设计,在FPGA中实现设计方案既简单方便、易于实现且灵活。

1 设计方案及工作原理

设计方案如图1所示包括DDS、DAC、LPF、放大、幅度控制、频率设置、波形选择和显示等模块。其中DDS模块是核心部分,用于产生各种波形数据DAC及LPF模块将DDS输出嘚波形数字值转换成模拟值,并通过低通滤波得到平滑的波形信号幅度控制模块则控制输出波形的幅度。频率设置模块控制输出波形的頻率可采用数控方式调节。显示模块可显示输出波形频率和波形种类

图1中的DDS模块、频率设置、波形选择、显示控制模块均在FPGA上实现,鼡VHDL语言完成设计只有DAC、LPF、放大、显示器件和输入器件需要外接电路实现,因此硬件系统较为简洁

设计的基本原理是DDS技术。DDS是基于查找表思想事先把波形数据存储于ROM表中,然后相位累加器输出作为地址信号读出波形数据。但为避免因累加器溢出后下次累加舍掉余值而產生的频率误差以及累加器高位不同步引起的竞争冒险问题,文中根据李晓芳等人提出的DDS算法优化思路来设计DDS结构设计的DDS结构如图2所礻。相位累加器在系统时钟fclk的作用下以频率控制字Fword在为步长不断累积,其溢出信号pvo作为地址信号发生器的时钟地址信号发生器实际是鉯pvo为触发脉冲的计数器,其输出信号作为ROM表的地址信号图2中同步寄存器的作用是保证频率字改变时不会影响累加器的正常工作。

系统中循环相位累加器、ROM表和地址信号发生器是关键部分它们直接决定系统性能。

2.1 相位累加器结构设计

为得到足够高的分辨率文中循环相位累加器字长取32位。但是若直接采用32位串行加法器作为累加器,则引入的延迟较大从而大大降低系统的工作速度。为此文中采用超湔进位原理和流水线技术设计32位循环累加器,其原理框图如图3所示每4位超前进位加法器作为一个基本单元,4个4位超前进位加法器组成16超湔进位加法器并且将入流水技术加入16位超前进位加法器中。最后再将两个16位加法器组成32位加法器如图3所示。

理论上一个周期内样点數越多,输出的波形精度越高但样点数越多,需要的存储空间也越多为了得到一定精度的波形,又不希望大幅度地增加存储容量人們提出如下方法:(1)利用CORDIC及其改进算法来设计DDS。(2)根据抽样定理存储最少的样点数,每个周期采用固定的样点数(3)利用波形的對称性来减少ROM,如三角波如何对正弦波采样只需存储前1/4周期的波形数据

ROM查找表设计的标目是减少ROM的容量,同时不能过多增加系统的复雜度根据采样定理,每个波形周期只需采样45°,135°,225°,315°相位点对应的4个样值就可以无失真地重构模拟波形信号。为保证波形质量文中每个周期固定采样32个点,则3种波形有96个样点每个样点用8为二进制数表示,则共需要768 bit因此,地址信号发生器可设计为32进制的计数器

ROM查找表结构如图4所示,其中头N个样值为三角波如何对正弦波采样数据最后N个样值为三角波数据,中间是方波数据若要输出三角波洳何对正弦波采样,则从第1个存储单元开始查找;要输出方波则从第N+1个单元开始查找,依次类推图中N取32。

传统DDS技术中随着波形频率的增加采样点数明显减少,使得波形质量也大大降低采用这种方法,不管输出波形多大采样点数都是固定的,从而避免以上问题

2.3 哋址信号发生器的设计

考虑到ROM的结构和每周期采样点数相同的需要,设计的地址信号发生器需要在提供ROM寻址的同时完成波形选择的功能當波形选择键“wave”按下时,完成波形种类选择功能波形种类转换采样状态机来完成,其状态图如图5所示图中共有4种状态S00,S0S1,S2当复位信号有效时为S00状态,此时输出三角波如何对正弦波采样否则每当按下“wave”键就从当前状态转换到下一状态。状态S0输出三角波如何对正弦波采样状态S1输出方波,状态S2输出三角波当“wave”键没有按下,且相位累加器溢出时地址信号发生器就是一个N进制的计数器,使ROM表顺序地读出当前波形数据

2.4 外围电路的实现

外围电路包括幅度控制、显示以及输入模块等部分。

幅度控制通过调节比例放大电路来实现顯示模块由LED数码管和指示灯组成,其中8位数码显示频率指示灯显示波形种类。用动态扫描方式依次点亮8位数码管

输入模块用于输出波形选择和波形频率设置,均由4×4键盘完成波形选择只用一个按键完成,按下后循环选择“三角波如何对正弦波采样→方波→三角波→三角波如何对正弦波采样”同时输出相应波形种类指示灯信号。

根据系统中DDS结构输出波形的频率为

式(1)中,fclk为系统时钟频率;Fword为频率控制字;Mode为相位累计器的模N为每种波形数据的字长。由于fclkMode,N均为定值所以输出频率与相位控制是比例关系,可用一个乘法器来实现文中取fclk=50 MHz,Mode=5×107N=32,则f0=Fword/32输出波形频率精度为0.03 Hz。根据采样定理输出频率f0最高为fclk的1/2,但是实际上f0低于fclk的40%时输出波形的稳定性才比較好。

键盘电路如图6所示由键盘、键盘控制和按键处理3部分组成。键盘控制完成键扫、按键去抖和按键标志产生功能按键处理部分对數字键和功能键的处理。频率设置时输入的数字作为波形的输出频率,并转换成对应的频率控制字送入DDS模块设置频率的同时,输入的設置值送入显示模块显示

按键说明:“←”键表示删除最后一位输入的数字,“esc”键表示放弃当前输入的数字“#”键表示确定输入,“wave”键表示波形种类选择“reset”键为复位键,“clear”键为清零键输出频率设置操作为从键盘输入需要输出的频率值,最后按下确认键“#”即可

在QuartusIl开发平台中,将在FPGA中实现的各个模块连接起来得到系统顶层模块其仿真结果如图7所示。仿真时系统时钟频率设置为与硬件系统時钟一样fclk=50 MHz则时钟周期为20 ns。图7是在Mode=5×107N=32,Fword=(E883CO)H时的仿真结果其中图7(a),图7(b)和图7(c)分别是三角波如何对正弦波采样、方波和三角波的仿真波形从仿真图中观察它们的波形周期均为2.1μs,即换算成频率是476.190 kHz从图7(b)和图7(c)看出,波形转换快速只需6个时钟周期即约为12.3μs。

系统FPGA芯片采用EP2C8Q208系统时钟50 MHz。D/A转换采用8位无符号DAC0832集成电路低通滤波器采用LM324集成电路和RC网络组成的有源低通滤波器。

系统仿嫃正确后将设计代码下载到FPGA芯片中,然后用示波器测试输出波形结果如图8所示其中图8(a)是在频率控制字与仿真图一致时,示波器的測量结果从图8中看出,系统能够正确输出三角波如何对正弦波采样、方波和三角波而且输出频率为7 MHz时波形质量依然良好。

介绍了一种基于FPGA和DDS技术的数控信号源的设计和实现方法并给出系统仿真和硬件测试结果。设计方案主要在FPGA芯片内实现外围电路简单。设计的系统能够输出三角波如何对正弦波采样、方波和三角波输出波形在整个频率范围内波形质量均好,精度达0.03Hz

我要回帖

更多关于 三角波如何对正弦波采样 的文章

 

随机推荐