【问题标题】:Active noise cancellation with Novocaine使用 Novocaine 主动降噪
【发布时间】:2014-09-27 03:20:55
【问题描述】:

为了主动降噪,如何使用 Novocaine 生成反相信号?也就是说,在一个NovocaineOutputBlock内,如何生成与输入相位相差180度的输出?

到目前为止,这是我的代码:

__weak AppDelegate * wself = self;

self.ringBuffer = new RingBuffer(32768, 2);
self.audioManager = [Novocaine audioManager];

[self.audioManager setInputBlock:^(float *data, UInt32 numFrames, UInt32 numChannels)
{
    wself.ringBuffer->AddNewInterleavedFloatData(data, numFrames, numChannels);
}];

[self.audioManager setOutputBlock:^(float *data, UInt32 numFrames, UInt32 numChannels)
{
    wself.ringBuffer->FetchInterleavedData(data, numFrames, numChannels);

    for (int i=0; i < numFrames; ++i)
    {
        for (int iChannel = 0; iChannel < numChannels; ++iChannel)
        {
            // Within here do noise cancellation. How?
        }
    }
}];

【问题讨论】:

  • @omygaudio 有什么想法吗?

标签: ios macos core-audio novocaine


【解决方案1】:

我一直在想同样的事情。我的想法是使用这样的东西:

data[i*numChannels + iChannel] *= -1;

EDIT 这段代码可能被用来反转相位(它甚至可能不起作用)。然而,考虑到 iPhone 本身的延迟,主动降噪通常不仅仅是简单地反转相位。

【讨论】:

    猜你喜欢
    • 2012-01-07
    • 2013-12-07
    • 2016-02-13
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 2012-05-12
    • 1970-01-01
    相关资源
    最近更新 更多