使用matlab采集声音后,如何显示动态声音波形?

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:13:56
t = timer('TimerFcn',@callback, 'Period', 10.0);
set(t, 'ExecutionMode', 'FixedSpacing')
start(t)
%%数据满足要求后
stop(t)
delete(t)

function callback(obj, event, string_arg)

ai=analoginput('winsound');
addchannel(ai,1);
ai.samplerate=11000;
ai.triggertype='immediate';
start(ai);
[data,time,abstime,events] = getdata(ai);
plot(data); 这怎么用啊!!!!!!
比如我的音频文件是aaa.wav

使用matlab采集声音后,显示动态声音波形的方法
如果是想将声音信号录制到matlab里面,则可以使用以下的函数。
R = audiorecorder( 44100, 16 ,2 ) ;
%创建一个保存音频信息的对象,它包含采样率,时间和录制的音频信息等等。44100表示采样为44100Hz(可改为8000, 11025, 22050等,此数值越大,录入的声音质量越好,相应需要的存储空间越大),16为用16bits存储,2为两通道即立体声(也可以改为1即单声道)。
record(R);
%开始录制,此时对着麦克风说话即可。
pause(R);
%暂停录制。
play(R)
%播放录制的声音。
resume(R);
%继续录制.
stop(R);
%停止录制
myspeech = getaudiodata(R);
%得到以n*2列数字矩阵存储的刚录制的音频信号。
%对这个矩阵你就可以用各种滤波器进行处理,或者把它和别的音频混音等等。你也可以画出它的波形(如果时间较长画波形可能会花点时间)。
plot(myspeech)
%画出波形
%如果你想保存可以使用
wavwrite(myspeech,44100,16,'myspeech');
%myspeech表示要存入的波形矩阵,44100表采样率,16 为以16bits存储,'myspeech'为存储的文件名。

我也在找这个dd,他的基础应该是程序并行执行:一边显示一边播放,
或者像单片机C语言一样引入中断,
不过到现在为止还没有找到的

期待中……