读取wave文件并画出波形图|请教:Java读wave如何得到波峰波谷

|

① 如何用Matlab读取WP4000的wave文件

WP4000变频功率分析仪存储的波形文件采用二进制浮点数,文件后缀为.wave,假设文件名为AnyWay.wave可以用Matlab的下述语句读取:fid = fopen('AnyWay.wave','r');a = fread(fid,inf,'float32');fclose(fid);

② 请教:Java读wave如何得到波峰波谷

public class TestWave { public static void main(String args[]) { byte[] wave = new byte[]{1,2,3,2,1,0,-1,2,3,4,-2,-1}; int direction = wave[0] > 0? -1:1; for(int i=0;i<wave.length-1;i++) { if((wave[i+1]-wave[i])*direction>0) { direction*=-1; if(direction == 1) { System.out.println("("+i+","+wave[i]+")"+"波峰"); } else { System.out.println("("+i+","+wave[i]+")"+"波谷"); } } } }}输出(2,3)波峰(6,-1)波谷(9,4)波峰(10,-2)波谷

③ 如何读取wav文件,并画成波形图

先熟悉Wave文件格式,如Wave文件头格式、声音数据格式等然后以时间作为横坐标,采样点作为纵坐标,然后画点连线。可以参考《Programming Windows,Fifth Edition,Charles Petzold 》第22章 声音与音乐需要注意的是Wave文件格式有很多种,可以在网上查找相关资料。

④ 怎样用python画wav文件的时频分析图

这是python的matplotlib里的一个画wav文件的时频分析(specgram)的函数。和matlab里的那个差不多。使用超级方便,自动就做好了短时傅立叶变换(shorttime fouriertransform)~函数用法具体可参照http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.specgram关于短时傅立叶变换的具体内容可google之~下面介绍程序。#首先import各种library。wave和struct都是安装python2.6自带的。scipy可以在#http://www.scipy.org/Download下载。pylab可在http://matplotlib.sourceforge.net/下载。都是非常#强大的包包啊~~import waveimport structfrom scipy import *from pylab import *#读取wav文件,我这儿读了个自己用python写的音阶的wavfilename = '/Users/rongjin/Desktop/scale.wav'wavefile = wave.open(filename, 'r') # open for writing#读取wav文件的四种信息的函数。期中numframes表示一共读取了几个frames,在后面要用到滴。nchannels = wavefile.getnchannels()sample_width = wavefile.getsampwidth()framerate = wavefile.getframerate()numframes = wavefile.getnframes()#建一个y的数列,用来保存后面读的每个frame的amplitude。y = zeros(numframes)#for循环,readframe(1)每次读一个frame,取其前两位,是左声道的信息。右声道就是后两位啦。#unpack是struct里的一个函数,用法详见http://docs.python.org/library/struct.html。简单说来就是把#packed的string转换成原来的数据,无论是什么样的数据都返回一个tuple。这里返回的是长度为一的一个#tuple,所以我们取它的第零位。for i in range(numframes): val =wavefile.readframes(1) left =val[0:2]#right = val[2:4] v =struct.unpack('h', left )[0] y[i] =v#framerate就是44100,文件初读取的值。然后本程序最关键的一步!specgram!实在太简单了。。。Fs = frameratespecgram(y, NFFT=1024, Fs=Fs, noverlap=900)show()耶~好看的specgram就画好了~~x轴是时间,y轴是频率~

⑤ 如何Dump波形文件并显示波形

常用的波形文件有如下三种,1、trn文件,Cadence simvision支持,通过如下方式产生$shm_open(“./wave”) ;//产生你所需要mp波形的文件夹$shm_probe(bench_top,”AS”);//bench_top为举例,即你所需要mp的层$shm_close;2、fsdb文件,debussy/verdi支持,通过如下方式产生$fsdbDumpfile(“./wave/top.fsdb”);$fsdbDumpvars(5,bench_top);//从bench_top开始,mp 5层;$fsdbDumpoff;3、vcd文件,该文件通用性更广,可以转换为任意格式,可惜文件太大,产生方式如下,$mpfile(“./wave/top.vcd”);$mpvars(5,bench_top);$mpoff;当然也可以同时产生,或者通过ncoption指定,譬如在option中增加+TRN_DUMP/+VCD_DUMP/+FSDB_DUMP等在.v文件中去解析这样的stringsinitial beginstart_mp =10;stop_mp =3000000;finish_time=3000100;#0;beginif($test$plusargs(“VCD_DUMP”))$mpfile(“./wave/top.vcd”);if($test$plusargs(“TRN_DUMP”))$shm_open(“./wave”) ;if($test$plusargs(“FSDB_DUMP”))$fsdbDumpfile(“./wave/top.fsdb”);end#(start_mp);beginif($test$plusargs(“VCD_DUMP”))$mpvars(5,bench_top);if($test$plusargs(“TRN_DUMP”))$shm_probe(bench_top,”AS”);if($test$plusargs(“FSDB_DUMP”))$fsdbDumpvars(5,bench_top);end#(stop_mp-start_mp);beginif($test$plusargs(“VCD_DUMP”))$mpoff;if($test$plusargs(“TRN_DUMP”))$shm_close;if($test$plusargs(“FSDB_DUMP”))$fsdbDumpoff;end#(finish_time-stop_mp);$stop;$finish;end各种波形文件的打开方式TRNsimvision ./wave/wave.trn-input../../signal_list/simvision.svcfFSDBdebussy -f $FileList.f-autoalias -ssf ./wave/top.fsdb -topbench_top-sswr../../signal_list/top.rcVCD该文件需要被转换为trn或fsdb文件,然后打开;转fsdb文件:vfast ./wave/top.vcd -o ./wave/top.fsdb&&debussy -f $FileList.f-autoalias -ssf ./wave/top.fsdb -topbench_top-sswr../../signal_list/top.rc转trn文件:simvisdbutil -CVTMVL9 -OVERWRITE-LOGFILE wolf.log -OUTPUT wave.trn top.vcd&&simvision ./wave/wave.trn-input../../signal_list/simvision.svcf

⑥ 跪求用matlab分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其波形

fileName='E:\Matlab语音分析\降噪后.wav';%注:将需要读取的文件名赋值给fileName [y fs nbits]=wavread(fileName);%读取该文件 加入matlab中进行分析sound(y,fs);%播放该文件plot(y);%画出波形图如果要用matlab录制音频的话 用以下函数wavrecord进行录制 然后用 wavwrite保存到电脑中wavwrite(y,Fs,'E:\Matlab语音分析\Record1.wav'); %FS自己定义 比如8000 QQ:344731766

⑦ 如何在VC之中读取wav文件并显示波形图

先熟悉Wave文件格式,如Wave文件头格式、声音数据格式等然后以时间作为横坐标,采样点作为纵坐标,然后画点连线。可以参考《Programming Windows,Fifth Edition,Charles Petzold 》第22章 声音与音乐需要注意的是Wave文件格式有很多种,可以在网上查找相关资料。

⑧ ffmpeg音频库可以做到在播放wav的同时提取显示波形图吗

绘制波形图不需要ffmpeg来解决,wave就已经包含了波形信息,本来就是波形音频文件,所以直接在播放wav的同时展示波形,可以参考这个: http://blog.csdn.net/cug20091001753/article/details/10175099大致的过程可以这样: ffmpeg负责音频解码,解码为raw格式(wav)丢给管道,从管道中取到的数据就是解压后的wav波形文件,播放的同时展示波形图即可

⑨ 怎么在VB.NET中画.wave文件的波形图

代码原理如下:

读取.wave

播放.wave

在播放的同时根据波形数据生成图形显示出来。


赞 (0)