fre*_*ley 4 java android pcm audio-processing
我有一个16位PCM形式的波形文件.我有一个原始数据byte[]
和一个提取样本的方法,我需要它们以浮点格式,即a float[]
进行傅立叶变换.这是我的代码,这看起来不错吗?我正在使用Android等等javax.sound.sampled
.
private static short getSample(byte[] buffer, int position) {
return (short) (((buffer[position + 1] & 0xff) << 8) | (buffer[position] & 0xff));
}
...
float[] samples = new float[samplesLength];
for (int i = 0;i<input.length/2;i+=2){
samples[i/2] = (float)getSample(input,i) / (float)Short.MAX_VALUE;
}
Run Code Online (Sandbox Code Playgroud)
我有一个类似的解决方案,但恕我直言有点清洁.不幸的是,就我所知,没有好的库方法:*这假设偶数字节是较低的字节
private static float[] bytesToFloats(byte[] bytes) {
float[] floats = new float[bytes.length / 2];
for(int i=0; i < bytes.length; i+=2) {
floats[i/2] = bytes[i] | (bytes[i+1] << 8);
}
return floats;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6854 次 |
最近记录: |