NAudio录音是过滤高频的地方吗?

时间:2015-06-04 08:29:09

标签: c# matlab signal-processing audio-recording naudio

我正在录制像17k这样的频率,并尝试使用Goertzel滤镜对其进行解码。

我认为NAdio正在过滤一些高频率,尽管我的程序中根本没有过滤器。

我用Audacity录制了相同的声音文件并看到了精细的光谱。

enter image description here

现在,我用我的c#程序用这种录制声音的代码做同样的事情:

void myWaveIn_DataAvailable(object sender, WaveInEventArgs e)
    {
        myMemoryStream.Write(e.Buffer, 0, e.BytesRecorded);//this is for playing the myMemoryStream
        for (int index = 0; index < e.BytesRecorded; index += 2)//Here I convert in a loop the stream into floating number samples
        {

            short sample = (short)((e.Buffer[index + 1] << 8) |
                                    e.Buffer[index + 0]);
            samples32Extended.Add(sample);
            samples32.Add(sample / 32768f);//IEEE 32 floating number 
        }
    }

然后,我生成一个二进制文件,以便在MATLAB中读取它以查看它的光谱:

float[] samples32array = samples32.ToArray();
        using(BinaryWriter writer = new BinaryWriter(File.Open("C:/Users/alon/Desktop/myRecordings/myRecordBin.bin", FileMode.Create)))
        {
            foreach (var value in samples32array)
            {
                writer.Write(value);
            }
        }

然后,matlab的光谱是这样的:

enter image description here

我不知道发生了什么......必须得到你的帮助..谢谢

0 个答案:

没有答案