CN105866483A - 一种用dsp控制器生成正弦波信号的实现方法 - Google Patents
一种用dsp控制器生成正弦波信号的实现方法 Download PDFInfo
- Publication number
- CN105866483A CN105866483A CN201610288781.8A CN201610288781A CN105866483A CN 105866483 A CN105866483 A CN 105866483A CN 201610288781 A CN201610288781 A CN 201610288781A CN 105866483 A CN105866483 A CN 105866483A
- Authority
- CN
- China
- Prior art keywords
- sine wave
- implementation method
- dsp controller
- signal
- wave signal
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R1/00—Details of instruments or arrangements of the types included in groups G01R5/00 - G01R13/00 and G01R31/00
- G01R1/28—Provision in measuring instruments for reference values, e.g. standard voltage, standard waveform
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种用DSP控制器生成正弦波信号的实现方法,先设定参数,再计算出一个正弦波信号周期的采样点数N和一个采样点所占用的角度值θ,根据最优化理论中的投影定理方法求出逼近正弦函数的五次多项式;再根据采样点n所在区间的不同,实时计算出正弦波信号的离散点数值f0;然后利用DSP控制器把计算出的正弦波信号离散点数值f0送入DAC转换电路,生成连续的正弦波电流信号;最后利用UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号,从而实现正弦波信号的输出。本发明减小了连续递推计算导致的累积误差,简化了计算程序,减少了DSP控制器的计算时间,占用DSP控制器的存储空间小,降低了成本,波形逼近,精度高。
Description
技术领域
本发明属于波信号的实现领域,特别是涉及一种用DSP控制器生成正弦波信号的实现方法。
背景技术
正弦波信号发生器已经广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。基于DSP控制器产生正弦波信号的数字实现方法很多,区别主要在于产生算法及软件的不同。常用的方法有三种:查表法、泰勒级数展开法和迭代法。
查表法是最直接的一种数字实现方法,设计者可以根据运算的需要预先计算好所有可能出现的正弦函数值,将这些结果编排成数据表,在使用时只要根据输入查出表中对应的函数值即可。查表法的特点是速度快、调相调频调幅容易,但需要占用大量的存储空间,且灵活度低。
迭代法是利用数字振荡器通过迭代算法产生正弦波的数字实现方法,它的关键是函数值之间的递推关系,也就是系统的差分方程或系统函数模型。如果一个离散时间系统的系统函数没有零点,只有一对处在单位圆上的共扼极点,则其单位冲激响应为恒幅度振荡,即产生了正弦信号。迭代法由于是实时生成产生正弦波的离散点数值,因而占用的存储空间相对较少,运算时间短进而占用DSP控制器的时间也就越短。但是,由于新的数值产生利用了之前的函数值,会产生积累误差,尤其是在正弦波的后半部分,积累误差会越来越大,而且当采样点数N不是足够大的时候,误差积累会进一步增大。
泰勒级数展开法是一种利用多项式逼近正弦函数的数字实现方法,正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值θ相对应,可以利用DSP处理器处理大量重复计算(乘加运算)的优势来计算x轴每一点对应的y的值(如果在x轴取N个点来进行逼近,则θ=2π/N)。泰勒级数计算的精度取决于展开项数和点对应角度值θ:展开项数越多精度越高,但计算时间越长,占用DSP控制器的时间就越多;点对应角度值θ越小,精度越高,但随着点对应角度值θ的增加,精度也必然下降。图2为根据泰勒级数展开法利用五次多项式逼近正弦波函数生成的正弦波信号与标准正弦波信号的比较。
发明内容
为克服现有技术的不足,本发明提出了一种用DSP控制器生成正弦波信号的实现方法,有效减小了连续递推计算导致的累积误差,简化了计算程序,减少了DSP控制器的的计算时间,且占用DSP控制器的存储空间小,降低了成本,波形逼近,精度高。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。
依据本发明提出的一种用DSP控制器生成正弦波信号的实现方法,其包括以下步骤:(1)设定参数,具体包括设定正弦波信号的频率f和幅值A,设定采样频率fs;
(2)计算出一个正弦波信号周期的采样点数N;
(3)计算出一个采样点所占用的角度值θ;
(4)根据最优化理论中的投影定理方法求出逼近正弦函数的五次多项式;
(5)根据采样点n所在区间的不同,实时计算出正弦波信号的离散点数值f0;
(6)利用DSP控制器把计算出的正弦波信号离散点数值f0送入DAC转换电路,生成连续的正弦波电流信号;
(7)利用UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号,从而实现正弦波信号的输出。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的一种用DSP控制器生成正弦波信号的实现方法,其中,步骤(2)所用的计算公式为N=fs/f。
前述的一种用DSP控制器生成正弦波信号的实现方法,其中,步骤(3)所用的计算公式为θ=2π/N。
前述的一种用DSP控制器生成正弦波信号的实现方法,其中,步骤(4)所述的五次多项式为sin(x)≈0.9875·x-0.1551·x3+0.0056·x5。
前述的一种用DSP控制器生成正弦波信号的实现方法,其中,步骤(5)的具体计算方式为:
①采样点n在[1,N/2)区间时,令x=-θ(N/2-n):
f0=0.9875·x-0.1551·x3+0.0056·x5;同时n=n+1;
如果n<N/2,则重复执行①,否则转入②;
②采样点n在[N/2,N]区间时,令x=θ(n-N/2):
f0=0.9875·x-0.1551·x3+0.0056·x5;同时n=n+1;
如果n≤N,则重复执行②,否则,令n=1,转入①,开始下一个正弦波信号周期。
前述的一种用DSP控制器生成正弦波信号的实现方法,其中,所述的方法通过生成正弦波信号的电路系统实现,该电路系统包括:键盘输入电路、DSP控制器、DAC转换电路和UA运算放大器;其中,键盘输入电路的输出端与DSP控制器连接,DSP控制器的输出端与DAC转换电路连接,DAC转换电路的输出端与UA运算放大器连接,UA运算放大器输出正弦波信号。
所述DAC转换电路把正弦波信号的离散点数值转换成连续的正弦波电流信号。
本发明与现有技术相比具有明显的优点和有益效果,借由上述技术方案,本发明一种用DSP控制器生成正弦波信号的实现方法可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
(1)、本发明根据最优化理论中的投影定理方法利用多项式逼近正弦波信号,而不是根据泰勒级数展开方法利用多项式逼近正弦波信号。在多项式次数同样的情况下,与泰勒级数展开方法相比较,基于投影定理方法的多项式逼近正弦波信号的收敛速度快,而且在整个周期内,波形逼近,精度高。
(2)、本发明既克服了泰勒级数展开方法为提高逼近精度而增加展开项数而导致计算时间过长,进而占用DSP控制器时间就越多的缺点,又克服了泰勒级数展开方法随着点对应角度值θ的增加,精度也必然下降的缺点,简化了计算程序,从而减少了DSP控制器的计算时间。
(3)、本发明根据采样点n所在区间的不同,利用DSP控制器使用基于投影定理方法的多项式逼近公式实时计算出正弦波信号的离散点数值,而不像迭代法那样只用正弦函数递推公式,从而减小了递推公式因连续递推计算导致的累积误差。而且由于实时计算出正弦波信号的离散点数值,不也像查表法大量占用存储空间,从而减少对DSP控制器存储空间的占用,降低了成本。
综上所述,本发明一种用DSP控制器生成正弦波信号的实现方法在技术上有显著的进步,并具有明显的积极效果,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本发明生成正弦波信号的电路系统图。
图2为根据泰勒级数展开法利用五次多项式逼近正弦波函数生成的正弦波信号与标准正弦波信号的比较图。
图3为根据投影定理方法利用五次多项式逼近正弦波函数生成的正弦波信号与标准正弦波信号的比较图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种用DSP控制器生成正弦波信号的实现方法,其具体实施方式、结构、特征及其功效,详细说明如后。
本发明的一种用DSP控制器生成正弦波信号的实现方法,结合图1所示,在硬件电路结构上,包括:键盘输入电路、DSP控制器、DAC转换电路和UA运算放大器;采用的原理为投影定理与多项式逼近。其中:键盘输入电路的主要目的是设定正弦波信号的频率和幅值,以及采样频率。DSP控制器根据键盘输入电路设定的正弦波信号频率、幅值和采样频率,计算正弦波信号的离散点数值,同时把离散点数值送入DAC转换电路。DAC转换电路主要用于把正弦波信号的离散点数值转换成连续的正弦波电流信号。如果需要的正弦波信号为电压信号,则需要利用UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号。
一种用DSP控制器生成正弦波信号的实现方法,首先根据采样频率fs和正弦波频率f的比值计算出一个正弦波信号周期的采样点数N,利用式θ=2π/N计算出一个采样点数所占用的角度值θ。根据最优化理论的投影定理方法求出逼近正弦函数的五次多项式。然后,利用DSP控制器,在采样点n=[1,N/2)区间,使用投影定理方法求出用于逼近正弦函数的五次多项式计算出负半周正弦波信号的离散点数值;在采样点n=[N/2,N]区间,使用投影定理方法求出用于逼近正弦函数的五次多项式计算出正半周正弦波信号的离散点数值。最后通过DAC转换电路把正弦波信号的离散点数值转换成连续的正弦波信号,从而实现正弦波信号的输出。图3为根据投影定理方法利用五次多项式逼近正弦波函数生成的正弦波信号与标准正弦波信号的比较。
基于泰勒级数展开法利用多项式逼近正弦波,为了保证正弦波信号的整体逼近精度,需要增加展开项数来提高,这样就增加了DSP控制器的计算时间;同时为了避免随着点对应角度值θ的增加导致逼近精度下降,利用正弦函数计算结果可以复用的特点,存储点对应角度值θ比较小的一些正弦值,利用复制方法来生成正弦波信号。虽然这种改进的泰勒级数展开法比泰勒级数展开法本身精度高,但同时引入了查表方法的缺点。
在最优化理论中,由投影定理可知,一个无穷维向量到有限维子空间的最短距离是这个无穷维向量在有限维子空间的投影距离。根据投影定理,sin(x)属于勒贝格平方可积的实值函数空间L2[-π,π]的一个无穷维向量,而1、x、x2、x3、x4、x5属于L2[-π,π]的五个线性无关向量,生成空间Span[1、x、x2、x3、x4、x5]是L2[-π,π]的五维子空间。利用五次多项式逼近正弦波就是在Span[1、x、x2、x3、x4、x5]子空间中找到一个向量a+bx+cx2+dx3+ex4+fx5逼近sin(x),也就是||sin(x)-(a+bx+cx2+dx3+ex4+fx5)||min,等于sin(x)在Span[1、x、x2、x3、x4、x5]子空间的投影距离。也就是sin(x)-(a+bx+cx2+dx3+ex4+fx5)与Span[1、x、x2、x3、x4、x5]中的任一向量正交:
<sin(x)-(a+bx+cx2+dx3+ex4+fx5),1>=0
<sin(x)-(a+bx+cx2+dx3+ex4+fx5),x>=0
<sin(x)-(a+bx+cx2+dx3+ex4+fx5),x2>=0
<sin(x)-(a+bx+cx2+dx3+ex4+fx5),x3>=0
<sin(x)-(a+bx+cx2+dx3+ex4+fx5),x4>=0
<sin(x)-(a+bx+cx2+dx3+ex4+fx5),x5>=0
整理得到:
L2[-π,π]的内积为:
因此,可以求出五次多项式的系数:
则正弦波信号的逼近公式为:
sin(x)≈0.9875x-0.1551x3+0.0056x5。
图2和图3分别是基于泰勒级数展开法和基于投影定理法的多项式逼近正弦波信号与标准正弦波信号的比较图。由图可以看出,在同样五次多项式的情况下,基于投影定理法的多项式逼近比基于泰勒级数展开法的逼近精度高,尤其是在一个正弦波周期的始末端部分。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (7)
1.一种用DSP控制器生成正弦波信号的实现方法,其特征在于其包括以下步骤:
(1)设定参数,具体包括设定正弦波信号的频率f和幅值A,设定采样频率fs;
(2)计算出一个正弦波信号周期的采样点数N;
(3)计算出一个采样点所占用的角度值θ;
(4)根据最优化理论中的投影定理方法求出逼近正弦函数的五次多项式;
(5)根据采样点n所在区间的不同,实时计算出正弦波信号的离散点数值f0;
(6)利用DSP控制器把计算出的正弦波信号离散点数值f0送入DAC转换电路,生成连续的正弦波电流信号;
(7)利用UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号,从而实现正弦波信号的输出。
2.如权利要求1所述的实现方法,其特征在于步骤(2)所用的计算公式为N=fs/f。
3.如权利要求1所述的实现方法,其特征在于步骤(3)所用的计算公式为θ=2π/N。
4.如权利要求1所述的实现方法,其特征在于步骤(4)所述的五次多项式为sin(x)≈0.9875·x-0.1551·x3+0.0056·x5。
5.如权利要求1所述的实现方法,其特征在于步骤(5)的具体计算方式为:
①采样点n在[1,N/2)区间时,令x=-θ(N/2-n):
f0=0.9875·x-0.1551·x3+0.0056·x5;同时n=n+1;
如果n<N/2,则重复执行①,否则转入②;
②采样点n在[N/2,N]区间时,令x=θ(n-N/2):
f0=0.9875·x-0.1551·x3+0.0056·x5;同时n=n+1;
如果n≤N,则重复执行②,否则,令n=1,转入①,开始下一个正弦波信号周期。
6.如权利要求1所述的实现方法,其特征在于所述方法通过生成正弦波信号的电路系统实现,该电路系统包括:键盘输入电路、DSP控制器、DAC转换电路和UA运算放大器;其中,键盘输入电路的输出端与DSP控制器连接,DSP控制器的输出端与DAC转换电路连接,DAC转换电路的输出端与UA运算放大器连接,UA运算放大器输出正弦波信号。
7.如权利要求6所述的电路系统,其特征在于所述DAC转换电路把正弦波信号的离散点数值转换成连续的正弦波电流信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610288781.8A CN105866483B (zh) | 2016-04-29 | 2016-04-29 | 一种用dsp控制器生成正弦波信号的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610288781.8A CN105866483B (zh) | 2016-04-29 | 2016-04-29 | 一种用dsp控制器生成正弦波信号的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105866483A true CN105866483A (zh) | 2016-08-17 |
CN105866483B CN105866483B (zh) | 2018-07-03 |
Family
ID=56630002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610288781.8A Active CN105866483B (zh) | 2016-04-29 | 2016-04-29 | 一种用dsp控制器生成正弦波信号的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105866483B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569541A (zh) * | 2016-10-17 | 2017-04-19 | 深圳市科陆精密仪器有限公司 | 正弦波生成方法及装置 |
CN108693531A (zh) * | 2018-03-22 | 2018-10-23 | 合肥晟泰克汽车电子股份有限公司 | 汽车防撞雷达系统的处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860238A (en) * | 1986-02-03 | 1989-08-22 | Siemens Aktiengesellschaft | Digital sine generator |
CN102231809A (zh) * | 2011-05-24 | 2011-11-02 | 北京空间机电研究所 | 一种电子倍增ccd正弦波驱动方法 |
CN102684542A (zh) * | 2012-05-17 | 2012-09-19 | 福州大学 | 采用准正弦平顶调制波生成三相pwm的方法 |
CN103226544A (zh) * | 2013-05-17 | 2013-07-31 | 天津芬奇动视文化传播有限公司 | 一种基于拟合逼近算法的应用模型 |
-
2016
- 2016-04-29 CN CN201610288781.8A patent/CN105866483B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860238A (en) * | 1986-02-03 | 1989-08-22 | Siemens Aktiengesellschaft | Digital sine generator |
CN102231809A (zh) * | 2011-05-24 | 2011-11-02 | 北京空间机电研究所 | 一种电子倍增ccd正弦波驱动方法 |
CN102684542A (zh) * | 2012-05-17 | 2012-09-19 | 福州大学 | 采用准正弦平顶调制波生成三相pwm的方法 |
CN103226544A (zh) * | 2013-05-17 | 2013-07-31 | 天津芬奇动视文化传播有限公司 | 一种基于拟合逼近算法的应用模型 |
Non-Patent Citations (2)
Title |
---|
姜志鹏 等: "基于泰勒级数展开法的DSP正弦信号发生器设计", 《数字技术与应用》 * |
李爱华 等: "基于DSP的正弦信号发生方法", 《江苏电器》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569541A (zh) * | 2016-10-17 | 2017-04-19 | 深圳市科陆精密仪器有限公司 | 正弦波生成方法及装置 |
CN106569541B (zh) * | 2016-10-17 | 2019-09-17 | 深圳市科陆精密仪器有限公司 | 正弦波生成方法及装置 |
CN108693531A (zh) * | 2018-03-22 | 2018-10-23 | 合肥晟泰克汽车电子股份有限公司 | 汽车防撞雷达系统的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105866483B (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102045062B (zh) | 一种基于Cordic算法的数字锁相环 | |
CN105974997A (zh) | 一种正弦波信号的数字实现方法 | |
CN101577549A (zh) | 多输出时间数字转换器 | |
CN105759119B (zh) | Sdft基波正序分量相位同步方法及系统 | |
CN109814836A (zh) | 一种基于区间划分和cordic的三角函数计算方法及装置 | |
CN105866483A (zh) | 一种用dsp控制器生成正弦波信号的实现方法 | |
Gonzalez-Guerrero et al. | SC-SD: Towards low power stochastic computing using sigma delta streams | |
CN107436619B (zh) | 一种高精度低代价数字正弦波发生装置 | |
RU167428U1 (ru) | Преобразователь синусно-косинусного сигнала в код положения | |
CN103365827A (zh) | 一种高精度正弦/余弦函数的计算方法 | |
CN108111448A (zh) | 预失真查找表的生成方法、装置与预失真校准设备 | |
CN109901382A (zh) | 一种数字控制系统的规则采样pwm优化方法 | |
CN109391267A (zh) | 使用带adcs和dac的数字plls时的抖动减少技术 | |
CN109857188A (zh) | 一种基于dds的脉冲波产生方法、装置及其系统 | |
Perišić et al. | Time recursive frequency locked loop for the tracking applications | |
Friesen et al. | On stochastic Cucker-Smale flocking dynamics | |
CN103065039B (zh) | 一种基于欧拉公式的高精度正弦/余弦函数计算方法 | |
CN107547069A (zh) | 一种旋变激磁信号发生系统及发生方法 | |
CN104753530A (zh) | Dds中相位修正及非均匀相幅转换方法及装置 | |
CN103425810A (zh) | 一种时钟与数据恢复电路和模拟电路的行为级建模方法 | |
CN109359422B (zh) | 一种动态涡环尾迹模型的伪隐形推进获取方法 | |
Unnikrishnan et al. | Design of a VCO-based ADC in 28 nm CMOS | |
CN110046762A (zh) | 一种基于超弦灵魂算法的公交客流预测方法 | |
CN104270095A (zh) | 基于cpld的单片方波信号倍频器及输出任意倍频信号的方法 | |
Suryavanshi et al. | A comparative study of direct digital frequency synthesizer architectures in 180nm CMOS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221129 Address after: 471000 room 504, building 3-1, science and Technology Park, Luoyang National University, No. 2, Penglai Road, Luoyang area (Jianxi), China (Henan) pilot Free Trade Zone, Luoyang City, Henan Province Patentee after: Wanhe (Luoyang) Photoelectric Technology Co.,Ltd. Address before: 471000 No.71, Jiudu West Road, Jianxi District, Luoyang City, Henan Province Patentee before: LUOYANG INSTITUTE OF SCIENCE AND TECHNOLOGY |
|
TR01 | Transfer of patent right |