你的位置:首页 > 操作系统

[操作系统]关于wav文件fft处理后x,y轴坐标数据的问题


1.关于横坐标的频率的最大值是采样频率,那么每个点对应的频率值就很好算了:f(n) = [Fs/(N/2)]*n  (Fs是采样频率,常见的是44.1KHz(44100),N是采样点数,k表是第k个点)。我之前也参考了别人的写法,地址 ,有一段内容是这样描述的:

时域PCM数据是16位的short类型,取值范围是-32768..32767。对于频谱显示用512点FFT就足够了,我们知道音频数据的截止频率是由其采样率决定的,如果采样率为32kHz,截止频率为16kHz。可以计算出FFT后频率间隔为16*1024/(512/2)=64Hz”一开始一直纠结看不懂,不过后来自己仔细想想原来是单位的问题,当然原作者对换算可能也出现问题1024应该是1000吧(kHz和Hz之间的换算是1000);

2.纵坐标就是处理后的数据,我要做的是频域图,一般的步骤就是读取相应的文件,java中数据的转换确实是个老大难的问题,开始读的时候用的是byte[]数组,而PCM数据对应的是float类型的,而我封装的画图的是double[]数组,所以转啊转,还要确保精确度的问题:

byte[]转float[]:的写法参考的是上面的链接地址

floa[]转double[]相对较简单,注意要保证精确度:

1 //buf字节数组2 for (int i = 0; i < buf.length; i++) {3       yData[i] = Double.parseDouble(String.valueOf(buf[i]));4 }

对应是FFT算法,网上有很多的分装的类,自己可以自行搜索下载。

 




浙江跟团旅游报价多少浙江旅游必去的地方是浙江旅游必去景点排名浙江旅游地图线路大全浙江旅游多少钱黄龙溪门票_黄龙溪古镇门票_四川黄龙溪古镇门票价格 黄山在哪个省_安徽黄山怎么去 恭王府门票_恭王府门票价格_恭王府门票要多少钱 黄龙溪在哪里_黄龙溪怎么走_成都到黄龙溪古镇 加强检测保障世园会水产品安全 虹口乡户外运动场山花烂漫 西安游客赴日本热情宣传西安世园会 优悠夏日闲适文莱实用攻略 浙北峡谷漂流多大的小还可以玩?安吉浙北峡谷漂流有年龄限制吗? 月亮湾漂流几岁的孩子可以漂?临安月亮湾漂流儿童多大可以玩? 2015溧水周园六一活动?儿童节南京周园门票价格? 浙北峡谷漂流有什么好玩的?安吉浙北峡谷漂流活动介绍? 假期抢票神攻略 败追了 我到家啦 2015珠海斗门恒丰游乐场圣诞节平安夜好玩活动?广东珠海哪里有卡丁车玩? 2015百万葵园圣诞节活动?番禺百万葵园圣诞平安夜好玩吗? 华东第一温泉:福如东海温泉大酒店 STD3NK60ZT4 Datasheet STD3NK60ZT4 Datasheet STB20NM60D Datasheet STB20NM60D Datasheet TK20X60U(TE24L,Q) Datasheet TK20X60U(TE24L,Q) Datasheet 厦门五缘湾好玩吗 厦门五缘湾好玩吗 厦门五缘湾好玩吗 泰国最大的海岛是什么 泰国最大的海岛是什么 泰国最大的海岛是什么 北京园博会门票价格 北京园博会门票价格 北京园博会门票价格