怎么用MATLAB里的GUIDE实现声音信号的采集和处理
声音信号采集功能的实现是由MATLAB控制计算机声卡将传感器得到的模拟信号转换为数字信号并存储在计算机中;而信号分析功能是将采集得到的数据进行时、频域分析和各项数值分析等...
声音信号采集功能的实现是由MATLAB控制计算机声卡将传感器得到的模拟信号转换为数字信号并存储在计算机中;而信号分析功能是将采集得到的数据进行时、频域分析和各项数值分析等。再加入一个低通滤波器,再实现加入后滤除噪音的时域和频域分析,比较前后的区别,最好是个部分的程序 写的详细一点 可以发我邮箱415435070@qq.com
展开
2个回答
展开全部
如果是想将声音信号录制到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'为存储的文件名。
%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'为存储的文件名。
%matlab有极其丰富的音频处理滤波功,此处介绍最基本的录入、播放和保存操作
展开全部
1.采集很简单:
t=5; %录音时间
fs=44100;%设定采样频率
nbits=16;%比特
y1=wavrecord(t*fs,fs,1); %(t*fs)为采样点数,1表示单通道
即可用mic录音;然后还可利用wavwrite(y1,fs,nbits,[name])保存;
2.处理的话,较麻烦。由于语音信号受高斯白噪声干扰后,整个频谱重叠在一起,肯定不能用经典滤波器。而要用专门的语音增强算法,这个你可以去看看书。
t=5; %录音时间
fs=44100;%设定采样频率
nbits=16;%比特
y1=wavrecord(t*fs,fs,1); %(t*fs)为采样点数,1表示单通道
即可用mic录音;然后还可利用wavwrite(y1,fs,nbits,[name])保存;
2.处理的话,较麻烦。由于语音信号受高斯白噪声干扰后,整个频谱重叠在一起,肯定不能用经典滤波器。而要用专门的语音增强算法,这个你可以去看看书。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |