将正弦波转换为三角波


由于某些原因,我不能简单地生成所需频率的三角波,但我有该频率的正弦波和方波。

我无法保留额外的状态。

我需要一种算法来从正弦波或方波计算三角波

三角波 – HandWiki[^]

这包含数学形式主义,但我不理解数学形式主义。

我希望有人可以将其中包含的相关概念应用到某些代码中。 我不在乎什么语言,只要它可以移植到其他语言即可。

我尝试过的:

我尝试自行生成三角波,但我需要一次生成它的块,并保持块之间的相位连续,这样我就不会收到点击声。 我有一个正弦波,它使用不断增加的整数乘以基于频率的增量值进行跟踪,但这不是上下运动 – 如果我对其应用模数,它更像是锯齿,但同样,我需要三角形。

解决方案2

如果您有一个知道其幅度和周期的方波,难道您不能使用简单的几何形状来创建三角波吗?
三角波 – HandWiki[^]

如果 TW 的上升起点与 SW 的上升同步,那么您所做的就是绘制从 BL 到 TR,然后从 TL 到 BR 的对角线,这是微不足道的,并且应该快速且节省空间。

如果同步按照链接中的图表“步进”,那么这只是您需要满足的偏移起点 – 又是简单的几何图形。

解决方案1

来自维基百科:

可以通过加法合成来近似三角波,方法是对基波的奇次谐波求和,同时将每个其他奇次谐波乘以 -1(或者等效地,将其相位改变 π)并将谐波的幅度乘以平方上的 1他们的模式编号, n (相当于其相对频率与基频的平方分之一)。

这是一个简单的算法,文章称它相当快地收敛于三角波。 (编辑:基本的是正弦波,但你可能知道这一点。)

解决方案4

我可能会采用基于表格的方法。
只需将您想要的函数值存储在感兴趣的域中即可。
这通常会产生最快的执行速度,而不会出现任何计时问题,但会牺牲一些存储空间。

コメント

タイトルとURLをコピーしました