的SHARC DSP芯片的可编程正弦波算法

K

kirgizz

Guest
喂,

没有任何人有任何高效率的汇编代码产生正弦/余弦波的的ADSP - 212xx?我需要能够生产可编程的罪恶/导向与赫兹振荡器(喜欢0.1Hz)之间的100Hz和20kHz的分辨率。

我使用了一个正弦近似算法(使用摩托罗拉DSP56k例如正弦表)。由于不同的内存的组织和功能(公元之间DSP56k和SHARC DSP芯片),其执行是不可能的了。

谢谢
最后由kirgizz编辑于2005年2月9日12点42,编辑2次共

 
您好,您可以使用一个无限循环算法:


出[ŋ] =甲* V1的;
川芎嗪= V1的;
V1的= coeff * V1的- 2版;
2版= tmp的;


出[n]是你输出的范例。

初始条件:
0≤startphase≤2 *皮
财政司司长=采样频率
频率=(2 *皮*您想要的频率)/(财经事务)
coeff = 2 *导向(频率)
V1的=罪(startphase)
2版=罪(-1 *频率 startphase)
A是信号幅度

我测试过
, 从50赫兹
, 该算法至16 kHz,而且运作非常好,失真较少的“表中读取”之一。在频移是你的DSP字长功能的使用。

关心。

 
大家好,

感谢您的建议。

我发现在ADI公司的一些代码示例件。但没有像正弦近似
使用正弦表。当然,我可以用泰勒级数产生正弦振荡,但
它需要更大的周期数(一个良好的精密度依贝斯)。

以catilo

该算法是好的
, 可以理解的。唯一的事情就是我得到罪()函数的组装?

关心

 
以catilo
行。我想我现在完全理解。该算法似乎工作
, 但需要一些优化。

和一般的问题:这是一个更好的选择实施定点正弦波发生器?任何人都可以提出一个高精度快速算法?感谢事先

 
嗨,

问题是我设计的一个固定点二阶正弦波振荡器。
起始角度各有不同
, 这从0到1弧度。

是否有人有一个解决方案?

 
嗨,

我很高兴向大家报告
, 振荡器的工作(非常)好。我需要正弦和余弦(共存)一起,这就是为什么我实现了耦合正弦波振荡器的二阶。

唯一的问题是初始化正弦和余弦。
在osillator频率应设置(或选定在程序运行时用户)。因此
, 我开始用计算值泰勒级数近似,但它的精度这里是正弦和余弦不同。
其次,有一个问题
, 在使用固定点的数据:开始角度(或增量)必须是“1。我试图使用sin公式(十)=罪(180 - x)的和cos(x)的=-导向(180 - x)的多角度为45度角此外公式。我认为
, 初始值计算后丧失使用它更精确。

有没有人有另一个init的计算呢?

谢谢

 

Welcome to EDABoard.com

Sponsor

Back
Top