Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在缓冲区中添加2个正弦波会产生噪声_Objective C_Ios_Audio_Signal Processing - Fatal编程技术网

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

Objective c 在缓冲区中添加2个正弦波会产生噪声,objective-c,ios,audio,signal-processing,Objective C,Ios,Audio,Signal Processing,当我将一个10 kHz的正弦波加到另一个12 kHz的正弦波上,并从iPhone扬声器将它们一起输出时,我可以听到其他不应该存在的低频 为了做到这一点,我创建一个正弦波并用样本填充缓冲区,然后将另一个正弦波的样本添加到缓冲区 每一个单独的正弦波都能正确地单独工作,但当它们结合在一起时,我能听到以前没有的失真 这是我的回调代码: for (int i = 0; i <inNumberFrames; i++) { buffer[i] = buffer[i]+ sin(theta12_

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

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

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

这是我的回调代码:

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;
    }
}
for(int i=0;i振幅;
theta12_8+=2.0*M_PI*12800/(myInstance->sampleRate);
如果(θ12_8>2.0*M_π)
{
θ12_8-=2.0*M_π;
}
}
对于(int i=0;i振幅;
θ10+=2.0*M_PI*10000/(myInstance->sampleRate);;
如果(θ10>2.0*M_π)
{
θ10-=2.0*M_π;
}
}

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


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

你认为不应该有哪个较低的频率?你会得到一个2KHz的分量和一个22KHz的分量。@HotLicks为什么会有这些分量?即使你正在考虑将三角f的和转换为乘积函数,我们根本不讨论这个。首先检查它是否仅在一个频率下正常工作。然后将两个频率相加,但将两个振幅除以2。您可能会达到某个阈值,从而增加失真,从而增加低频谐波(这些就是热舔所说的成分,尤其是低频成分)@HotLicks你是怎么计算出来的?我可以说,10以上的频率我几乎听不到,而当他们在一起时,我听到的是强烈的噪音,大约是2-7khz或更高的频率something@gniourf_gniourf我写道,我已经检查过了,他们正在很好地分开工作。我会减少amp,非常感谢。