首页 理论教育 数字式谐振器方法简介

数字式谐振器方法简介

时间:2023-06-23 理论教育 版权反馈
【摘要】:你也许想要返回来参考在这章前面给出的数字式谐振器的理论讨论。程序清单5.9:与数字式谐振器有关的变量声明下面所示的代码执行实际的正弦信号生成运算。这个运算使用这个数字式谐振器方法。程序清单5.10:与数字式谐振器有关的算法基于数字谐振器信号产生程序牵扯到的4个实时步骤程序清单5.10的几点说明如下。

数字式谐振器方法简介

这个数字谐振技术执行一个具有非常特殊的初始条件的2阶IIR滤波器。这些初始条件存储在“y[n-1]”和“y[n-2]”的内存位置。你也许想要返回来参考在这章前面给出的数字式谐振器的理论讨论。我们使用这个方法的目的是提高程序的可读性,但常常是要以损失效率为代价的。

运行这个应用程序所必需的文件在本书CD中第5章的ccs\sigGen目录中。包含本章的前两个C语言例子所需要的文件。我们感兴趣的主要文件是resonator_ISRs.c,它包含中断服务程序;从这个工程中移除其他所有ISR文件,并且加入resonator_ISRs.c文件。这个文件包含了必要的变量声明和执行实际的正弦信号产生程序。

如果在你的DSK板上使用立体声编解码器,这个程序能独立地执行左右声道的正弦信号发生程序。为清晰起见,这个例程将仅产生一个正弦波形,但将输出这个正弦波形到左右两个通道。

如下的代码中,“fDesired”和“A”(第1、2行)分别是信号的频率和幅度。记住,16比特的DAC的范围是+32767到-32768。π(第5行pi)和系统的采样频率(第8行fs)的定义将允许我们计算相位“theta”,即数字频率,这在第5行作了声明。最后,“y[3]”声明用于存储当前和过去的输出值。仅有3项需要执行这个2阶差分关系式。

程序清单5.9:与数字式谐振器有关的变量声明

下面所示的代码执行实际的正弦信号生成运算。这个运算使用这个数字式谐振器方法。在这个运算中涉及的4个主要步骤将在下面的代码清单中讨论。

程序清单5.10:与数字式谐振器有关的算法

基于数字谐振器信号产生程序牵扯到的4个实时步骤

程序清单5.10的几点说明如下。(www.xing528.com)

(1)第2行:此行代码用来计算数字频率。对于一个比例因子和滤波器系数,需要这一项作为一个输入变量。

(2)第4行:此行代码通过执行系统的差分关系式来计算当前的输出值。

(3)第5、6行:这两行代码完成y矩阵中元素值的右移。其关系式是

y[1]→y[2]

y[0]→y[1]

(4)第8、9行:这两行代码扩大滤波器的输出达到一个幅度“A”。之后,结果值送到左右两个输出声道。

现在你理解了这段代码,让我们继续,将所有文件复制到一个独立的文件夹。在CCS中打开这个工程,重新编译所有的文件。一旦编译完成,将程序加载到DSK中,单击运行。1kHz正弦发生器程序现在就运行在DSK板上。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈