extAudioFile数据......我得到了正确的东西吗?

时间:2010-09-10 23:29:03

标签: iphone audio core-audio waveform

我正在使用Core Audio SDK文档中提供的EXTAudioFileReadTest应用程序,我正在尝试从mData缓冲区获取所有浮点值,以便我可以使用它们绘制波形。

目前,我正在打印单通道的浮点值,这就是我在控制台中得到的结果:

2010-09-10 19:22:43.360 ExtAudioFileReadTest [71828:a0f] 0.127136
2010-09-10 19:22:43.360 ExtAudioFileReadTest [71828:a0f] -0.057033
2010-09-10 19:22:43.360 ExtAudioFileReadTest [71828:a0f] -0.146455
2010-09-10 19:22:43.360 ExtAudioFileReadTest [71828:a0f] 0.090759
2010-09-10 19:22:43.360 ExtAudioFileReadTest [71828:a0f] 0.240837
2010-09-10 19:22:43.360 ExtAudioFileReadTest [71828:a0f] -0.072719
2010-09-10 19:22:43.361 ExtAudioFileReadTest [71828:a0f] -0.258782
2010-09-10 19:22:43.361 ExtAudioFileReadTest [71828:a0f] -0.063972
2010-09-10 19:22:43.361 ExtAudioFileReadTest [71828:a0f] 0.088692
2010-09-10 19:22:43.361 ExtAudioFileReadTest [71828:a0f] 0.153571
2010-09-10 19:22:43.361 ExtAudioFileReadTest [71828:a0f] 0.080644
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828:a0f] -0.087060
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828:a0f] 0.196455
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828:a0f] 0.167777
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828:a0f] -0.192430
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828:a0f] -0.209936
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828:a0f] 0.012049
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828:a0f] 0.110493
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] 0.150715
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] 0.016413
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] -0.056843
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] 0.206117
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] 0.020673
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] -0.561129
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] -0.184265
2010-09-10 19:22:43.384 ExtAudioFileReadTest [71828:a0f] 0.620910
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] 0.309018
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] -0.371634
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] -0.238362
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] 0.125136
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] 0.139757
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] -0.023419
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] -0.142903
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828:a0f] 0.041068
2010-09-10 19:22:43.386 ExtAudioFileReadTest [71828:a0f] 0.252621
2010-09-10 19:22:43.386 ExtAudioFileReadTest [71828:a0f] -0.002240
2010-09-10 19:22:43.386 ExtAudioFileReadTest [71828:a0f] -0.261686
2010-09-10 19:22:43.386 ExtAudioFileReadTest [71828:a0f] -0.105053
2010-09-10 19:22:43.386 ExtAudioFileReadTest [71828:a0f] 0.072798
2010-09-10 19:22:43.386 ExtAudioFileReadTest [71828:a0f] 0.141572
2010-09-10 19:22:43.386 ExtAudioFileReadTest [71828:a0f] 0.110190

我想我很困惑......我期待找到某种类型的电压样本而不是介于-1和1之间的数字。这些值实际意味着什么?将这些值转换为介于0和1之间的某个上限/下限的好公式是什么?

提前致谢。我一直在那里搜索,无法在任何地方找到这些信息......特别是在文档中没有。

2 个答案:

答案 0 :(得分:2)

这是正常的。

音频样本的公共浮点表示从[-1 ... 1]调制;其中值-1和1表示0 dBFS处的一个样本。

连续的浮点值“0.0”表示无声信号。

没有DC偏移的信号在正负域中具有相同的权重。

如果您想将这些值转换为[0 ... 1],请使用以下公式:

result = (0.5 * inputSample) + 0.5;

但如果信号超出[-1 ... 1],则可能必须使用更复杂的算法。

在大多数情况下,如果要将其存储在浮点状态,则应将其保持在[-1 ... 1]。

答案 1 :(得分:0)

我想我已经弄明白了。我只是在excel中绘制了上面的那些点,它看起来像波形。我没有意识到它也给出了负电压......但这是有道理的。