语音信号功率谱分析及消噪处理文档格式.docx
《语音信号功率谱分析及消噪处理文档格式.docx》由会员分享,可在线阅读,更多相关《语音信号功率谱分析及消噪处理文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。
对比滤波前后信号的各项特征参数,根据所学的知识和查询资料给出合理的结论和解释。
关键词:
数字信号处理、数字滤波器、快速傅里叶变换、MATLAB
一、前言
语音信号处理是一门比较实用的电子工程的专业课程,语音是人
类获取信息的重要来源和利用信息的重要手段。
通过语言相互传递信息是人类最重要的基本功能之一。
语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。
语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。
语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。
本课程设计报告主要介绍的是的语音信号功率谱分析及消噪处理。
本报告针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab环境下综合运用信号采集、模拟信号数字化、信号的时域分析以及傅里叶变换、滤波等技术来进行语音信号处理。
二、系统总体方案设计
下图为本系统原理框图
图1系统原理框图
2.1语音信号的采集
使用电脑的声卡设备采集一段语音信号,并将其保存在电脑中。
2.2语音信号的处理
语音信号的处理主要包括信号的提取、信号的调整、信号的变换和滤波等。
2.2.1语音信号的时域分析
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
A.提取:
通过图形用户界面上的菜单功能按键采集电脑设备上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。
B.调整:
在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。
2.2.2语音信号的频域分析
信号的傅立叶表示在信号的分析与处理中起着重要的作用。
因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。
另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。
由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。
输出频谱是声道系统频率响应与激励源频谱的乘积。
声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。
由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。
A.变换:
在用户图形界面下对采集的语音信号进行Fourier等变换,并画出变换前后的频谱图和变换后的倒谱图。
B.滤波:
滤除语音信号中的噪音部分,可采用低通滤波、高通滤波、带通滤波和帯阻滤波,并比较各种滤波后的效果。
2.3系统初步流程图
下图列出了整个语音信号处理系统的工作流程:
图2.3.1系统初步流程图
三、模块设计
3.1语音信号的采集
利用PC机上的声卡和WINDOWS操作系统可以进行数字信号的采集。
将话筒输入计算机的语音输入插口上,启动录音机。
按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。
点击放音按钮,可以实现所录音的重现。
以文件名“original”保存入d:
ProgramFiles\MATLAB\R2011a中。
可以看到,文件存储器的后缀默认为.wav,这是WINDOWS操作系统规定的声音文件存的标准。
下图为基于PC机的语音信号录制过程
声音
图3.1.1基于PC机的语音信号录制过程
3.2语音信号的采样
3.2.1采样频率
采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。
采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。
采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。
这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。
3.2.2采样位数
采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。
采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。
无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。
每增加一个采样位数相当于力度范围增加了6dB。
采样位数越多则捕捉到的信号越精确。
3.2.3采样定理
在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:
fs.max>
=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;
采样定理又称奈奎斯特定理。
1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式:
理想低通信道的最高大码元传输速率=2W*log2N(其中W是理想低通信道的带宽,N是电平强度)
3.3语音信号时域分析
语音信号的时域分析就是分析和提取语音信号的时域参数。
进行语音分析时,最先接触到并且也是最直观的是它的时域波形。
语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。
时域分析通常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等。
这种分析方法的特点是:
表示语音信号比较直观、物理意义明确。
实现起来比较简单、运算且少。
可以得到语音的一些重要的参数。
④只使用示波器等通用设备,使用较为简单等。
语音信号的时域参数有短时能量、短时过零率、短时白相关函数和短时平均幅度差函数等,这是语音信号的一组最基本的短时参数,在各种语音信号数字处理技术中都要应用。
在计算这些参数时使用的一般是方窗或汉明窗。
3.4利用离散傅里叶变换(DFT)对信号进行谱分析
3.4.1DFT和FFT原理:
长度为N的序列x(n)的离散傅立叶变换为X(k):
首先按n的奇偶把时间序列x(n)分解为两个长为N/2点的序列
r=0,1,...,N/2-1
则x(n)的DFT为X(k)
由于
,故有
其中X1(k)和X2(k)分别为x1(n)和x2(n)的N/2点DFT。
因为X1(k)和X2(k)均是以N/2为周期的,且
。
因此可将N点DFTX(k)分解为下面的形式
k=0,1,...,N/2-1
通过上面的推导可以看出,N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。
依此类推,当N为2的整数次幂时(
),由于每分解一次降低一阶幂次,所以通过M次的分解,最后全部成为一系列2点DFT运算。
以上就是按时间抽取的快速傅立叶变换(FFT)算法。
序列X(k)的离散傅立叶反变换为:
离散傅立叶反变换与正变换的区别在于WN变为WN-1,并多了一个1/N的运算。
因为WN和WN-1对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT和快速傅立叶反变换(IFFT)算法合并在同一个程序中。
3.4.2MATLAB中计算DFT(FFT)的函数
函数fft用来求序列的DFT,调用格式为:
[Xk]=fft(x,,N)其中,x为有限长序列,N为序列x的长度,Xk为序列xn的DFT.
函数ifft用来求IDFT,调用格式为:
[x]=ifft(Xk,N)其中,Xk为有限长序列,N为序列Xk的长度,x为序列Xk的IDFT
3.5数字滤波器设计
3.5.1数字滤波器基本结构
作为线形时不变系统的数字滤波器可以用系统函数来表示,而实现一个系统函数表达式所表示的系统可以用两种方法:
一种方法是采用计算机软件实现;
另一种方法是用加法器、乘法器、和延迟器等元件设计出专用的数字硬件系统,即硬件实现。
不论软件实现还是硬件实现,在滤波器设计过程中,由同一系统函数可以构成很多不同的运算结构。
对于无限精度的系数和变量,不同结构可能是等效的,与其输入和输出特性无关;
但是在系数和变量精度是有限的情况下,不同运算结构的性能就有很大的差异。
因此,有必要对离散时间系统的结构有一基本认识。
3.5.2IIR滤波器的基本结构
一个数字滤波器可以用系统函数表示为:
由这样的系统函数可以得到表示系统输入与输出关系的常系数线形差分程为:
可见数字滤波器的功能就是把输入序列x(n)通过一定的运算变换成输出序列y(n)。
不同的运算处理方法决定了滤波器实现结构的不同。
无限冲激响应滤波器的单位抽样响应h(n)是无限长的,其差分方程如(2-2)式所示,是递归式的,即结构上存在着输出信号到输入信号的反馈,其系统函数具有(2-1)式的形式,因此在z平面的有限区间(0<
︱z︱<
∞)有极点存在。
IIR滤波器实现的基本结构有:
(1)IIR滤波器的直接型结构;
优点:
延迟线减少一半,变为N个,可节省寄存器或存储单元;
缺点:
其它缺点同直接I型。
通常在实际中很少采用上述两种结构实现高阶系统,而是把高阶变成一系列不同组合的低阶系统(一、二阶)来实现。
(2)IIR滤波器的级联型结构;
特点:
∙系统实现简单,只需一个二阶节系统通过改变输入系数即可完成;
∙极点位置可单独调整;
∙运算速度快(可并行进行);
∙各二阶网络的误差互不影响,总的误差小,对字长要求低。
不能直接调整零点,因多个二阶节的零点并不是整个系统函数的零点,当需要准确的传输零点时,级联型最合适。
(3)IIR滤波器的并联型结构。
∙简化实现,用一个二阶节,通过变换系数就可实现整个系统;
∙极、零点可单独控制、调整,调整α1i、α2i只单独调整了第i对零点,调整β1i、β2i则单独调整了第i对极点;
∙各二阶节零、极点的搭配可互换位置,优化组合以减小运算误差;
∙可流水线操作。
∙二阶阶电平难控制,电平大易导致溢出,电平小则使信噪比减小。
a、直接型
b、并联型
c、串联型
图3.5.2IIR滤波器基本结构
3.5.3FIR滤波器的基本结构
FIR滤波器的单位抽样响应为有限长度,一般采用非递归形式实现。
通常的FIR数字滤波器有横截性和级联型两种。
FIR滤波器实现的基本结构有:
(1)FIR滤波器的横截型结构
表示系统输入输出关系的差分方程可写作:
(2)FIR滤波器的级联型结构
将H(z)分解成实系数二阶因子的乘积形式:
这时FIR滤波器可用二阶节的级联结构来实现,每个二阶节用横截型结构实现。
四、各模块仿真系统设计
4.1对原始语音信号进行分析
采集原始语音信号,绘制原始语音信号的时域波形图和频域图
[x,fs]=wavread('
original.wav'
)%调用该文件,采样值放在x中,fs为采样频率
sound(x);
%语音信号的回放
x=x(:
1);
%取矩阵x的第一列赋值到x矩阵中
FS=length(x);
%矩阵x的长度
f=0:
fs/FS:
(FS-1)*fs/FS;
%生成一个一维数组赋给f
X=fft(x,4096);
%对信号做4096点FFT变换
magX=abs(X);
%取X的幅值给magX
f=fs*(0:
511)/1024;
figure
(1)%图一
subplot(211);
%将当前窗口分成2行1列,并且选第一行为当前活动区
plot(magX);
%绘制幅值图形
title('
原始信号频域图'
);
%给图形加标题为原始信号幅值
gridon;
%加网格线
t=(0:
FS-1)/fs;
subplot(212);
plot(t,x);
%绘制原始语音信号的时域波形图
原始语音信号时域波形图'
%给图形加标题为原始语音信号时域波形图
xlabel('
timen'
%给x轴加标记为‘time’
ylabel('
fuzhin'
%给y轴加标记为‘fuzhi’
图4.1.1原始信号时域波形图及频域图
4.2对原始语音信号进行加噪处理
利用下列程序对原始语音信号进行加噪处理,并绘制出加随机噪声后语音信号的时域图和频谱图。
noise_mu=0;
%取噪声的均值为0
noise_var=0.0005;
%取噪声的方差为0.0005
x0=randn(size(x)).*sqrt(noise_var)+noise_mu;
%语句产生与原始语音长度相同的随机噪声
x1=x+x0;
%把这个噪声添加到原始语音中,得到加噪语音信号
ts=1/fs;
ta=(length(x)-1)/fs;
t=0:
ts:
ta;
figure(3);
plot(t,x1);
%绘制加随机噪声后语音信号时域图
title('
加随机噪声后语音信号时域图'
xlabel('
t'
x1'
y2=fft(x1,1024);
%对信号做1024点FFT变换
Subplot(212);
%绘制原始语音信号的频率响应图
plot(f,abs(y2(1:
512)));
加随机噪声后的语音信号频谱图'
)
Hz'
fudu'
sound(x1);
所绘仿真图如下所示
图4.2.1加随机噪声后语音信号的时域图和频谱图
4.3数字滤波器设计
根据语音信号的特点,给出数字滤波器的设计指标:
fp=1000;
fs=1200;
as=100;
Fs=8000。
利用kaiser窗函数设计低通FIR滤波器,并绘出其频率响应的程序如下:
Fs=8000;
%kaiser滤波器设计
wp=2*pi*fp/Fs;
ws=2*pi*fs/Fs;
Bt=ws-wp;
alph=0.112*(as-8.7);
%旁瓣参数值
M=ceil((as-8)/2.285/Bt);
%取整
wc=(wp+ws)/2/pi;
hn=fir1(M,wc,kaiser(M+1,alph));
%选择kaiser函数,并归一化截止频率
figure(4);
freqz(hn);
%freqz是用离散傅里叶变换的标准公式计算的fft
Y=fft(x1);
图4.3.1滤波器频率响应
4.4对加噪信号进行滤波处理
进行低通滤波,比较滤波前后语音信号的波形及频谱:
y1=fftfilt(hn,x1);
%利用kaiser滤波器对语音信号滤波
Y1=fft(y1);
n=0:
length(x1)-1;
figure(5);
subplot(221);
plot(t,x1);
未滤波语音波形'
subplot(222);
plot(t,y1);
滤波后语音波形'
subplot(223);
plot(n,Y);
未滤波语音频谱'
subplot(224);
plot(n,Y1);
滤波后语音频谱'
sound(y1,fn,nbits);
%滤波后语音回放
图4.4.1滤波前后语音信号的波形及频谱对比
总结
这次数字信号处理课程设计,给我留下了深刻的印象。
通过这次课程设计的训练,让自己受益匪浅。
通过这次课程设计,使我对数字信号处理这门课程有了更深入和直观的理解,对于如何利用理论知识进行实践有了明确的认识。
这次课程设计也让我更加熟悉了仿真工具---MATLAB,使我能够熟练应用这款软件。
通过这次练习是我进一步了解了信号的产生、采样及频谱分析的方法。
以及其中产生信号和绘制信号的基本命令和一些基础编程语言。
这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。
同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。
参考文献
1.陈怀琛.MATLAB及在电子信息课程中的应用【M】.北京电子工业出版社.2008.1
2.张文.基于MATLAB的语音信号的滤波域实现【M】.山西电子技术.2008.2
3.徐靖涛.基于MATLAB的语音信号分析与处理【M】.重庆科技学院学报.2008.1
4.张威.MATLAB基础与编程入门【M】.西安电子科技大学出版社,2006.
5.周渊,王炳和,刘斌胜.基于MATLAB的噪声信号采集和分析系统的设计【J】.噪声控制.2004(7):
52-54.
6.朱学芳,徐建平.计算机语音信号处理与语音识别系统【J】.南京邮电学院学报,1998,18(5—6):
113—11
7.张雄伟,陈量,杨吉斌.现代语音处理技术及应用【M】.北京:
机械工业出版社.2003
致谢
在本次《数字信号处理》课程设计中,我们对于该课程的理论部分有了更客观、更直接的认识,课程设计给了我们将理论应用在真实的系统设计上的机会,对数字信号处理系统的设计和语音信号处理方法有了深刻的印象,对今后进一步深入研究学习和研究数字信号处理有重要的指导意义。
同时,在课程设计的过程中,我们发现了以下3点我们自身的不足:
1.在理论学习当中,我们仍有知识盲区,对于易混淆知识点认识模糊;
2.在MATLAB软件中在编程时,对于某些指令的含义仍不是很清楚,需要通过查询资料才能获得,降低了编程效率;
在今后的学习中,我们要努力通过学习来改掉这些不足。
最后,感谢课程设计指导老师何继爱对我们的指导,还要感谢和我们一起进行讨论和研究的各位同学,这次课程设计的顺利完成离不开你们的帮助。