为采样频率;
s
s
F
T
1
即为
采样间隔。
因此,
要想产生一个正弦波,
需要在每一个采样间隔计算
x[n]
的值,
并通过数模转换器
(
DAC
,
Digital-to-Analog Convector
)输出。通过将
x[n]
的值以不同的幅度和不同的采样间
隔输出,就可以得到任意幅度、任意频率的正弦波或余弦波。
根据上式,
x[n]
通过计算正弦函数而得。基于此,可以构造一个查找表,表中所列为余
弦函数的值。
考虑到不可能把正弦函数或余弦函数的所有值都放在查找表内,
不妨将表的大
小初设为
517
项。又考虑到正弦函数和余弦函数之间只有一个
90
°的相移,可以将表的大
小缩减为
257
项。表中的第一个值对应于
0
,最后一个值对应于
180
°,或者说π。这样,
表中相邻两点之间的间隔为
180/256=0.7031250
°,即表格中的第
1
项是
cos0
°的值,第
2
项是
cos0.7031250
°的值,第
3
项是
cos1.406250
°的值,以此类推,最后一项是
cos180
°
的值。利用该表所能构成的波形的相位步进通常是
0.7031250
°的整数倍。
在采样过程中,上式中的
n
值在每一个采样间隔递增,从而得到模拟正弦波的采样版
本。但是,如何通过查找余弦表的方法来产生一个任意频率
F
的正弦波呢?由于在前面构
造的余弦函数表中,
已经包括了以
0.7031250
°为间隔的余弦函数值,
现在的问题就变成了,
当
n
递增时,怎样估计出相位
fn
2
的值。
记录波形的初始相位和当前相位,以得到连续相位的正弦波。如果记录了上一个输出
点的相位值,
利用正弦波的频率信息,
就可以计算出当前输出点的相位值,
该相位值是和幅
度值相对应的。
在此基础上,
就可以根据相位值去查找余弦表中相应的位置,
得到当前输出
点的幅度值。
假设需要产生频率为
F
的正弦波,它的起始相位是
Init_Phase
,和
F
对应的相位步进为
Phase_Step
。相位步进的计算式为