C - 锯齿波的傅立叶变换级数

标签 c ios fft audiounit waveform

我正在使用 Audio Unit 构建一个 iOS 合成器,基本上是围绕 this 构建的。 .

我已经支持简单的 ASR 包络以及正弦波、三角波和方波。

正弦很简单,

 sin(theta) * amplitude

正方形是

 sgn(sin(theta)) * amplitude

现在三角形使用非循环 FFT,如下所示:

((8 / pow(M_PI,2)) * (sin(theta) - sin(3*theta)/9 + sin(5*theta)/25)) * amplitude

但我无法弄清楚锯齿波, 我尝试过 2*(theta - Floor(theta) - 0.5) 但结果出现锯齿和扭曲(不是来自剪辑)。 我现在应该用傅里叶变换级数来构建它,但我不知道如何在 C 中实现它。

有什么帮助吗?

最佳答案

您可以像对待三角波一样对锯齿波使用截断傅立叶级数,只不过在求和中包括偶次谐波项和奇次谐波项,并使用等于每项谐波数的除数而不是这样的平方。

您使用的术语越多,级数近似看起来就越像锯齿,但它包含的高频内容也就越多。

关于C - 锯齿波的傅立叶变换级数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981348/

相关文章:

c - 如何比较两个文件中的字符串?

c - 使用 ioctl TIOCOUTQ 进行套接字编程

ios - 我什么时候应该在我的模型中使用可选字符串?

android - 从android中的录音文件中获取频率和音高

android - 如何完全过滤频率范围android

python - Python FFT 中的 DC 项 - 常数项的幅度

c - 确定程序使用哪个 TTY

java - 用Java编写的TCP服务器用C编写的客户端接收错误(编码)

php - 在没有 SSL 的情况下保护我的帖子请求

ios - 这是一个错误吗?或者匿名用户的工作流程是否有所不同?