首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在缓冲区中添加2个正弦波会产生噪声

在缓冲区中添加2个正弦波会产生噪声
EN

Stack Overflow用户
提问于 2012-11-26 03:33:57
回答 1查看 626关注 0票数 0

当我将一个10 kHz的正弦波与另一个12 kHz的正弦波相加,并从iPhone扬声器一起输出时,我可以听到其他不应该存在的较低频率。

为此,我创建了一个正弦波并用样本填充缓冲区,然后将另一个正弦波的样本添加到缓冲区中。

每一个单独的正弦波都可以单独正确地工作,但当它们组合在一起时,我可以听到以前没有的失真。

这是我的回调代码:

代码语言:javascript
运行
复制
for (int i = 0; i <inNumberFrames; i++)
{

    buffer[i] = buffer[i]+ sin(theta12_8) * myInstance->amplitude;
    theta12_8 += 2.0 * M_PI * 12800  / (myInstance->sampleRate); 
    if (theta12_8 > 2.0 * M_PI)
    {
        theta12_8 -= 2.0 * M_PI;
    }
}

for (int i = 0; i <inNumberFrames; i++)
{

    buffer[i] = buffer[i]+ sin(theta10) * myInstance->amplitude;
    theta10 += 2.0 * M_PI * 10000  / (myInstance->sampleRate);;
    if (theta10 > 2.0 * M_PI)
    {
        theta10 -= 2.0 * M_PI;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-26 18:26:43

如果你设置你的正弦波在振幅1,这是可以的。如果你将两个正弦波加在一起,那么新的正弦波的最大振幅可能是2,这是错误的数字,并产生失真和谐波。

我已经将它们的振幅设置为0.5,所以最大值是1,这样就解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13554661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档