基于MATLAB的语音信号处理系统设计程序+仿真图毕业设计Word格式.docx
《基于MATLAB的语音信号处理系统设计程序+仿真图毕业设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的语音信号处理系统设计程序+仿真图毕业设计Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法。
Ⅱ.语音信号的频域分析
信号的傅立叶表示在信号的分析与处理中起着重要的作用。
因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。
另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。
由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。
输出频谱是声道系统频率响应与激励源频谱的乘积。
声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。
由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。
Ⅲ.模拟滤波器原理
(1)模拟巴特沃思滤波器原理
巴特沃斯滤波器具有单调下降的幅频特性:
在小于截止频率
的范围内,具有最平幅度的响应,而在
后,幅频响应迅速下降。
巴特沃思低通滤波器幅度平方函数为:
(2-1)
式中N为滤波器阶数,
为3dB截止角频率。
将幅度平方函数写成s的函数:
(2-2)
该幅度平方函数有2N个等间隔分布在半径为
的圆上的极点
,
为了形成稳定的滤波器,取左半平面的N个极点构成
,即:
(2-3)
为使设计统一,将频率归一化,得到归一化极点
,相应的归一化系统函数为:
(2-4)
多项式形式为:
(2-5)
(2)模拟切比雪夫滤波器原理
切比雪夫滤波器的幅频特性具有等波纹特性,有两种形式,在通带内等波纹、阻带单调的是I型滤波器,在通带内单调、在阻带内等波纹的是II滤波器。
以I型滤波器为例。
切比雪夫滤波器的幅度平方函数为:
(2-6)
ε为小于1的正数,表示通带内幅度波动的程度。
Ωp称为通带截止频率。
令λ=Ω/Ωp,称为对Ωp的归一化频率。
CN(x)为N阶切比雪夫多项式。
幅度平方函数的极点是分布在bΩp为长半轴,aΩp为短半轴的椭圆上的点。
同样取s平面左半平面的极点构成
:
(2-7)
进行归一化,得到:
(2-8)
其中
,
(3)模拟滤波器数字化原理
将模拟滤波器转化为数字滤波器在工程上常用的有脉冲响应不变法和双线性变换法。
脉冲响应不变法时一种时域上的转换方法,它是数字滤波器的单位取样响应在抽样点上等于模拟滤波器的单位冲激响应,即:
(2-9)
设模拟滤波器只有单阶极点,其系统函数为:
(2-10)
对
进行拉氏反变换得到
,对
进行等间隔抽样,得到
进行Z变换,得到数字滤波器系统函数:
(2-11)
这种方法s和z的关系是:
。
该方法的优点是频率坐标变换时线性的切数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域特性逼近好;
缺点是会产生频谱混叠现象,适合低通、带通滤波器的设计,不适合高通、带阻滤波器的设计。
双线性变换法为了克服频谱混叠现象,采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到
之间,再用
转换到Z平面上。
该方法克服了频谱混叠现象,但带来了频率坐标变换的非线性:
,由模拟滤波器系统函数转换为数字滤波器系统函数公式为:
(2-12)
3.3语音信号的效果显示
图形用户界面(GraphicalUserInterface,GUI)是由窗口、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。
用户通过一定的方法(如鼠标、键盘)选择激活这些图形对象,实现计算、绘图等。
创建图形用户界面须具有三类基本元素:
(1)组件:
图形化控件(如按钮、编辑框、列表框等)、静态元素(如文本字符串)、菜单和坐标系。
(2)图形窗口:
GUI的每一个组件都须安排在图形窗口中。
(3)回应:
如用户用鼠标单击或用键盘输入信息后,程序要有相应的动作。
3.4短时能量及短时平均幅度
短时能量函数和短时平均幅度函数是基于语音信号幅度的变化。
清音段幅度小,其能量集中于高频段;
浊音段幅度较大,其能量集中于低频段。
短时能量函数对信号电平值过于敏感。
由于需要计算信号样值的平方和,在实际应用中(如定点设备)很容易溢出,所以可以用平均幅度函数来代替短时能量函数。
短时能量函数定义:
(6-1)
短时平均幅度函数定义:
(6-2)
(2)作用
(a)区分清/浊音:
En、Mn大,对应浊音;
En、Mn小,对应清音。
(b)在信噪比高的情况下,能进行有声/无声判决:
无声时,背景噪声的En、Mn小;
有声时,En、Mn显著增大。
判决时可设置一个门限。
3.5短时平均过零率
(1)过零率定义:
信号跨越横轴的情况。
对于连续信号,观察语音时域波形通过横轴的情况;
对于离散信号,相邻的采样值具有不同的代数符号,也就是样点改变符号的次数。
(2)短时平均过零率
对于语音信号,是宽带非平稳信号,考察其短时平均过零率。
(6-3)
其中sgn[.]为符号函数,
(6-4)
(3)作用
浊音平均过零率低,集中在低频端;
清音平均过零率高,集中在高频端。
(b)从背景噪声中找出是否有语音,以及语音的起点。
3.6短时自相关函数
相关函数用于确定两个信号在时域内的相似性。
常用的物理量为自相关函数和互相关函数。
当两个信号的互相关函数大时,则说明一个信号可能是另一个信号的时间滞后或提前;
当互相关函数为0时,则两个信号完全不同。
自相关函数用于研究信号本身,如波形的同步性和周期性。
(1)自相关函数定义
(5-5)
(2)自相关函数特点
(a)当时域信号为周期信号时,自相关函数也是周期性函数,两者具有同样的周期。
(b)Rn(k)为偶函数,Rn(k)=Rn(-k)
(c)Rn(0)最大,Rn(0)|Rn(k)|,Rn(0)=En,对于确定信号,Rn(0)是信号能量;
对于随机信号或周期信号,Rn(0)是平均功率。
(a)区分清/浊音。
浊音语音的自相关函数具有一定的周期性。
清音语音的自相关函数不具有周期性,类似噪声。
(b)估计浊音语音信号的周期,即估计基音周期。
3.7系统初步流程图
下图列出了整个语音信号处理系统的工作流程:
4设计内容
4.1语音信号的打开
程序:
[x,fs,nbits]=wavread('
mei.wav'
);
%打开语音信号
sound(x,fs,nbits);
%播放语音信号
N=length(x);
%长度
n=0:
N-1;
w=2*n*pi/N;
y1=fft(x);
%对原始信号做FFT变换
subplot(2,1,1);
plot(n,x)%做原始语音信号的时域波形图
title('
原始语音信号时域图'
xlabel('
时间t'
ylabel('
幅值'
subplot(2,1,2);
%做原始语音信号的频谱图
plot(w/pi,abs(y1));
原始语音信号频谱'
)
频率Hz'
幅度'
程序结果:
-----------------------------------------------------------------------------------------------------------------------------------------
4.2信号重采样
%打开语音信号
x1=resample(x,1,2);
%进行8KHZ重采样
sound(x1,fs/2,nbits);
%读重采样后的信号
x2=resample(x,1,4);
%进行4KHZ重采样
sound(x2,fs/4,nbits);
n1=0:
N/2-1;
n2=0:
N/4-1;
w1=4*n1*pi/N;
w2=8*n2*pi/N;
y1=fft(x1);
%对重采样信号做FFT变换
y2=fft(x2);
figure
(1)
plot(n1,x1)%做8khz重采样语音信号的时域波形图
8KHZ重采样语音信号时域图'
%做8KHZ重采样语音信号的频谱图
plot(w1/pi,abs(y1));
8KHZ重采样语音信号频谱'
figure
(2)
plot(n2,x2)%做4KHZ重采样语音信号的时域波形图
4KHZ重采样语音信号时域图'
%做4KHZ重采样语音信号的频谱图
plot(w2/pi,abs(y2));
4KHZ重采样语音信号频谱'
4.3加噪音
x=wavread('
)'
;
%长度
z=0.02*cos(10*n);
%噪音
sound(z,fs,nbits);
%读噪音
y=x+z;
%加噪音
sound(y,fs,nbits);
%读加噪音后的信号
y1=fft(z);
%对噪音做FFT变换
y2=fft(y);
%对加噪信号做FFT变换
%做噪音信号的时域波形图
plot(n,z);
axis([0,50,-0.02,0.02]);
噪音信号时域图'
%做噪音信号的频谱图
噪音信号频谱'
%做加噪音信号的时域波形图
plot(n,y);
加噪音信号时域图'
%做加噪音信号的频谱图
plot(w/pi,abs(y2));
加噪音信号频谱'
4.4滤波器
function[db,mag,pha,w]=freqz_m(b,a);
[H,w]=freqz(b,a,1000,'
whole'
%在0-2*pi之间选取N个点计算频率响应
H=(H(1:
501))'
%频率响应
w=(w(1:
%频率
mag=abs(H);
%响应幅度
db=20*log10((mag+eps)/max(mag));
%增益
pha=angle(H);
function[b,a]=afd_butt(Wp,Ws,Rp,As)
N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws)));
%滤波器阶数N为整数
fprintf('
\nButterworthFilterOrder=%2.0f\n'
N)
OmegaC=Wp/((10^(Rp/10)-1)^(1/(2*N)))%求对应于N的3db截止频率
[b,a]=u_buttap(N,OmegaC);
function[b,a]=imp_invr(c,d,T)
[R,p,k]=residue(c,d);
%部分分式展开
p=exp(p*T);
%从模拟到数字极点对应关系
部分分式系数相同
[b,a]=residuez(R,p,k);
%将部分分式的形式变换成多项式之比的形式
b=real(b'
%求出数字滤波器系数
a=real(a'
wp=0.6*pi;
ws=0.75*pi;
Rp=1;
As=30;
T=1;
%定义滤波器参数
OmegaP=wp/T;
OmegaS=ws/T;
[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As);
[b,a]=imp_invr(cs,ds,T);
[db,mag,pha,w]=freqz_m(b,a);
plot(w/pi,mag);
%作出滤波器的图形
digitalfilterMagnitudeResponse'
axis([0,1,0,1.1])
plot(w/pi,db);
digitalfilterMagnitudeinDB'
axis([0,1,-40,5]);
y1=filter(b,a,y);
%用滤波器滤波
y2=fft(y1);
%对滤波后信号做FFT变换
sound(y1);
%读滤波后信号
plot(n,y1)%做滤波后信号的时域波形图
滤波后信号时域图'
%做滤波后信号的频谱图
滤波后信号频谱'
4.5GUI的函数
1开语音
globalx;
globalfs;
globalnbits;
globalw;
globalN;
H={'
*.wav'
};
y=fft(x);
plot(n,x)
plot(w/pi,abs(y));
点开语音键结果:
2读语音
globalx;
sound(x,fs);
3重采样
globalnbits;
y11=fft(x1);
y12=fft(x2);
subplot(2,2,1);
plot(n1,x1)%8kh重采样语音信号时域图
8KH重采样语音信号时域图'
subplot(2,2,2);
%8KH重采样语音信号频域图
plot(w1/pi,abs(y11));
8KH重采样语音信号频域图'
subplot(2,2,3);
plot(n2,x2)%4KH重采样语音信号时域图
4KH重采样语音信号时域图'
subplot(2,2,4);
%4KH重采样语音信号频域图
plot(w2/pi,abs(y12));
4KH重采样语音信号频域图'
点重采样键结果:
fs=8000HZ和fs=4000HZ
4噪音键
globalw;
globalz;
y2=fft(z);
点噪音键结果:
---------------------