我在实现FFT方面遇到了问题。目标设备是Windows Phone 7。
我正是这样做的。 buffer是一个固定大小为1024的字节数组。
var o = Observable.FromEvent<EventArgs>(Microphone.Default, "BufferReady");
o.Subscribe(evt =>
{
double[] dImageArray = this.buffer.Select(i => Convert.ToDouble(i)).ToArray();
fftoutput = Saluse.MediaKit.Sample.FourierTransform.FFTDb(ref dImageArray);
});
我正在使用的课程(如你所见)来自SaluseMediakit(source)
这是正确的道路吗?或者我错了?
答案 0 :(得分:1)
我已经设法用AFORGE执行了一个很好的FFT(这个库多次保存了我)。从麦克风获取波形信息的正确方法。
double[] sampleBuffer = new double[buffer.Length / 2];
int h = 0;
for (int i = 0; i < buffer.Length; i += 2)
{
sampleBuffer[h] = Convert.ToDouble(BitConverter.ToInt16((byte[])buffer, i));
h++;
}
跟进另一个问题。我很想制作视觉均衡器。但我不知道怎么做。