DSP正弦波——数字振荡器法原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字振荡器的本质是,使用一个IIR (Infinite Impulse Response )滤波器,通过把它的极点放在单位圆上面来产生振荡。
利用正弦波sinx 的指数形式
)(21sin jx jx e e j
x --= 可以得到正弦序列x(n)的Z 变换为
)(21)sin(][jnwT jnwT e e j
T n n x --==ϖ X (z )=[]
∑∑∞=---∞=---=-0110)()(21])([21n n jwT n jwT n n jnwT jnwT z e z e j z e e j =⎥⎦⎤⎢⎣⎡----jwT jwT e z z e z z j 21=⎥⎦
⎤⎢⎣⎡+-+---1)cos(221222wT z z ze z ze z j jwT jwT =1
)cos(2)sin(2+-wT z z wT z =
B Az z Cz --2 式在|z|>1时成立,且)sin(,1),cos(2wT
C B wT A =-==。这是任何一本数字信号处理教材都会给出的结论。
根据Z 变换的基本原理和性质,序列x[n]及其Z 变换X (z )之间存在一一对应的关系,即对于给定的X (z ),可以通过反Z 变换,唯一地确定x[n]。
因此,产生一个正弦波就等价于利用上式设计一个二阶IIR 滤波器,使其系统传递函数就是正弦序列x[n]的z 变换。结构的图我暂时不画了,明天再添加
系统传递函数为2
11
21)(-----=--=Bz Az Cz B Az z Cz z H 滤波器的极点就是分母02
=--B Az z 的根。
24)(cos 4)cos(224222,1-±=+±=wT wT B A A P =)sin()cos(wT j wT ±
由上式可以看出,P 1,2是一对复根,其幅值为1,相角为wT 。幅值为1的极点在单位圆 上,对应一个数字振荡器,其振荡频率由系数A 、B 和C 决定。因此,设计数字振荡器主要是设计这些系数。
由系统函数求得差分方程
)()()()(121z X Cz z Y Bz z Y Az z Y ---=--
设初始条件为0,对上式作反Z 变换,得
]1[]2[]1[][-+-+-=n Cx n By n Ay n y
这是一个二阶差分方程,其单位冲激响应就是sin(wT)。
利用单位冲激函数x[n-1]的性质,即仅当n=1时,x[n-1]=1,代入上式
n=0 y[0]=Ay[-1]+By[-2]+0=0
n=1 y[1]=Ay[0]+By[-1]+C=C
n=2 y[2]=Ay[1]+By[0]+0=Ay[1]
n=3 y[3]=Ay[2]+By[1]
.
.
.
n=k y[k]=Ay[k-1]+By[k-2]
.
.
.
在n>2以后,y[n]可以用y[n-1]和y[n-2]算出,这是一个递归的差分方程。
由此出发,就可以完成数字振荡器的设计。例如,设该振荡器的频率为F=1KHz ,采样频率为F s =10KHz ,则s F F wT π2==0.628(radians ),系数
A=2cos(wT)=1.618033989
B=-1
C=sin(wT)=0.587785252
由此基础上,利用之前那个公式就可以产生相应的正弦波。