我要发布
仪器网/ 仪器社区/ 频谱分析仪/ 基于MATLAB采集语音信号分析与处理

基于MATLAB采集语音信号分析与处理

团鼠儿    2009-03-10    频谱分析仪    浏览 554 次

要求: 1、语音信号采集 录制一段课程设计学生的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干... 要求:
1、语音信号采集
录制一段课程设计学生的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。
2、语音信号分析
在MATLAB软件平台下绘出采样后的语音信号的频谱图。
3、含噪语音信号合成
在MATLAB软件平台下,给原始的语音信号叠加上噪声后,绘出噪声的信号频谱图.
4.设计一种合适的滤波器,去除噪声,得到原始的语音信号.
有哪位可以为我提供MATLAB源程序,多多感谢了!!!

精彩问答
小宝小贝1225 发布日期:2009-03-11
语音信号的采集和频谱分析:
[y,fs,bits]=wavread('voice'); %读取音频信息(双声道,16位,频率44100Hz)
sound(y,fs,bits); %回放该音频
Y=fft(y,4096); %进行傅立叶变换
subplot(211);
plot(y);
title('声音信号的波形');
subplot(212)
plot(abs(Y));
title('声音信号的频谱');

窗函数设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs;
N=ceil((as-7.95)/(14.36*(wc-wp)/2))+1;
beta=0.1102*(as-8.7);
window=Kaiser(N+1,beta);
b=fir1(N,wc,window);
freqz(b,1,512,fs);
结果:

滤波:
[y,fs,bits]=wavread('voice');
d=filter(b,a,y);
D=fft(d);
subplot(211)
plot(d);
title('滤波后的声音波形')
subplot(212)
plot(abs(D))
title('滤波后的声音频谱')

回放:
sound(d,fs,bits)
与滤波之前相比,噪音明显降低了许多。
全部评论
我在我在岁月 发布日期:2009-03-11
采样,
fft频谱分析;
randn() 叠加噪声。
fenpqiangm972 发布日期:2009-03-11
1. 采集建议使用cooledit,直观好用。
2. 时域波形直接plot,频域波形可以plot(abs(fft()))和plot(angle(fft())),分别是幅度和相位,时频域分析可以用spectrogram命令,具体参数可以help一下。
3. awgn可以按信噪比添加白噪声,或者可以按需求生成需要的噪声,然后相加
4. 除非噪声是窄带的,否则无法用线性系统实现。因为语音信号是基带信号,如果不限定噪声的频率范围,则有可能与语音信号重叠,需要较复杂的算法进行分离。
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控