小编Jos*_*lgo的帖子

如何从java-fft中获取PCM数据的频率

由于某种原因,频率被取代

 391 hz => 1162
 440 hz => 2196
 493 hz => 2454
Run Code Online (Sandbox Code Playgroud)

我正在使用这个值

 final int audioFrames= 1024;
 final float sampleRate= 44100.0f;
 final int bitsPerRecord= 16;
 final int channels= 1;
 final boolean bigEndian = true;
 final boolean signed= true;

 byteData= new byte[audioFrames * 2];  //two bytes per audio frame, 16 bits
 dData= new double[audioFrames * 2];  // real & imaginary
Run Code Online (Sandbox Code Playgroud)

这就是我准备数据并将其转换为双精度数的方法:

format = new AudioFormat(sampleRate, bitsPerRecord, channels, signed, bigEndian);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); 
microphone = (TargetDataLine) AudioSystem.getLine(info);
microphone.open(format); …
Run Code Online (Sandbox Code Playgroud)

java signal-processing fft frequency

5
推荐指数
1
解决办法
2805
查看次数

标签 统计

fft ×1

frequency ×1

java ×1

signal-processing ×1