法律状态公告日
法律状态信息
法律状态
2014-12-31
授权
授权
2013-02-27
实质审查的生效 IPC(主分类):H03L7/085 申请日:20120330
实质审查的生效
2013-01-16
公开
公开
技术领域
本发明涉及的是仪器仪表领域,尤其是一种生成低失真度的低频正弦信号的装置及方法。
背景技术
随着科学技术的飞速发展,在现代通信、科研以及电子产业中,低频正弦信号被广泛使用,同时信号发生器的精确性和稳定性决定了整个系统性能的工作状态。传统的模拟信号发生器已经不能满足客观要求,随着数字集成电路的迅速发展,数字信号发生器得到了极大的发展。生成低频正弦信号通常采用数字信号源,其输出幅度、频率和相位的时间稳定性好,容易调试和控制。常用的DDS(直接数字合成)方法与传统的频率合成器相比,DDS信号发生器具有低成本、高分辨率和快速转换时间等优点,但在生成低频信号时存在频率抖动大、失真度大的问题。
发明内容
本发明针对现有技术的不足,提出了一种生成低失真度的低频正弦信号的装置及方法。
一种生成低失真度的低频正弦信号的装置包括晶振、现场可编程门阵列FPGA、ROM存储表和D/A转换器;晶振为FPGA提供时钟,FPGA接收晶振提供的时钟信号和接收锁存外部输入的频率字,经过累加运算输出控制信号和地址信息给ROM存储表,ROM存储表存放波形数据幅值表和波形数据相位表,为FPGA提供幅值数据和相位数据,FPGA读取ROM存储表内的数据后经过比较运算输出D/A转换器的控制信号和待转换数据,D/A转换器进行数模转换输出低频正弦信号;
其中FPGA内部的逻辑模块包括锁相环PLL、相位累加器FW_ACC、ROM存储表接口模块和数模转换器接口模块;锁相环PLL利用外部输入的时钟信号产生为相位累加器FW_ACC提供的频率字累加时钟信号,相位累加器FW_ACC接收锁存频率字完成相位累加,并发送地址给ROM表存储器接口模块,ROM表存储器接口模块按一定的时序从FPGA外部ROM表存储器中读取幅值数据和相位数据并发送给相位累加器FW_ACC,相位累加器FW_ACC经过比较运算控制数模转换器接口模块按一定的时序输出D/A转换器的控制信号和待转换数据。
一种生成低失真度的低频正弦信号的方法包括以下步骤:
步骤一:获得基于幅度量化值整数点采样的波形数据,并存储于ROM存储表中。每个采样点的波形数据包括相位数据和幅值数据,采样点的相位数据以变换后的一个周期波形的幅度量化值整数点为采样点进行采样得到的相位值数据,幅值数据就是该采样点的整数点幅度值。其中基于幅度量化值整数点采样的具体步骤如下:
步骤1:变换一个周期的余弦波形,将原始的一个周期的余弦波形向上平移,使相位为180°的点落在坐标轴横轴上,再以横轴为对称轴翻转相位为180°至360°段的波形至横轴的下方;
步骤2:根据幅度量化等级和相位量化等级扩展横轴值和纵轴值,即映射放大幅度值和相位值;
步骤3:向下平移波形,使相位0°点移至坐标轴原点;
步骤4:将纵轴方向取反向下,波形和横轴不变;
步骤5:利用反余弦函数对幅度量化值的整数点进行采样,纵轴值就是采样点编号,采样得到采样点的幅度量化值和相位量化值;
步骤6:将相位量化值和幅度量化值按采样点顺序存入ROM存储表中。
步骤二:FPGA将晶振输入的频率为?x 的时钟信号经锁相环产生频率为?clk的时钟信号,同时也将此时钟信号作为频率字累加时钟信号FW_CLK;
步骤三:FPGA将外部输入的频率字存入FPGA内建的REG_FW步长寄存器中;
步骤四:在FPGA中内建相位累加寄存器REG_ACC,设定相位累加器寄存器REG_ACC的初始值为REG_PHASE相位寄存器所保存的数值;
步骤五:在FPGA中的相位累加器寄存器REG_ACC在FW_CLK信号的上升沿时,以REG_FW步长寄存器中的数值为步长自增,将相位累加器寄存器REG_ACC对累加器模值即累加的上限值FW_ACC_MAX取模,并将所得的数值存入相位累加器寄存器REG_ACC;
步骤六:在FPGA中将相位累加器寄存器REG_ACC中的数值与下一个待D/A转换的采样点的相位量化值进行比较,若大于该相位值则发送D/A接口模块的控制信号控制转换该点的幅值并完成采样点编号自加1,将采样点编号对采样点编号的最大值INDEX_MAX取模,然后以采样点编号为地址读取ROM存储表中的幅值数据表和相位数据表的数据作为下一个待D/A转换的采样点的幅度量化值和相位量化值,若小于该相位值则不进行D/A转换和采样点编号自加;
步骤七: FPGA的D/A接口模块输出满足一定时序要求的D/A转换数据和转换使能信号,在D/A转换器的输出端经过适当的RC滤波就得到了所需要的正弦波信号。
本发明的有益效果是:减小了生成波形的频率抖动,减小了失真度,并减小了波形存储器的容量。
附图说明
图1是本发明的采样波形变换图;
图2是本发明的硬件电路框图;
图3是本发明的FPGA逻辑模块框图。
具体实施方式
如图2所示,一种生成低失真度的低频正弦信号的装置包括晶振、现场可编程门阵列FPGA、ROM存储表和数模转换DAC;晶振为FPGA提供时钟,FPGA接收晶振提供的时钟信号和接收锁存外部输入的频率字,经过累加运算输出控制信号和地址信息给ROM存储表,ROM存储表存放波形数据幅值表和波形数据相位表,为FPGA提供幅值数据和相位数据,FPGA读取ROM存储表内的数据后经过比较运算输出D/A转换器的控制信号和待转换数据,数模转换DAC进行数模转换输出低频正弦信号;
如图3所示,其中的FPGA内部的逻辑模块包括锁相环PLL、相位累加器FW_ACC、ROM存储表接口模块和数模转换器接口模块;锁相环PLL利用外部输入的时钟信号产生为相位累加器FW_ACC提供的频率字累加时钟信号,相位累加器FW_ACC接收锁存频率字完成相位累加,并发送地址给ROM表存储器接口模块,ROM表存储器接口模块按一定的时序从FPGA外部ROM表存储器中读取幅值数据和相位数据并发送给相位累加器FW_ACC,相位累加器FW_ACC经过比较运算控制数模转换器接口模块按一定的时序输出数模转换DAC的控制信号和待转换数据。
如图1、图3所示一种生成低失真度的低频正弦信号的方法包括以下步骤:
步骤一:获得基于幅度量化值整数点采样的3600点波形数据,并存储于ROM存储表中。每个采样点的波形数据包括33位的相位数据和8位的幅值数据,采样点的相位数据以变换后的一个周期波形的幅度量化值整数点为采样点进行采样得到的相位值数据,幅值数据就是该采样点的整数点幅度值。采样波形变换图说明基于幅度量化值整数点采样的具体步骤如下:
步骤1:变换一个周期的余弦波形,将原始的一个周期的余弦波形向上平移,使相位为180°的点落在坐标轴横轴上,再以横轴为对称轴翻转相位为180°至360°段的波形至横轴的下方;
步骤2:根据幅度量化等级255和相位量化等级5000,000,000扩展横轴值和纵轴值,即映射放大幅度值和相位值,如图1中的纵轴和横轴刻度所示;
步骤3:向下平移波形,使相位0°点移至坐标轴原点,如图1中的原点位置;
步骤4:将纵轴方向取反向下,波形和横轴不变,如图1中的纵轴方向和横轴方向;
步骤5:利用反余弦函数对幅度量化值的整数点进行采样,纵轴值就是采样点编号,采样得到采样点的幅度量化值和相位量化值;
步骤6:将相位量化值和幅度量化值按采样点顺序存入ROM存储表中。
步骤二:FPGA将晶振输入的频率为?x 的时钟信号经锁相环产生频率为?clk的时钟信号,?clk=50MHZ,同时也将此时钟信号作为频率字累加时钟信号FW_CLK;
步骤三:FPGA将外部输入的频率字存入FPGA内建的REG_FW步长寄存器中;
步骤四:在FPGA中内建相位累加寄存器REG_ACC,设定相位累加器寄存器REG_ACC的初始值为REG_PHASE相位寄存器所保存的数值;
步骤五:在FPGA中的相位累加器寄存器REG_ACC在FW_CLK信号的上升沿时,以REG_FW步长寄存器中的数值为步长自增,将相位累加器寄存器REG_ACC对累加器模值即累加的上限值FW_ACC_MAX取模,其中FW_ACC_MAX=5000,000,000,并将所得的数值存入相位累加器寄存器REG_ACC;
步骤六:在FPGA中将相位累加器寄存器REG_ACC中的数值与下一个待D/A转换的采样点的相位量化值进行比较,若大于该相位值则发送D/A接口模块的控制信号控制转换该点的幅值并完成采样点编号自加1,将采样点编号对采样点编号的最大值INDEX_MAX取模,其中INDEX_MAX=510,然后以采样点编号为地址读取ROM存储表中的幅值数据表和相位数据表的数据作为下一个待D/A转换的采样点的幅度量化值和相位量化值,若小于该相位值则不进行D/A转换和采样点编号自加;
步骤七: FPGA的D/A接口模块输出满足一定时序要求的D/A转换数据和转换使能信号,在D/A转换器的输出端经过适当的RC滤波就得到了所需要的正弦波信号。
机译: 一种具有可调脉冲宽度的延迟门控正弦信号的生成方法
机译: 根据心理声学模型对幅度小于掩蔽值的正弦信号进行有效编码的编码方法和装置以及对编码后的正弦信号进行解码的解码方法和装置
机译: 有效地编码其幅度小于根据心理声学模型的掩盖值的正弦信号的编码方法和装置,用于解码编码的正弦信号的解码方法和装置