实验五 数字振荡器实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五 数字振荡器实验

一、实验目的

本实验属于综合性实验,在项目开发中,我们经常要用产生某一频率的正弦振荡信号,比如在电话通信中,用两个不同频率的正弦信号的叠加来代表按键。正弦信号的生成方法有三种,计算法、查表法和数字振荡器。用计算法求正弦波的离散序列值程序设计容易,但实际应用时会占用计算时间,使系统运行速度变慢。查表法是先通过matlab 将正弦波的序列值计算出来并寄存在存储器中,运行时只要按顺序和一定的速度取出便可。这种方法要占用较多的存储空间,但是速度快。第三种方法是利用数字振荡器来实现不同频率信号的叠加,这种方法通过迭代的方法计算出不同频率的正弦信号序列,结构简单,运算速度快,节省内存,因此在DSP 实际应用中我们选择这种方法。

数字振荡器的本质是,使用一个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 --=

110011[()]()(X )2z 2jnwT jnwT n jwT n jwT n

n n e e z e z e z j j ∞∞-----==⎡⎤-=-⎣⎦=∑∑() 12jwT jwT z z j z e z e -⎡⎤=-⎢⎥--⎣⎦222122cos()1jwT jwT z ze z ze j z z wT -⎡⎤

--+=⎢⎥-+⎣⎦

22

sin()2cos()1z wT Cz

z z wT z Az B

=

=-+--,此式在|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 变换。系统传递函数为

211

21)(-----=

--=Bz Az Cz B Az z Cz z H 滤波器的极点就是分母02

=--B Az z 的根。

24)(cos 4)cos(2242

22,1-±=

+±=wT wT B A A P

=)sin()cos(wT j wT ±

由上式可以看出,P 1,2是一对复根,其幅值为1,相角为wT 。幅值为1的极点在单位圆上,对应一个数字振荡器,其振荡频率由系数A 、B 和C 决定。因此,设计数字振荡器主要是设计这些系数。

由系统函数求得差分方程:)()()()(1

21z 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)。

由上面的式子可得数字振荡器系统流程图如图1所示:

利用单位冲激函数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 ,采样频率为Fs=10KHz ,则0.6282radians s

F

wT F π==(),系数

A=2cos(wT)=1.618033989;B=-1;C=sin(wT)=0.587785252,由此基础上,利用之前那个公式就

可以产生相应的正弦波。

二、实验设备

1) 微机一套,操作系统为WINWODS98、WINDOWS2000 SP2或WINDOWS XP SP1或具有更高级

的补丁。

2) DSP 硬件仿真器一台、DSP 实验箱一台,示波器一台。 1) 5000CCS2.0软件版本。

4)部分源程序及链接命令文件见D:\EXPER\EXP6目录下的.asm 和.cmd 文件.c 文件,.lib 文件。

三、实验设置

1、开关K9拨到右边,即仿真器选择连接右边的CPU2;

Z -1 Z -1

B

A C

X (n ) y (n ) 图1数字振荡器系统流程图

四、实验内容

1、用Z 变换的移位性质可知: h (n )=Asin((n +1)w 0)U(n); 其中

所以得到差分方程:0[][1][2][]y n Ay n By n b x n =-+-+;

000sin ;2cos ;1b k w A w B ==-=-;

其中:

02s

f w f π=

;0f ——为输出信号的频率;k ——正弦信号的幅值;s f ——采样信号频率(8KHZ );

0w ——归一化数字频率;设初始条件0(1)0;(2)sin()y y w -=-=-则差分方程变换为:

()(1)(2)y n Ay n By n =--+- 0()2cos (1)(2)y n w y n y n =---;初始条件:

0(1)0;(2)sin()y y w -=-=-;

根据上面的参数,代入输出信号的频率可以得到产生不同频率正弦信号所需要的参数表1数字振荡器参数表。

频率 /HZ A B (1)y -

(2)y -

697 1.70774 -1 0 0.52049 770 1.64528 -1 0 0.56856 852 1.56868 -1 0 0.62033 941 1.47820 -1 0 0.67359 1209 1.16410 -1 0 0.81315 1336 0.99636 -1 0 0.86707 1477 0.79862 -1 0 0.91682 1633

0.56854

-1

0.95875

2、使用内存的图形观察工具对正弦振荡器的仿真结果进行时域分析和频域分析,注意正确设置参数。例程,产生770HZ 正弦振荡信号。

表1数字振荡器参数表

相关文档
最新文档