如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验一、语音信号的时域特性和频域特性
学院:信息与通信工程学院
专业:通信工程
班级:104
学号:2010026410
姓名:黄余芳
指导教师:崔艳秋
实验名称
语音信号的时域特性和频域特性
实验类型
验证性实验
实验目的
观察并验证语音信号的时域特性和频域特性,理解并掌握典型的语音信号时域分析方法和频域分析方法,为深入学习数字语音信号处理的相关理论奠定基础。
实验设备
安装有MATLAB的计算机
实验内容
输入并运行MATLAB代码。
观察语音信号的时域特性
(1)发一个清音和一个浊音,由麦克风采集语音数据,参考实验内容1中的程序将这些数据分别存成两个“.wav”文件(例如[a]的语音存为“a.wav”,要求采样率为8000),存在本人的文件夹中。
(2)读取WAV文件,显示语音波形,观察清音和浊音波形的差异。
(3)读取WAV文件,计算并显示语音的短时能量(要求分帧加窗的帧长为256,帧移为128),观察并分析清音和浊音短时能量的差异。
(4)读取WAV文件,计算并显示语音的短时过零率(要求分帧加窗是的帧长为256,帧移为128),观察并分析清音和浊音短时过零率的差异。
3.观察语音信号的频域特性
(1)读取WAV文件,计算并显示一帧语音的原始信号、加窗信号、短时频谱(要求分帧加窗的窗函数为汉明窗、帧长为256,帧移为128),观察并分析清音和浊音短时频谱的差异。
(2)读取WAV文件,计算并显示不同窗函数情况下一帧语音的加窗信号、短时频谱(要求分帧加窗的窗函数分别为矩形窗和汉明窗、帧长为256,帧移为128),观察并分析不同的窗函数对短时谱分析的影响。
相关函数
wavread、plot、fft
MATLAB程序代码
1.输入并运行以下MATLAB代码。
(1)短时能量
clear;
closeall;
Fs=11025;
y=wavrecord(5*Fs,Fs,'double');
wavwrite(y,'f:\\a');
soundview(y,Fs);
x=wavread('f:\\a.wav');
x=double(x);
x=filter([1-0.9375],1,x);%预加重
FrameLen=256;
FrameInc=128;
s=enframe(x,FrameLen,FrameInc);
energy=sum(abs(s),2);
figure;
subplot(2,1,1);
plot(x);
title('语音信号时域波形');
xlabel('样点数');
ylabel('幅度');
subplot(2,1,2);
plot(energy);
title('语音信号的短时能量');
xlabel('帧数');
ylabel('短时能量');
legend('帧长FrameLen=240');
(2)短时过零率
clear;
closeall;
x=wavread('f:\\a.wav');
x=double(x);
FrameLen=256;
FrameInc=128;
tmp1=enframe(x(1:end-1),FrameLen,FrameInc);
tmp2=enframe(x(2:end),FrameLen,FrameInc);
signs=(tmp1.*tmp2)<0;
diffs=(tmp1-tmp2)>0.02;
zcr=sum(signs.*diffs,2);
figure;
subplot(2,1,1);
plot(x);
title('语音信号时域波形');
xlabel('样点数');
ylabel('幅度');
subplot(2,1,2);
plot(zcr);
xlabel('帧数');
ylabel('短时过零率');
title('语音信号的短时过零率');
(3)短时傅里叶变换
clear;
closeall;
x=wavread('f:\\a.wav');
x=double(x);
FrameLen=256;
FrameInc=128;
s=enframe(x,FrameLen,FrameInc);
ss=s(50,:);%选取一帧语音信号(可以通过观察短时能量的分布来判断哪一帧是清音段还是浊音段)
f=ss'.*hamming(length(ss));
r=fft(f,512);
r1=abs(r);
r1=r1/max(r1);
yuanlai=20*log10(r1);
signal(1:256)=yuanlai(1:256);
pinlv=(0:1:255)*11025/512;
figure;
subplot(3,1,1);
plot(ss);
axis([0,256,-1,1])
title('截取的
my****25
实名认证
内容提供者
最近下载