一种正弦波信号的数字实现方法

文档序号:10612346阅读:382来源:国知局
一种正弦波信号的数字实现方法
【专利摘要】本发明涉及一种正弦波信号的数字实现方法,具体为:先设定参数,然后计算一个正弦波信号周期的采样点数N和一个采样点所占用的角度值θ;再计算出sin(θ)和cos(θ)以及sin(2θ)和cos(2θ)的数值;然后计算出正弦波信号的离散点数值f0;再把正弦波信号离散点数值f0送入DAC转换电路,生成连续的正弦波电流信号;最后利用UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号,从而实现正弦波信号的输出。本发明的正弦波信号数字实现方法简化了计算程序,减少了DSP控制器的计算时间;有效减小了连续递推计算导致的累积误差,且占用的存储空间小,成本低;可以很方便地计算出初始的正弦函数值和余弦函数值,灵活地调节正弦波信号的频率。
【专利说明】
一种正弦波信号的数字实现方法
技术领域
[0001] 本发明属于波信号的实现领域,特别是涉及一种正弦波信号的数字实现方法。
【背景技术】
[0002] 正弦波信号发生器已经广泛地应用于通信、仪器仪表和工业控制等领域的信号处 理系统中。基于DSP控制器产生正弦波信号的数字实现方法很多,区别主要在于产生算法及 软件的不同。常用的方法有三种:查表法、泰勒级数展开法和迭代法。
[0003] 查表法是最直接的一种数字实现方法,设计者可以根据运算的需要预先计算好所 有可能出现的正弦函数值,将这些结果编排成数据表,在使用时只要根据输入查出表中对 应的函数值即可。查表法的特点是速度快、调频调幅容易,但需要占用大量的存储空间,且 灵活度低。
[0004] 泰勒级数展开法是一种利用多项式逼近正弦函数的数字实现方法,正弦波的波形 可以看作由无数点组成,这些点与X轴的每一个角度值Θ相对应,可以利用DSP处理器处理大 量重复计算(乘加运算)的优势来计算X轴每一点对应的y的值(如果在X轴取N个点来进行逼 近,则Θ = 2π/Ν)。泰勒级数计算的精度取决于展开项数和点对应角度值Θ:展开项数越多精 度越高,但计算时间越长,占用DSP控制器的时间就越多;点对应角度值Θ越小,精度越高,但 随着点对应角度值Θ的增加,精度也必然下降。
[0005] 为了克服以上缺点,考虑正弦函数的计算结果可以复用的特点,有学者对泰勒级 数展开法进行了改进。首先,用泰勒级数展开法计算〇~V4的正弦与余弦值,保存以上计算 结果;其次,利用sin(20) = 2sin(0)cos(0)式求出〇~jt/2的正弦值;最后,通过复制获得0~ 2π的正弦值,重复输出该值就可以得到正弦波。由此可看出,改进的泰勒级数展开法利用泰 勒级数展开法与查表法结合的方法,通过缩小点对应角度值Θ的取值范围来克服泰勒级数 展开法随着点对应角度值Θ增加而精度下降的缺点,但是同时引入了查表法占用大量存储 空间的缺点,而且也没有改变泰勒级数展开法由于展开项数越多导致计算时间越长的固有 缺点。
[0006] 迭代法是利用数字振荡器通过迭代算法产生正弦波的数字实现方法,它的关键是 函数值之间的递推关系,也就是系统的差分方程或系统函数模型。如果一个离散时间系统 的系统函数没有零点,只有一对处在单位圆上的共扼极点,则其单位冲激响应为恒幅度振 荡,即产生了正弦信号。迭代算法的正弦函数递推公式为 :Sin(n0) = 2C〇S(0)sin[(n-l)0]-sin[(n-2)0]。式中,0 = 2VN,N=fs/f为一个正弦波周期内的采用点数,fs为采样频率,f为 正弦波频率,η为采样点的序号。迭代法只要首先预置sin(0)和 cos(0)的数值,就可以计算 出后面所有的sin(n0),并送入DAC转换电路即可生成连续的正弦波信号。迭代法由于是实 时生成产生正弦波的离散点数值,因而占用的存储空间相对较少,运算时间短进而占用DSP 控制器的时间也就越短。但是,由于新的数值产生利用了之前的函数值,会产生积累误差, 尤其是在正弦波的后半部分,积累误差会越来越大,而且当采样点数N不是足够大的时候, 误差积累会进一步增大。同时,由于在递推公式计算之前要首先预置sin(0)和 cos(0)的数 值,因而导致采样点数N不可改变,在采样频率fs固定的情况下,影响正弦波频率f的灵活调 To

【发明内容】

[0007] 为克服现有技术的不足,本发明提出了一种正弦波信号的数字实现方法,有效减 小了连续递推计算导致的累积误差,且占用的存储空间小,成本低;可以很方便地计算出初 始的正弦函数值和余弦函数值,灵活地调节正弦波信号的频率。
[0008] 本发明的目的及解决其技术问题是采用以下技术方案来实现的。
[0009] 依据本发明提出的一种正弦波信号的数字实现方法,其包括以下步骤:
[0010] (1)、设定参数,具体包括:设定正弦波信号的频率f和幅值A,设定采样频率fs;
[0011] (2)、计算出一个正弦波信号周期的采样点数N;
[0012] (3)、计算出一个采样点所占用的角度值Θ;
[0013] ⑷、在角度值Θ在[-0.2,+0.2]之间时,根据角度值0和正弦函数8丨1!(0)的近似线 性关系,计算出sin( Θ)和cos (Θ)的数值;
[0014] (5)、计算sin(20)和cos(20)的数值;
[0015] (6)、根据采样点η所在区间的不同,交替使用正弦函数和余弦函数的递推公式sin (ηθ)=2cos(9)sin[(n_l)9]-sin[(η_2)θ]和cos(n9)=2cos(9)cos[(n_l)9]-cos[(η_2)θ] 实时计算出正弦波信号的离散点数值fo;
[0016] (7)、利用DSP控制器把计算出的正弦波信号离散点数值fo通过接口电路送入DAC 转换电路,生成连续的正弦波电流信号;
[0017] (8)、最后利用UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压 信号,从而实现正弦波信号的输出。
[0018] 本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
[0019] 前述的一种正弦波信号的数字实现方法,其中,步骤(2)所用的计算公式为N=fs/ fo
[0020] 前述的一种正弦波信号的数字实现方法,其中,步骤(3)所用的计算公式为θ = 2π/ Ν〇
[0021] 前述的一种正弦波信号的数字实现方法,其中,步骤(4)利用式sin(0)~Θ计算出 s in (Θ)的数值,利用式
《1 - 0.5#计算出cos (Θ)的数值。
[0022]前述的一种正弦波信号的数字实现方法,其中,步骤(5)利用式sin(20) = 2sin(0) cos(9)计算出sin(29)的数值,利用式 cos(29) = [cos(9)+sin(9)][cos(9)-sin(9)]计算出 cos (2Θ)的数值。
[0023] 前述的一种正弦波信号的数字实现方法,其中,步骤(6)的具体算法为:
[0024] 令fis = sin(9)、flc = cos(9)、f2s = sin(29)、f2c = cos(29) ;n = 1;
[0025]①采样点n在[1,N/4]区间时,令i=n:
[0026] 如果;[=ι,则f3 = = Af3,f1 = fls;
[0027] 如果;[ = 2,则f3 = f2s,fQ = Af3,f2 = f2s;
[0028] 如果;[彡3,则f3 = 2flcf2-fl,f() = Af3,fl = f2,f2 = f3;
[0029] 同时 η = η+ι;
[0030] 如果n<N/4,则重复执行①,否则转入②;
[0031] ②采样点η在(N/4,N/2 ]区间时,令j = n-N/4:
[0032] 如果j = i,则f6 = flc,f() = Af6,f4 = fic;
[0033] 如果 j = 2,则f6 = f2c,f〇 = Af6,f5 = f2c;
[0034] 如果 j 彡3,则f6=2flcf5-f4,f() = Af6,f4 = f5,f5 = f6;
[0035] 同时 n = n+l;
[0036] 如果n<N/2,则重复执行②,否则转入③;
[0037] ③采样点η在(N/2,3N/4]区间时,令i = n-N/2:
[0038] 如果;[=ι,则f3 = -fls,f() = Af3,f1 = -fls;
[0039] 如果;[ = 2,则f3 = -f2s,fQ = Af3,f2 = -f2s;
[0040] 如果;[彡3,则f3 = 2flcf2-fl,f() = Af3,fl = f2,f2 = f3;
[0041] 同时 η = η+ι;
[0042] 如果η彡3N/4,则重复执行③,否则转入④;
[0043] ④采样点η在(3Ν/4,Ν]区间时,令j=n-3N/4:
[0044] 如果j = ]_,则
[0045] 如果 j = 2,则f6 = -f2c,f〇 = Af6,f5 = -f2c;
[0046] 如果 j 彡3,则f6=2flcf5-f4,f() = Af6,f4 = f5,f5 = f6;
[0047] 同时 η = η+ι;
[0048] 如果n<N,则重复执行④,否则,令n = l,转入①,开始下一个正弦波信号周期。 [0049]前述的一种正弦波信号的数字实现方法,其中,所述方法通过生成正弦波信号的 电路系统实现,该电路系统包括:键盘输入电路、DSP控制器、接口电路、DAC转换电路和UA运 算放大器;其中,键盘输入电路的输出端与DSP控制器连接,DSP控制器的输出端与接口电路 连接,接口电路的输出端与DAC转换电路连接,DAC转换电路的输出端与UA运算放大器连接, UA运算放大器输出正弦波信号。
[0050] 所述接口电路是缓冲DSP控制器与DAC转换电路之间的速度差,以保证正弦波信号 的离散点数值准确可靠地送入DAC转换电路的一种电路。
[0051] 所述DAC转换电路把通过接口电路送入的正弦波信号的离散点数值转换成连续的 正弦波电流信号。
[0052]所述UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号。
[0053]本发明与现有技术相比具有明显的优点和有益效果,借由上述技术方案,本发明 一种正弦波信号的数字实现方法可达到相当的技术进步性及实用性,并具有产业上的广泛 利用价值,其至少具有下列优点:
[0054] (1)、本发明利用角度值Θ和正弦函数sin(0)的近似线性关系,而不是利用泰勒级 数展开公式,计算出初始的正弦函数值和余弦函数值,简化了计算程序,从而减少了 DSP控 制器的计算时间;
[0055] (2)、本发明根据采样点η所在区间的不同,利用DSP控制器交替使用正弦函数和余 弦函数的递推公式实时计算出正弦波信号的离散点数值,而不像迭代法那样只用正弦函数 递推公式,从而减小了递推公式因连续递推计算导致的累积误差,而且由于实时计算出正 弦波信号的离散点数值,不也像查表法大量占用存储空间,从而减少对DSP控制器存储空间 的占用,降低了成本;
[0056] (3)、本发明由于可以很方便地计算出初始的正弦函数值和余弦函数值,不需要像 迭代法那样要预置初始的正弦函数值和余弦函数值,采样点数N可改变,因而即使在采样频 率fs固定的情况下,仍可以灵活地调节正弦波信号的频率。
[0057]综上所述,本发明一种正弦波信号的数字实现方法在技术上有显著的进步,并具 有明显的积极效果,诚为一新颖、进步、实用的新设计。
[0058]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够 更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
【附图说明】
[0059] 图1为本发明的正弦波信号数字实现方法的电路系统图。
[0060] 图2为本发明的角度值Θ和正弦函数Sin(0)的近似线性关系图。
【具体实施方式】
[0061] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合 附图及较佳实施例,对依据本发明提出的一种正弦波信号的数字实现方法,其具体实施方 式、结构、特征及其功效,详细说明如后。
[0062]本发明的一种正弦波信号的数字实现方法,结合图1所示,在硬件电路结构上,包 括:键盘输入电路、DSP控制器、接口电路、DAC转换电路和UA运算放大器;在软件结构上包括 角度值Θ和正弦函数sin(0)。其中:键盘输入电路的主要目的是设定正弦波信号的频率和幅 值,以及采样频率。DSP控制器根据键盘输入电路设定的正弦波信号频率、幅值和采样频率, 计算正弦波信号的离散点数值,同时把离散点数值通过接口电路送入DAC转换电路。接口电 路用于缓冲DSP控制器与DAC转换电路的速度差,以保证正弦波信号的离散点数值准确地可 靠地送入DAC转换电路。DAC转换电路主要用于把通过接口电路送入的正弦波信号的离散点 数值转换成连续的正弦波电流信号。如果需要的正弦波信号为电压信号,则需要利用UA运 算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号。
[0063] 一种正弦波信号的数字实现方法是通过上述的正弦波数字实现系统,首先根据采 样频率fs和正弦波频率f的比值计算出一个正弦波信号周期的采样点数N,利用式Θ = 2π/Ν 计算出一个采样点数所占用的角度值Θ。利用角度值Θ和正弦函数sin(0)的近似线性关系计 算出正弦函数sin(0)的数值,利用式cos(0)~l-〇.50 2计算出余弦函数c〇s(0)的数值。然 后,利用DSP控制器,在采样点n=[l,N/4]区间,使用正弦函数的递推公式计算出正弦波信 号的离散点数值;在采样点n=(N/4,N/2]区间,使用余弦函数的递推公式计算出正弦波信 号的离散点数值;在采样点n=(N/2,3N/4]区间,使用正弦函数的递推公式计算出正弦波信 号的离散点数值;在采样点n=(3N/4,N]区间,使用余弦函数的递推公式计算出正弦波信号 的离散点数值。最后通过DAC转换电路把正弦波信号的离散点数值转换成连续的正弦波信 号,从而实现正弦波信号的输出。正弦波信号数字实现系统的电路框图如图1所示。
[0064]泰勒级数展开法是利用勒级数展开公式来计算正弦函数sin(0)和余弦函数cos (Θ)的数值,需要DSP控制器的多次乘加运算才成完成正弦函数sin(0)和余弦函数cos(0)的 计算;迭代法虽然可以预置正弦函数sin(0)和余弦函数cos(0)的数值,但改变正弦波信号 频率的灵活性受到限制。
[0065] -般情况下,角度值Θ和正弦函数sin(0)的关系是非线性的。但是当角度值Θ在Ε-Ο. 2,+0.2] 之间时 ,角度值 Θ 和正弦函数sin(0) 的关系几乎是线性的 ,图 2反映的就是角度值 Θ和正弦函数sin(0)的近似线性关系。从图2可以看出,在角度值Θ比较小的情况下,角度值Θ 和正弦函数sin(0)近似线性关系。由此,在保证角度值Θ比较小的情况下,可以利用角度值Θ 和正弦函数sin(0)的近似线性关系Sin(0)~Θ,直接得到正弦函数Sin(0)的数值为Θ,不需 要计算,即可直接得到正弦函数sin(0)的数值,简化了计算程序,减轻了 DSP控制器的负担; 而余弦函数cos (Θ ),只需要三次乘法和一次减法运算,就可以通过式cos (Θ)~1-0.5Θ2计算 出来,远比泰勒级数展开公式用的计算量小。因此,这种正弦波信号的数字实现方法即克服 了泰勒级数展开法计算量大的缺点,还克服了查表法占用大量存储空间的不足,而且拥有 迭代法所不具备的正弦波信号频率调节的灵活性。
[0066] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽 然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人 员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰 为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质 对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【主权项】
1. 一种正弦波信号的数字实现方法,其特征在于其包括W下步骤: (1 )、设定参数,具体包括:设定正弦波信号的频率f和幅值A,设定采样频率fs; (2) 、计算出一个正弦波信号周期的采样点数N; (3) 、计算出一个采样点所占用的角度值Θ; (4) 、在角度值Θ在[-〇.2,+〇.2]之间时,根据角度值0和正弦函数3山(0)的近似线性关 系,计算出sin(0)和cos(0)的数值; 巧)、计算sin(20)和cos(20)的数值; (6) 、根据采样点η所在区间的不同,交替使用正弦函数和余弦函数的递推公式sin(n0) = 2cos(目)sin[ (n_l)目]-sin[ (n_2)目]和cos(n目)= 2cos(目)cos[ (n_l)目]-cos[ (n_2)目]实时 计算出正弦波信号的离散点数值fo; (7) 、利用DSP控制器把计算出的正弦波信号离散点数值fo通过接口电路送入DAC转换电 路,生成连续的正弦波电流信号; (8) 、最后利用UA运算放大器把连续的正弦波电流信号转换成连续的正弦波电压信号, 从而实现正弦波信号的输出。2. 如权利要求1所述的方法,其特征在于步骤(2)所用的计算公式为N=fs^。3. 如权利要求1所述的方法,其特征在于步骤(3)所用的计算公式为Θ = 23ι/Ν。4. 如权利要求1所述的方法,其特征在于步骤(4)利用式sin(0)>0计算出sin(0)的数 值,利用式妨S(巧二备S山(");。也-沪? 1 - 0.5沪计算出cos (目)的数值。5. 如权利要求1所述的方法,其特征在于步骤巧)利用式 8;[]1(20)=23;[]1(0)(3〇3(0)计算出3;[]1(20)的数值,利用式 〇〇3(29)=山〇3(9)+3;[]1(9)]山〇3(9)-3;[]1(9)]计算出。〇3(29)的数值。6. 如权利要求1所述的方法,其特征在于步骤(6)的具体算法为:令fis = sin(0)、fk = cos(白)、f2s = sin(2白)、f2c = cos(2白);n=l; ① 采样点η在[l,N/4]区间时,令i=n: 如果i = l,则f3 = fls,f〇 = Af3,fl = fls; 如果 1 = 2,则f3 = f2s,f〇 = Af3,f2 = f2s; 如果 i > 3,则f 3 = 2f Icf 2-f 1,f 0 = Af 3,f 1 = f 2,f 2 = f 3 ; 同时n = n+l; 如果n《N/4,则重复执行①,否则转入②; ② 采样点η在(N/4,N/2]区间时,令j = n-N/4: 如果 j 二 1,则f 6 二 f Ic , f 0 二 Af 6 , f 4二 f Ic ; 如果 j 二 2 ,则f 6 二 f 2c , f 0 二 Af 6 , f 5 二 f 2c ; 如果 j > 3,则f 6 = 2f Icf 5-f 4,f 0 = Af 6,f 4= f 5,f 5 = f 6 ; 同时n = n+l; 如果n《N/2,则重复执行②,否则转入③; ③ 采样点η在(N/2,3N/4]区间时,令i = n-N/2: 如果 i 二 1 ,则f 3 二-f Is , f 0 二 Af 3 , f 1 二-f Is ; 如果 1 = 2,则f3 = -f2s,f〇 = Af3,f2 = -f2s; 如果i>3,则f3 = 2flcf2-fl,f〇 = Af3,fl = f2,f2 = f3; 同时n = n+l; 如果n《3N/4,则重复执行③,否则转入④; ④采样点η在(3N/4,N ]区间时,令j = Π -3Ν/4: 如果 j = l,则f6 = -flc,f〇 = Af6,f4 = -flc; 如果 j = 2,则f6 = -f2c,f〇 = Af6,f5 = -f2c; 如果 j>3,则f6 = 2flcf5-f4,f〇 = Af6,f4=f5,f5 = f6; 同时n = n+l; 如果n《N,则重复执行④,否则,令n=l,转入①,开始下一个正弦波信号周期。7. 如权利要求1所述的方法,其特征在于所述方法通过生成正弦波信号的电路系统实 现,该电路系统包括:键盘输入电路、DSP控制器、接口电路、DAC转换电路和UA运算放大器; 其中,键盘输入电路的输出端与DSP控制器连接,DSP控制器的输出端与接口电路连接,接口 电路的输出端与DAC转换电路连接,DAC转换电路的输出端与UA运算放大器连接,UA运算放 大器输出正弦波信号。8. 如权利要求7所述的电路系统,其特征在于所述接口电路是缓冲DSP控制器与DAC转 换电路之间的速度差,W保证正弦波信号的离散点数值准确可靠地送入DAC转换电路的一 种电路。9. 如权利要求7所述的电路系统,其特征在于所述DAC转换电路把通过接口电路送入的 正弦波信号的离散点数值转换成连续的正弦波电流信号。10. 如权利要求7所述的电路系统,其特征在于所述UA运算放大器把连续的正弦波电流 信号转换成连续的正弦波电压信号。
【文档编号】G06F1/02GK105974997SQ201610281047
【公开日】2016年9月28日
【申请日】2016年4月29日
【发明人】姬宣德, 白旭灿, 邵麦顿, 赵小明, 段晓明
【申请人】洛阳理工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1