CN103795345B - 正弦波生成装置和方法 - Google Patents

正弦波生成装置和方法 Download PDF

Info

Publication number
CN103795345B
CN103795345B CN201410050499.7A CN201410050499A CN103795345B CN 103795345 B CN103795345 B CN 103795345B CN 201410050499 A CN201410050499 A CN 201410050499A CN 103795345 B CN103795345 B CN 103795345B
Authority
CN
China
Prior art keywords
address information
sinusoidal wave
sine wave
information
data message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410050499.7A
Other languages
English (en)
Other versions
CN103795345A (zh
Inventor
王光耀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Huiding Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Huiding Technology Co Ltd filed Critical Shenzhen Huiding Technology Co Ltd
Priority to CN201410050499.7A priority Critical patent/CN103795345B/zh
Publication of CN103795345A publication Critical patent/CN103795345A/zh
Priority to EP14882585.4A priority patent/EP3082255B1/en
Priority to KR1020167018346A priority patent/KR101901502B1/ko
Priority to PCT/CN2014/084421 priority patent/WO2015120706A1/zh
Priority to US15/230,484 priority patent/US10013018B2/en
Application granted granted Critical
Publication of CN103795345B publication Critical patent/CN103795345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0321Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0321Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • G06F1/0328Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03BGENERATION OF OSCILLATIONS, DIRECTLY OR BY FREQUENCY-CHANGING, BY CIRCUITS EMPLOYING ACTIVE ELEMENTS WHICH OPERATE IN A NON-SWITCHING MANNER; GENERATION OF NOISE BY SUCH CIRCUITS
    • H03B28/00Generation of oscillations by methods not covered by groups H03B5/00 - H03B27/00, including modification of the waveform to produce sinusoidal oscillations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/01Details
    • H03K3/012Modifications of generator to improve response time or to decrease power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/022Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Complex Calculations (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

本发明提出一种正弦波生成装置和方法。其中该装置包括:相位累加模块,用于获取正弦波的配置信息,并根据配置信息生成正弦波的地址信息,其中地址信息包括整数地址信息和小数地址信息;查值模块,用于根据整数地址信息查找正弦波的第一和第二数据信息;插值模块,用于根据小数地址信息的位宽在第一和第二数据信息之间进行插值,并根据小数地址信息获取正弦波的插值原始数据信息;随机截位模块,用于根据小数地址信息的位宽和伪随机序列输出值对插值原始数据进行截位处理,以获取正弦波的最终插值数据信息;以及正弦波生成模块,用于生成正弦波的图像信息。本发明实施例的装置,利用面积更小的数字电路,可产生频率更加丰富和精准的正弦波。

Description

正弦波生成装置和方法
技术领域
本发明涉及数字电路技术领域,尤其涉及一种正弦波生成装置和方法。
背景技术
目前,数字电路生成正弦波的方法有很多种,例如,利用MATLAB(Matrix Laboratory,矩阵实验室)或者其它软件工具生成正弦波。然而,目前存在的问题是,正弦波的数据信息均存储在查值表中,MATLAB或者其它软件工具生成正弦波时根据需要将查值表中的数据直接输出,不能生成除了查值表之外的正弦波的数据信息。因此,现有的方式均存在一定的局限性,有些方法只能产生特定频率的正弦波,或者有些方法在产生不同频率的正弦波时,需要很大的电路面积,且存在正弦波的频率不准确和漂移的现象。因此,不仅导致数字电路产生正弦波的电路功耗和成本高,而且生成的正弦波在时域和频域的效果均不好。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种正弦波生成装置,该装置利用面积更小的数字电路,可产生频率更加丰富和精准的正弦波
本发明的第二个目的在于提出一种正弦波生成方法。
为达上述目的,本发明第一方面实施例提出了一种正弦波生成装置,包括:相位累加模块,用于获取正弦波的配置信息,并根据所述正弦波的配置信息生成所述正弦波的地址信息,其中,所述正弦波的地址信息包括整数地址信息和小数地址信息;查值模块,用于根据所述整数地址信息查找所述正弦波的第一数据信息和第二数据信息;插值模块,用于根据所述小数地址信息的位宽大小在所述正弦波的第一数据信息和所述第二数据信息之间进行插值,并根据所述小数地址信息获取所述正弦波的插值原始数据信息;随机截位模块,用于根据所述小数地址信息的位宽大小和伪随机序列输出值对所述正弦波的插值原始数据进行截位处理,以获取所述正弦波的最终插值数据信息;以及正弦波生成模块,用于根据所述正弦波的最终插值数据信息生成所述正弦波的图像信息。
本发明实施例的正弦波生成装置,通过采用插值的方法,根据查值表中的两个数据信息推算出来第三个数据信息,因此相当于扩大了查值表的容量,从而达到了缩小数字电路的电路面积的目的。并且通过随机截位的方法,对插值原始数据进行取整处理,然后将生成的随机单比特数据与原始数据的整数部分相加,由此,可以避免正弦波在某些频率点的畸变。具体而言,本发明实施例的正弦波生成装置,利用面积更小的数字电路,可产生频率更加丰富和精准的正弦波,分别通过对相关技术和本发明生成的正弦波数据信息,通过MATLAB仿真后,如图4和图5所示,可以明显观察到本发明实施例的正弦波生成装置生成的正弦波在时域和频域都具有更好的效果。从时域来看,本发明实施例的正弦波生成装置生成的正弦波更为平滑和规则;从频域来看,本发明实施例的正弦波生成装置生成的正弦波谐波能量更小。
为达上述目的,本发明第二方面实施例提出了一种正弦波生成方法,包括:获取正弦波的配置信息,并根据所述正弦波的配置信息生成所述正弦波的地址信息,其中,所述正弦波的地址信息包括整数地址信息和小数地址信息;根据所述整数地址信息查找所述正弦波的第一数据信息和第二数据信息;根据所述小数地址信息的位宽大小在所述正弦波的第一数据信息和所述第二数据信息之间进行插值,并根据所述小数地址信息获取所述正弦波的插值原始数据信息;根据所述小数地址信息的位宽大小和伪随机序列输出值对所述正弦波的插值原始数据进行截位处理,以获取所述正弦波的最终插值数据信息;以及根据所述正弦波的最终插值数据信息生成所述正弦波的图像信息。
本发明实施例的正弦波生成方法,通过采用插值的方式,根据查值表中的两个数据信息推算出来第三个数据信息,因此相当于扩大了查值表的容量,从而达到了缩小数字电路的电路面积的目的。并且通过随机截位的方法,对插值原始数据进行取整处理,然后将生成的随机单比特数据与原始数据的整数部分相加,由此,可以避免正弦波在某些频率点的畸变。具体而言,本发明实施例的正弦波生成方法,利用面积更小的数字电路,可产生频率更加丰富和精准的正弦波,分别通过对相关技术和本发明生成的正弦波数据信息,通过MATLAB仿真后,如图4和图5所示,可以明显观察到根据本发明实施例的正弦波生成方法生成的正弦波在时域和频域都具有更好的效果。从时域来看,根据本发明实施例的正弦波生成方法生成的正弦波更为平滑和规则;从频域来看,根据本发明实施例的正弦波生成方法生成的正弦波谐波能量更小。
附图说明
图1是本发明一个实施例的正弦波生成装置的结构示意图;
图2是本发明一个实施例的随机截位模块400的结构示意图;
图3是本发明一个实施例的伪随机序列发生器的结构示意图;
图4是相关技术和本发明实施例的正弦波生成装置模拟生成正弦波的正弦波时域波形对比的示意图;
图5是相关技术和本发明实施例的正弦波生成装置模拟生成正弦波的正弦波频率普对比的示意图;
图6是本发明一个实施例的正弦波生成方法的流程图;
图7是本发明一个具体实施例的正弦波生成方法的流程图;
图8是本发明另一个具体实施例的正弦波生成方法的流程图;以及
图9是本发明再一个具体实施例的正弦波生成方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
目前,数字电路生成正弦波的方法有很多中,然而大多数方法均存在一定的局限性,不仅导致数字电路产生正弦波的电路功耗和成本高,而且生成的正弦波在时域和频域的效果均不好。如果可以利用插值和随机截位的方法,可以实现利用面积比较小的数字电路,产生频率更加丰富和精准的正弦波。由此,不仅可以降低数字电路的电路功耗,而且可以通过频率更加丰富和精准的正弦波扩大其自身的应用范围。为此,本发明提出了一种正弦波生成装置。图1是本发明一个实施例的正弦波生成装置的结构示意图。
如图1所示,正弦波生成装置包括:相位累加模块100、查值模块200、插值模块300、随机截位模块400、正弦波生成模块500和取整模块600,其中,相位累加模块100包括存储单元110和计数单元120,随机截位模块400包括伪随机序列生成单元410。
具体地,相位累加模块100用于获取正弦波的配置信息,并根据正弦波的配置信息生成正弦波的地址信息,其中,正弦波的地址信息包括整数地址信息和小数地址信息。
在本发明的实施例中,相位累加模块100包括存储单元110,存储单元110用于存储正弦波的配置信息。具体而言,相位累加模块100可通过正弦波配置模块接收用户输入的正弦波的配置信息,其中,正弦波的配置信息包括正弦波的初始相位和频率。换言之,正弦波配置模块是相位累加模块100和用户之间的接口模块,正弦波配置模块接收的初始相位和频率均随着用户输入的改变而改变。相位累加模块100在获取正弦波的配置信息之后,可将用户输入的正弦波的初始相位和频率存储在存储单元110中。
在本发明的实施例中,相位累加模块100还包括计数单元120,计数单元120用于根据时钟脉冲为相位累加模块100进行累加计数。具体而言,计数单元120的初始值可为正弦波的初始相位,计数的步长可为正弦波的频率。计数单元120的位宽可包含整数部分和小数部分,整数部分的位宽位于计数单元120位宽的高位,而小数部分的位宽位于计数单元120位宽的低位。
进一步而言,相位累加模块100可通过计数单元120在外部的时钟脉冲的作用下进行累加计数,每一个时钟脉冲计数单元120都会产生一个新的数据信息,而该数据信息就是正弦波的地址信息。其中,外部的时钟脉冲可以是用户根据自身需求而设置的。换言之,相位累加模块100输入的信号为正弦波的配置信息(正弦波的初始相位和频率),输出的信号为正弦波的地址信息,其中,地址信息在不为整数时由整数地址信息和小数地址信息两部分组成。
查值模块200用于根据整数地址信息查找正弦波的第一数据信息和第二数据信息。
在本发明的实施例中,正弦波生成装置还包括取整模块600,取整模块600用于对正弦波的地址信息进行向下取整处理,以获取正弦波的整数地址信息。具体而言,由于相位累加模块100获取正弦波的地址信息包括整数地址信息和小数地址信息,因此,可通过取整模块600,对相位累加模块100获取的正弦波的地址信息进行向下取整,即,只保留地址信息的整数部分,丢弃地址信息的小数部分。换言之,取整模块600输入的信号为正弦波的地址信息,输出的信号为地址信息的整数部分。例如,正弦波的地址信息包含8位整数部分和3位小数部分,取整模块600对正弦波的地址信息向下取整后值输出8位整数部分。
具体而言,查值模块200可通过相位累加模块100获取的正弦波地址信息中的整数地址信息,在查值表中查找对应的正弦波的数据信息。换言之,查值模块200输入的信号为整数地址信息,输出的信号为正弦波的第一数据信息和第二数据信息。其中,在查值表中可存储通过采样获取的正弦波的一个周期的数据信息,该数据信息可固化到电路中,或者可由用户动态配置。此外,在查值表中每个正弦波的地址信息均对应一个数据信息,查值模块200只能接收正弦波的地址信息中的整数地址信息。因此,当相位累加模块100输出的正弦波的地址信息包括小数部分时,首先需要取整模块600对正弦波的地址信息进行向下取整,将得到整数地址信息输出给查值模块200。然后,查值模块200根据输入的整数地址信息在查值表中进行查值,输出该整数地址信息对应的第一数据信息,同时输出和该第一数据信息在查值表中相邻的下一个数据信息,即第二数据信息。进一步而言,查值模块200根据整数地址信息输出的数据信息应当是第一数据信息,第二数据信息是为插值而输出的额外的数据信息。
在本发明的实施例中,在查值模块200中存储第一查值表和第二查值表,其中,查值模块200还包括随机存取存储器或只读存储器,第一查值表和第二查值表存储在随机存储器或只读存储器中。第一查值表存储整数地址信息中奇数地址信息/偶数地址信息对应的正弦波的数据信息中的一个,第二查值表存储整数地址信息中奇数地址信息/偶数地址信息对应的正弦波的数据信息中的另一个。具体而言,查值表的深度和相位累加模块100输出的正弦波的地址信息中的整数地址信息的位宽相关联,例如,如果整数地址信息的位宽为8位,则查值表的深度为28=256。应当理解的是,查值表的位宽没有固定的限制,查值表的位宽越大,查值表的精度就越高,一般来说,查值表的位宽与查值表中通过采样获取的正弦波的一个周期的数据信息的位宽相同。
此外,相对而言,查值表的位宽越大,查值表的面积就越大。因此,查值模块200可将查值表分为两个深度和位宽均相同的子查值表,即第一查值表和第二查值表。例如,如果查值表的深度为256,则第一查值表和第二查值表的深度均为256/2=128。在第一查值表和第二查值表中交叉存储正弦波的一个周期的数据信息,例如,第一查值表存储奇数整数地址对应的正弦波的数据信息,第二查值表存储偶数整数地址对应的正弦波的数据信息;或者第一查值表存储偶数整数地址对应的正弦波的数据信息,第二查值表存储奇数整数地址对应的正弦波的数据信息。
在本发明的实施例中,查值模块200还用于根据整数地址信息在第一查值表/第二查值表中进行查值以获取整数地址信息对应的第一数据信息,并根据与整数地址信息相邻的下一个整数地址信息在第二查值表中差值以获取下一个整数地址信息对应的第二数据信息。由此,在查值模块200接收到取整模块600输出的整数地址信息之后,查值模块200可同时输出两个数据信息,并且这两个数据信息在正弦波的采样数据中是相邻的。
插值模块300用于根据小数地址信息的位宽大小在正弦波的第一数据信息和第二数据信息之间进行插值,并根据所述小数地址信息获取正弦波的插值原始数据信息。具体而言,插值模块300可根据第一数据信息、第二数据信息和小数地址信息计算出第一数据信息和第二数据信息之间的多个插值数据信息,然后插值模块300根据小数地址信息,在第一数据信息、第二数据信息以及多个插值数据信息中选出一个需要的数据信息,作为正弦波的插值原始数据信息。例如,假设第一数据信息为vm,第二数据信息为vp,正弦波的地址信息中的小数地址信息为fa,第一数据信息和第二数据信息的差值为vd,其中,vd=vp-vm。假设小数地址信息fa的位宽为3位,则查值模块300可计算出插值原始数据有23=8种可能,即,在第一数据信息vm和第二数据信息vp之间可插入7个插值点。这7个插值点均匀分布在第一数据信息vm和第二数据信息vp之间,且这7个插值点的值分别为vm+vd/8、vm+2vd/8、vm+3vd/8、vm+4vd/8、vm+5vd/8、vm+6vd/8、vm+7vd/8。然后,根据小数地址信息fa的值在第一数据信息为vm和插入的7个点之间挑选出来一个值,具体对应关系如表1所示,
fa 插值原始数据
000 vm<<3
001 vm<<3+vd
010 vm<<3+vd<<1
011 vm<<3+vd<<1+vd
100 vm<<3+vd<<2
101 vm<<3+vd<<2+vd
110 vm<<3+vd<<2+vd<<1
111 vm<<3+vd<<2+vd<<1+vd
表1为小数地址信息fa和插值原始数据对应关系的示意图
其中,符号“<<”代表向左移位操作,举例而言,当小数地址信息fa为“001”时,相当于查值模块200挑选了第一数据信息为vm和第二数据信息为vp之间的第一个插值点,该插值点的值为vm+vd/8,即(8vm+vd)/8,也就是(vm<<3+vd)/8,其中,(vm<<3+vd)为插值原始数据信息。
应当理解的是,计数单元120的位宽中整数部分的位宽是由查值表的深度决定的,查值表的深度越大,整数部分的位宽就越大。计数单元120的位宽中小数部分的位宽是由插值的精度决定的,需要插值的精度越高,小数部分的位宽应当越大。举例而言,如果查值表的深度为256,则记数单元120的位宽中整数部分的位宽应为8位。在插值模块300插值时,如果需要在每两个点(即第一数据信息和第二数据信息)之间插入7个点,则记数单元120的位宽中小数部分的位宽应为3位。因此,记数单元120的位宽应为8+3=11位,其中,高位的8位为整数部分,低位的3位为小数部分。
随机截位模块400用于根据小数地址信息的位宽大小和伪随机序列输出值对正弦波的插值原始数据进行截位处理,以获取正弦波的最终插值数据信息。具体而言,随机截位模块400可对插值原始数据进行除以8操作,进一步而言,在数字电路中可直接对插值原始数据向右移3位来实现除以8操作。然而,由于插值原始数据未必均能被8整除,因此,在本发明的实施例中,随机截位模块400还采用随机截位的方法对插值原始数据除以8后的数据进行取整处理。图2是本发明一个实施例的随机截位模块400的结构示意图,如图2所示,随机截位模块400的内部结构中,Bit[2]代表插值原始数据的第三位,即被丢弃的最高位,r为伪随机序列输出值,该伪随机序列输出值的位宽为1位。假设插值原始数据为v,则最终插值数据信息为v>>3+r,其中,符号“>>”是向右移位操作,“v>>3”表示将插值原始数据v向右移3位,相当于插值原始数据除以8。
在本发明的实施例中,随机截位模块400包括伪随机序列生成单元410,伪随机序列生成单元410用于按照预设的位宽输出伪随机序列输出值。进一步而言,伪随机序列生成单元410可为例如伪随机序列发生器,伪随机序列输出值r可通过伪随机序列发生器输出,该伪随机序列发生器可以根据Bit[2]经过内部运算输出伪随机序列输出值r。图3是本发明一个实施例的伪随机序列生成单元410的结构示意图,如图3所示,在伪随机序列生成单元410的内部电路结构中,伪随机序列发生器的位宽为8位,其初始化的值和Bit[2]相关联,具体设置可以根据应用场景不同而设置为不同的值。符号“<<”代表向左移位操作,当随机序列发生器生成一个伪随机序列输出值r后,整个伪随机序列发生器向左移一位,最低位用高三位的“或”运算结果来填充。
正弦波生成模块500用于根据正弦波的最终插值数据信息生成正弦波的图像信息。
本发明实施例的正弦波生成装置,通过采用插值的方法,根据查值表中的两个数据信息推算出来第三个数据信息,因此相当于扩大了查值表的容量,从而达到了缩小数字电路的电路面积的目的。并且通过随机截位的方法,对插值原始数据进行取整处理,然后将生成的随机单比特数据与原始数据的整数部分相加,由此,可以避免正弦波在某些频率点的畸变。具体而言,本发明实施例的正弦波生成装置,利用面积更小的数字电路,可产生频率更加丰富和精准的正弦波,分别通过对相关技术和本发明生成的正弦波数据信息,通过MATLAB仿真后,如图4和图5所示,可以明显观察到本发明实施例的正弦波生成装置生成的正弦波在时域和频域都具有更好的效果。从时域来看,本发明实施例的正弦波生成装置生成的正弦波更为平滑和规则;从频域来看,本发明实施例的正弦波生成装置生成的正弦波谐波能量更小。
为了实现上述实施例,本发明还提出一种正弦波生成方法。
图6是本发明一个实施例的正弦波生成方法的流程图,图7是本发明一个具体实施例的正弦波生成方法的流程图。
如图6和7所示,正弦波生成方法包括:
S11,获取正弦波的配置信息,并根据正弦波的配置信息生成正弦波的地址信息,其中,正弦波的地址信息包括整数地址信息和小数地址信息。
S12,根据整数地址信息查找正弦波的第一数据信息和第二数据信息。
具体地,可通过获取的正弦波地址信息中的整数地址信息,在查值表中查找对应的正弦波的数据信息。其中,在查值表中可存储通过采样获取的正弦波的一个周期的数据信息,该数据信息可固化到电路中,或者可由用户动态配置。此外当正弦波的地址信息包括小数部分时,首先需要得到整数地址信息,然后根据整数地址信息在查值表中进行查值,输出该整数地址信息对应的第一数据信息,同时输出和该第一数据信息在查值表中相邻的下一个数据信息,即第二数据信息。进一步而言,根据整数地址信息输出的数据信息应当是第一数据信息,第二数据信息是为插值而输出的额外的数据信息。
在本发明的实施例中,S12具体包括:
S121,获取第一查值表和第二查值表。
具体地,第一查值表和第二查值表存储在随机存储器或只读存储器中。第一查值表存储整数地址信息中奇数地址信息/偶数地址信息对应的正弦波的数据信息中的一个,第二查值表存储整数地址信息中奇数地址信息/偶数地址信息对应的正弦波的数据信息中的另一个。更具体地,查值表的深度和正弦波的地址信息中的整数地址信息的位宽相关联,例如,如果整数地址信息的位宽为8位,则查值表的深度为28=256。应当理解的是,查值表的位宽没有固定的限制,查值表的位宽越大,查值表的精度就越高,一般来说,查值表的位宽与查值表中通过采样获取的正弦波的一个周期的数据信息的位宽相同。
此外,相对而言,查值表的位宽越大,查值表的面积就越大。因此,可将查值表分为两个深度和位宽均相同的子查值表,即第一查值表和第二查值表。例如,如果查值表的深度为256,则第一查值表和第二查值表的深度均为256/2=128。在第一查值表和第二查值表中交叉存储正弦波的一个周期的数据信息,例如,第一查值表存储奇数整数地址对应的正弦波的数据信息,第二查值表存储偶数整数地址对应的正弦波的数据信息;或者第一查值表存储偶数整数地址对应的正弦波的数据信息,第二查值表存储奇数整数地址对应的正弦波的数据信息。
S122,根据整数地址信息在第一查值表/第二查值表中进行查值以获取整数地址信息对应的第一数据信息,并根据与整数地址信息相邻的下一个整数地址信息在第二查值表中差值以获取下一个整数地址信息对应的第二数据信息。
S13,根据小数地址信息的位宽大小在正弦波的第一数据信息和第二数据信息之间进行插值,并根据小数地址信息获取正弦波的插值原始数据信息。
具体地,可根据第一数据信息、第二数据信息和小数地址信息计算出第一数据信息和第二数据信息之间的多个插值数据信息,然后插值模块300根据小数地址信息,在第一数据信息、第二数据信息以及多个插值数据信息中选出一个需要的数据信息,作为正弦波的插值原始数据信息。例如,假设第一数据信息为vm,第二数据信息为vp,正弦波的地址信息中的小数地址信息为fa,第一数据信息和第二数据信息的差值为vd,其中,vd=vp-vm。假设小数地址信息fa的位宽为3位,则可计算出插值原始数据有23=8种可能,即,在第一数据信息vm和第二数据信息vp之间可插入7个插值点。这7个插值点均匀分布在第一数据信息vm和第二数据信息vp之间,且这7个插值点的值分别为vm+vd/8、vm+2vd/8、vm+3vd/8、vm+4vd/8、vm+5vd/8、vm+6vd/8、vm+7vd/8。然后,根据小数地址信息fa的值在第一数据信息为vm和插入的7个点之间挑选出来一个值,具体对应关系如表2所示,
fa 插值原始数据
000 vm<<3
001 vm<<3+vd
010 vm<<3+vd<<1
011 vm<<3+vd<<1+vd
100 vm<<3+vd<<2
101 vm<<3+vd<<2+vd
110 vm<<3+vd<<2+vd<<1
111 vm<<3+vd<<2+vd<<1+vd
表2为小数地址信息fa和插值原始数据对应关系的示意图
其中,符号“<<”代表向左移位操作,举例而言,当小数地址信息fa为“001”时,相当于挑选了第一数据信息为vm和第二数据信息为vp之间的第一个插值点,该插值点的值为vm+vd/8,即(8vm+vd)/8,也就是(vm<<3+vd)/8,其中,(vm<<3+vd)为插值原始数据信息。
S14,根据小数地址信息的位宽大小和伪随机序列输出值对正弦波的插值原始数据进行截位处理,以获取正弦波的最终插值数据信息。
具体地,可对插值原始数据进行除以8操作,进一步而言,在数字电路中可直接对插值原始数据向右移3位来实现除以8操作。然而,由于插值原始数据未必均能被8整除,因此,在本发明的实施例中,还采用随机截位的方法对插值原始数据除以8后的数据进行取整处理。
S15,根据正弦波的最终插值数据信息生成正弦波的图像信息。
本发明实施例的正弦波生成方法,通过采用插值的方式,根据查值表中的两个数据信息推算出来第三个数据信息,因此相当于扩大了查值表的容量,从而达到了缩小数字电路的电路面积的目的。并且通过随机截位的方法,对插值原始数据进行取整处理,然后将生成的随机单比特数据与原始数据的整数部分相加,由此,可以避免正弦波在某些频率点的畸变。具体而言,本发明实施例的正弦波生成方法,利用面积更小的数字电路,可产生频率更加丰富和精准的正弦波,分别通过对相关技术和本发明生成的正弦波数据信息,通过MATLAB仿真后,如图4和图5所示,可以明显观察到根据本发明实施例的正弦波生成方法生成的正弦波在时域和频域都具有更好的效果。从时域来看,根据本发明实施例的正弦波生成方法生成的正弦波更为平滑和规则;从频域来看,根据本发明实施例的正弦波生成方法生成的正弦波谐波能量更小。
图8是本发明另一个具体实施例的正弦波生成方法的流程图。
如图8所示,正弦波生成方法包括:
S21,获取正弦波的配置信息,并根据正弦波的配置信息生成正弦波的地址信息,其中,正弦波的地址信息包括整数地址信息和小数地址信息。
S22,对正弦波的地址信息进行向下取整处理,以获取正弦波的整数地址信息。
具体而言,由于获取正弦波的地址信息包括整数地址信息和小数地址信息,因此,可对获取的正弦波的地址信息进行向下取整,即,只保留地址信息的整数部分,丢弃地址信息的小数部分。例如,正弦波的地址信息包含8位整数部分和3位小数部分,则对正弦波的地址信息向下取整后值输出8位整数部分。
S23,根据整数地址信息查找正弦波的第一数据信息和第二数据信息。
S24,根据小数地址信息的位宽大小在正弦波的第一数据信息和第二数据信息之间进行插值,并根据小数地址信息获取正弦波的插值原始数据信息。
S25,按照预设的位宽输出伪随机序列输出值。
具体地,伪随机序列输出值可通过伪随机序列发生器输出,该伪随机序列发生器可以根据Bit[2]经过内部运算输出伪随机序列输出值。如图3所示,伪随机序列发生器的位宽为8位,其初始化的值和Bit[2]相关联,具体设置可以根据应用场景不同而设置为不同的值。符号“<<”代表向左移位操作,当随机序列发生器生成一个伪随机序列输出值r后,整个伪随机序列发生器向左移一位,最低位用高三位的“或”运算结果来填充。
S26,根据小数地址信息的位宽大小和伪随机序列输出值对正弦波的插值原始数据进行截位处理,以获取正弦波的最终插值数据信息。
S27,根据正弦波的最终插值数据信息生成正弦波的图像信息。
本发明实施例的正弦波生成方法,由于只能根据正弦波的地址信息中的整数地址信息查找正弦波的第一数据信息和第二数据信息,因此,可通过对正弦波的地址信息进行向下取整处理,获取正弦波的整数地址信息。
图9是本发明再一个具体实施例的正弦波生成方法的流程图。
如图9所示,正弦波生成方法包括:
S31,获取正弦波的配置信息。
S32,存储正弦波的配置信息。
具体地,可接收用户输入的正弦波的配置信息,其中,正弦波的配置信息包括正弦波的初始相位和频率。接收的初始相位和频率均随着用户输入的改变而改变。在获取正弦波的配置信息之后,可将用户输入的正弦波的初始相位和频率进行存储。
S33,根据正弦波的配置信息生成正弦波的地址信息,其中,正弦波的地址信息包括整数地址信息和小数地址信息。
在本发明的实施例中,根据时钟脉冲进行累加计数。进一步而言,可在外部的时钟脉冲的作用下进行累加计数,每一个时钟脉冲都会产生一个新的数据信息,而该数据信息就是正弦波的地址信息。其中,外部的时钟脉冲可以是用户根据自身需求而设置的。S34,对正弦波的地址信息进行向下取整处理,以获取正弦波的整数地址信息。
S35,根据整数地址信息查找正弦波的第一数据信息和第二数据信息。
S36,根据小数地址信息的位宽大小在正弦波的第一数据信息和第二数据信息之间进行插值,并根据小数地址信息获取正弦波的插值原始数据信息。
S37,按照预设的位宽输出伪随机序列输出值。
S38,根据小数地址信息的位宽大小和伪随机序列输出值对正弦波的插值原始数据进行截位处理,以获取正弦波的最终插值数据信息。
S39,根据正弦波的最终插值数据信息生成正弦波的图像信息。
本发明实施例的正弦波生成方法,可通过存储正弦波的初始相位和频率,可根据正弦波的初始相位和频率生成时钟脉冲。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (16)

1.一种正弦波生成装置,其特征在于,包括:
相位累加模块,用于获取正弦波的配置信息,并根据所述正弦波的配置信息生成所述正弦波的地址信息,其中,所述正弦波的地址信息包括整数地址信息和小数地址信息;
查值模块,用于根据所述整数地址信息查找所述正弦波的第一数据信息和第二数据信息;
插值模块,用于根据所述小数地址信息的位宽大小在所述正弦波的第一数据信息和所述第二数据信息之间进行插值,并根据所述小数地址信息获取所述正弦波的插值原始数据信息;
随机截位模块,用于根据所述小数地址信息的位宽大小和伪随机序列输出值对所述正弦波的插值原始数据进行截位处理,以获取所述正弦波的最终插值数据信息;以及
正弦波生成模块,用于根据所述正弦波的最终插值数据信息生成所述正弦波的图像信息。
2.根据权利要求1所述的正弦波生成装置,其特征在于,所述查值模块中存储第一查值表和第二查值表,所述第一查值表存储所述整数地址信息中奇数地址信息/偶数地址信息对应的所述正弦波的数据信息中的一个,所述第二查值表存储所述整数地址信息中奇数地址信息/偶数地址信息对应的所述正弦波的数据信息中的另一个。
3.根据权利要求2所述的正弦波生成装置,其特征在于,所述查值模块包括随机存取存储器或只读存储器,所述第一查值表和第二查值表存储在所述随机存储器或只读存储器中。
4.根据权利要求3所述的正弦波生成装置,其特征在于,所述查值模块还用于根据所述整数地址信息在所述第一查值表/所述第二查值表中进行查值以获取所述整数地址信息对应的所述第一数据信息,并根据与所述整数地址信息相邻的下一个整数地址信息在所述第二查值表中查值以获取所述下一个整数地址信息对应的所述第二数据信息。
5.根据权利要求1所述的正弦波生成装置,其特征在于,还包括:
取整模块,用于对所述正弦波的地址信息进行向下取整处理,以获取所述正弦波的整数地址信息。
6.根据权利要求1所述的正弦波生成装置,其特征在于,所述相位累加模块包括:
存储单元,用于存储所述正弦波的配置信息,其中,所述正弦波的配置信息包括所述正弦波的初始相位和频率。
7.根据权利要求6所述的正弦波生成装置,其特征在于,所述相位累加模块还包括:
计数单元,用于根据时钟脉冲为所述相位累加模块进行累加计数。
8.根据权利要求1所述的正弦波生成装置,其特征在于,所述随机截位模块包括:
伪随机序列生成单元,用于按照预设的位宽输出所述伪随机序列输出值。
9.一种正弦波生成方法,其特征在于,包括:
获取正弦波的配置信息,并根据所述正弦波的配置信息生成所述正弦波的地址信息,其中,所述正弦波的地址信息包括整数地址信息和小数地址信息;
根据所述整数地址信息查找所述正弦波的第一数据信息和第二数据信息;
根据所述小数地址信息的位宽大小在所述正弦波的第一数据信息和所述第二数据信息之间进行插值,并根据所述小数地址信息获取所述正弦波的插值原始数据信息;
根据所述小数地址信息的位宽大小和伪随机序列输出值对所述正弦波的插值原始数据进行截位处理,以获取所述正弦波的最终插值数据信息;以及
根据所述正弦波的最终插值数据信息生成所述正弦波的图像信息。
10.根据权利要求9所述的正弦波生成方法,其特征在于,所述根据整数地址信息查找所述正弦波的第一数据信息和第二数据信息具体包括:
获取第一查值表和第二查值表;以及
根据所述整数地址信息在所述第一查值表/所述第二查值表中进行查值以获取所述整数地址信息对应的所述第一数据信息,并根据与所述整数地址信息相邻的下一个整数地址信息在所述第二查值表中差值以获取所述下一个整数地址信息对应的所述第二数据信息。
11.根据权利要求10所述的正弦波生成方法,其特征在于,所述第一查值表存储所述整数地址信息中奇数地址信息/偶数地址信息对应的所述正弦波的数据信息中的一个,所述第二查值表存储所述整数地址信息中奇数地址信息/偶数地址信息对应的所述正弦波的数据信息中的另一个。
12.根据权利要求11所述的正弦波生成方法,其特征在于,所述第一查值表和第二查值表存储在随机存储器或只读存储器中。
13.根据权利要求9所述的正弦波生成方法,其特征在于,在所述根据正弦波的配置信息生成所述正弦波的地址信息之后,还包括:
对所述正弦波的地址信息进行向下取整处理,以获取所述正弦波的整数地址信息。
14.根据权利要求9所述的正弦波生成方法,其特征在于,在所述获取正弦波的配置信息之后,还包括:
存储所述正弦波的配置信息,其中,所述正弦波的配置信息包括所述正弦波的初始相位和频率。
15.根据权利要求14所述的正弦波生成方法,其特征在于,在所述根据正弦波的配置信息生成所述正弦波的地址信息之前,还包括:
根据时钟脉冲进行累加计数。
16.根据权利要求9所述的正弦波生成方法,其特征在于,在所述根据所述小数地址信息的位宽大小和伪随机序列输出值对所述正弦波的多个插值原始数据进行截位处理之前,还包括:
按照预设的位宽输出所述伪随机序列输出值。
CN201410050499.7A 2014-02-13 2014-02-13 正弦波生成装置和方法 Active CN103795345B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201410050499.7A CN103795345B (zh) 2014-02-13 2014-02-13 正弦波生成装置和方法
EP14882585.4A EP3082255B1 (en) 2014-02-13 2014-08-14 Device and method for generating sine wave
KR1020167018346A KR101901502B1 (ko) 2014-02-13 2014-08-14 정현파 생성 장치 및 방법
PCT/CN2014/084421 WO2015120706A1 (zh) 2014-02-13 2014-08-14 正弦波生成装置和方法
US15/230,484 US10013018B2 (en) 2014-02-13 2016-08-08 Sine wave generating apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410050499.7A CN103795345B (zh) 2014-02-13 2014-02-13 正弦波生成装置和方法

Publications (2)

Publication Number Publication Date
CN103795345A CN103795345A (zh) 2014-05-14
CN103795345B true CN103795345B (zh) 2016-08-17

Family

ID=50670730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410050499.7A Active CN103795345B (zh) 2014-02-13 2014-02-13 正弦波生成装置和方法

Country Status (5)

Country Link
US (1) US10013018B2 (zh)
EP (1) EP3082255B1 (zh)
KR (1) KR101901502B1 (zh)
CN (1) CN103795345B (zh)
WO (1) WO2015120706A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795345B (zh) 2014-02-13 2016-08-17 深圳市汇顶科技股份有限公司 正弦波生成装置和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777872A (zh) * 2009-12-15 2010-07-14 天水华天微电子股份有限公司 三相正弦波发生电路
CN102253254A (zh) * 2011-04-18 2011-11-23 中国航空工业集团公司北京长城计量测试技术研究所 一种多路正弦波相位标准信号的产生装置及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0199192B1 (en) * 1985-04-12 1995-09-13 Yamaha Corporation Tone signal generation device
US5014231A (en) * 1987-11-23 1991-05-07 Hughes Aircraft Company Randomized digital/analog converter direct digital synthesizer
US5563535A (en) * 1994-11-29 1996-10-08 Microunity Systems Engineering, Inc. Direct digital frequency synthesizer using sigma-delta techniques
DE69535233D1 (de) * 1995-12-26 2006-11-02 Lsi Logic Corp Rauschverminderung in digitalen Frequenzsynthetisierern
US5799265A (en) * 1996-11-26 1998-08-25 Sun Microsystems, Inc. Apparatus and method for generating a sinusoidal signal
US5951625A (en) * 1997-06-30 1999-09-14 Truevision, Inc. Interpolated lookup table circuit
JP2000347678A (ja) * 1999-06-08 2000-12-15 Nec Corp トーン発生回路
US6356124B1 (en) * 2000-06-26 2002-03-12 Conexant Systems, Inc. Method and apparatus for generating a digital sine wave signal
US6600378B1 (en) * 2002-01-18 2003-07-29 Nokia Corporation Fractional-N frequency synthesizer with sine wave generator
US7064616B2 (en) * 2003-12-29 2006-06-20 Teradyne, Inc. Multi-stage numeric counter oscillator
US7599977B2 (en) * 2005-08-16 2009-10-06 Reveal Imaging, Llc Direct digital synthesizer system and related methods
US7953782B2 (en) * 2007-05-18 2011-05-31 Ess Technology, Inc. Digital forced oscillation by direct digital synthesis
US8392492B2 (en) * 2009-01-19 2013-03-05 Himax Media Solutions, Inc. Sine/cosine value generation apparatus
US8659331B2 (en) * 2012-01-18 2014-02-25 Qualcomm Incorporated High accuracy sin-cos wave and frequency generators, and related systems and methods
US9304971B2 (en) * 2013-06-27 2016-04-05 International Business Machines Corporation Lookup table sharing for memory-based computing
KR20150070591A (ko) * 2013-12-17 2015-06-25 삼성전기주식회사 정현파 생성 장치 및 방법, 그를 이용한 피에조 엑츄에이터 구동 시스템
KR20150071267A (ko) * 2013-12-18 2015-06-26 삼성전기주식회사 정현파 생성 장치 및 방법, 그를 이용한 피에조 액츄에이터 구동 시스템
CN103795345B (zh) * 2014-02-13 2016-08-17 深圳市汇顶科技股份有限公司 正弦波生成装置和方法
US9438250B2 (en) * 2014-09-11 2016-09-06 Hughes Network Systems, Llc Variable rate interpolation with numerically controlled oscillator

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777872A (zh) * 2009-12-15 2010-07-14 天水华天微电子股份有限公司 三相正弦波发生电路
CN102253254A (zh) * 2011-04-18 2011-11-23 中国航空工业集团公司北京长城计量测试技术研究所 一种多路正弦波相位标准信号的产生装置及方法

Also Published As

Publication number Publication date
US20160342174A1 (en) 2016-11-24
KR101901502B1 (ko) 2018-09-21
EP3082255A4 (en) 2017-09-20
WO2015120706A1 (zh) 2015-08-20
CN103795345A (zh) 2014-05-14
US10013018B2 (en) 2018-07-03
KR20160097292A (ko) 2016-08-17
EP3082255B1 (en) 2020-06-03
EP3082255A1 (en) 2016-10-19

Similar Documents

Publication Publication Date Title
CN105991132A (zh) 具有动态相位和脉宽控制的频率合成器
CN102788891B (zh) 一种复杂的波形序列发生器
CN103812596B (zh) 伪随机序列的生成方法和装置
CN103870238B (zh) 基于fpga的伪随机序列发生器及其生成方法
CN102025389B (zh) 一种伪随机序列的生成方法及装置
US20140029716A1 (en) Clock divider circuit
CN101359909B (zh) 具有扩展的范围能力的灵活波形发生器
US20150049799A1 (en) Digital pulse width generator and method for generating digital pulse width
CN103795345B (zh) 正弦波生成装置和方法
CN103346791A (zh) 具有简化and和重建add逻辑阵列的直接数字频率合成器
JP6423270B2 (ja) 乱数生成装置及び乱数生成方法
CN106134519B (zh) 星上高效率实现多路扩频加扰及成型滤波的系统
CN1951014B (zh) 用于可编程时钟发生器的设备和方法
EP2827516A1 (en) Scrambling code generation method, apparatus and scrambling code processing apparatus
CN106506010B (zh) 一种基于dvb-s2标准多码率兼容的ldpc编码器
CN103178784B (zh) 一种振荡键控调制方法、装置和函数信号发生器
CN104836634B (zh) 码长n最小距离n‑1的置换码构造方法和码字序列发生器
JP6379032B2 (ja) 乱数生成装置及び乱数生成方法
CN105515551A (zh) 一种具有任意波编辑功能的信号发生器
CN103002561A (zh) 辅同步信号序列处理方法及装置
CN106716292A (zh) 高速率正弦曲线序列的生成
CN109063258A (zh) 卫星状态遥测参数存储方法和系统
FI59517C (fi) Kopplingsanordning foer frekvensdifferentiell fasmodulation av signaler
CN109495107B (zh) 一种分频方法、移位寄存器及片上系统
CN103684428B (zh) 一种用于全数字锁相环的动态器件匹配的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant