信息论课设Word下载.docx
《信息论课设Word下载.docx》由会员分享,可在线阅读,更多相关《信息论课设Word下载.docx(41页珍藏版)》请在冰点文库上搜索。
附录31
结束语42
摘要
声音信号是一维连续信号,而计算机只能处理离散信号。
为了从离散信号还原连续信号,根据采样定理,可以确定采样频率的最小值。
wav文件是一种数字声音文件格式,语音处理主要是对语音进行机器处理,以达到传输、自动识别、机器理解等目的。
进行了语音处理过程的滤波、采样、傅立叶变换和谱包络提取的算法实现研究,讨论了在算法的DSP实现方法。
Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高。
特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。
本课程设计基于Matlab分析了wav声音文件频谱与声音的关系。
通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的wav文件,并比较滤波以后输出声音信号与原声音信号的异同。
关键词:
声音信号,Matlab,频谱分析
Abstract
Acousticalsignalsisone-dimensionalcontinuoussignal,butcomputercanonlydealwithdiscretesignal.Inordertorestorecontinuoussignalfrondiscretesignal,theminimumofsamplingfrequencycanbeconfirmedaccordingtothesamplingtheorem.WAVisaformofdigitalsoundfile.
Speechprocessingismaintodealwiththecomputertotransfer,automaticidentificationandmachineperceptionandsoonThevoiceofprocessinginthefiltering,sampling,Fouriertransformandspectralenvelopeextractionalgorithmresearch,anddiscussedtheimplementationmethodofthealgorithmDSP.
Matlablanguageisadomainnewlanguagesthatwidelyusedinengineeringcalculationandnumericalanalysis.AndMatlabhaspowerfulfunctionsandhighefficiencyofprogramming,also,itiseasytooperate.Especially,Matlabalsohaxsignalanalysistoolbox,withouttheneedtohavestrongabilityofprogramming,itcanbeeasilysignalanalysis,processinganddesign.
ThiscoursedesignbasedontheMatlabanalyzesthewavsoundfilewiththerelationshipbetweenthespectrumvoice.Throughthepersonalavoicefrequencyanalysisandprocessing,andthentodesigndigitalfilterdealwiththeoriginalsoundofwavfiles,andcomparethefilteringvoicesignaloutputafterwiththeoriginalvoicesignalofthesimilaritiesanddifferences.
KeyWords:
Acousticalsignals,Matlab,Analysis
1.课程设计的内容与要求
1.1设计内容
(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。
(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。
(3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。
(4)设计几种特殊类型的滤波器:
单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。
(5)用自己设计的滤波器对采集的语音信号进行滤波。
(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。
(7)回放语音信号。
1.2设计要求
(1)熟悉离散信号和系统的时域特性。
(2)熟悉语音信号的特点。
(3)掌握数字信号处理的基本概念,基本理论和基本方法。
(4)掌握序列快速傅里叶变换方法。
(5)学会MATLAB的使用,掌握MATLAB的程序设计方法。
(6)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法
2.系统方案
3.基本原理
语音采集原理是,人耳能听到的声音是一种频率范围为20Hz20kHz,而一般语音频率最高为3.4kHz.语音的采集是指语音声波信号经麦克风和高频放大器转换成有一定幅度的模拟量电信号,然后再转换成数字量的全过程.
本次设计的基本原理是对语音的录音和放音进行数字化控制.其中,关键技术在于:
为了增加语音存储时间,提高存储器的利用率,采用了非失真压缩算法对语音信号进行压缩后再存储,而在回放是再进行解压缩;
同时,对输入语音信号进行数字滤波以抑制杂音和干扰,从而确保了语音回放的可靠质量.
通过设计一个GUI实验箱,并添加相应的控制控件,添加一个声音文件,通过MATLAB编程,使其通过各种按钮实现语音信号处理的各种功能,最后做成一个完整的语音信号处理实验箱。
3.1采样定理和采样频率
由于声音模拟连续信号,而计算机只能处理数字离散信号,因此要使用计算机来分析和处理声音,就需要经历模数转换过程,即将模拟的连续信号转换为数字离散信号。
采样就是按照一定的时间间隔从模拟连续信号提取出一定数量的样本来,其样本值用二进制码0和1来表示,这些0和1便构成了数字音频文件,其过程实际上是将模拟音频信号转换成数字离散信号。
采样定理:
在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5-10倍;
采样定理又称乃奎斯特定理。
采样频率:
采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调、衡量声卡、声音文件的质量标准。
采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也就越精确,采样频率与声音频率之间有一定的关系,根据奈奎斯特理论,只有采样频率高于声音信号最高频率的2倍的时候,才能把数字信号表示的声音还原成为原来的声音,这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。
采样位数与采样频率:
采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时候使用数字声音信号的二进制为数。
采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。
采样位数和采样频率对于音频接口来说是最为重要的两个基本指标,也是选择音频接口的两个重要标准。
无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。
每增加一个采样位数相当于力度范围增加了6dB。
采样位数越多则捕捉到的信号越精确。
3.2时域分析与频域分析
语音信号是一种非平稳,事变,离散性大,信息量大的复杂信号,处理难度大。
它携带着各种信息。
在语音通信,语音合成,语音识别和语音增强等语音处理中无一例外需要提供语音中包含的各种信息。
只有将语音信号分析成表示其本质特性的参数,才有可能利用这些参数进行高效的语音通信,才能将其用于语音合成的语音库以及用于语音识别的模版或知识库。
语音信号分析可以会为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
信号的傅立叶表示在信号的分析预处理中起着重要的作用。
因为对于线性系统来说,可以很方便的确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。
另外,傅立顺表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项变化。
由于语音信号是随着时间变化的,通常认为ieyuyin是一个受准周期脉冲或随机噪声源机理的线性系统的输出。
声道系统的频率响应及激励源都是随着时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。
由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。
3.3延时
延时就是将音源延迟一段时间后,再欲播放的效果处理。
依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。
当延迟时间在3~35ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生"
梳状滤波"
效应,这就是镶边效果。
如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。
回音处理一般都是用于产生简单的混响效果。
延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项:
延时时间(Dly),即主延时电路的延时时间调整。
反馈增益(FBGain),即延时反馈的增益控制。
反馈高频比(HiRatio),即反馈回路上的高频衰减控制。
调制频率(Freq),指主延时的调频周期。
调制深度(Depth),指上述调频电路的调制深度。
高频增益(HF),指高频均衡控制。
预延时(IniDly),指主延时电路预延时时间调整。
均衡频率(EQF),这里的频率均衡用于音色调整,此为均衡的中点频率选择。
由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。
3.4混响
混响效果主要是用于增加音源的融合感。
自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。
常见参数有以下几种:
(1)混响时间:
能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。
(2)高频滚降:
此项参数用于模拟自然混响当中,空气对高频的吸收效应,以产生较为自然的混响效果。
一般高频混降的可调范围为0.1~1.0。
此值较高时,混响效果也较接近自然混响;
此值较低时,混响效果则较清澈。
(3)扩散度:
此项参数可调整混响声阵密度的增长速度,其可调范围为0~10,其值较高时,混响效果比较丰厚、温暖;
其值较低时,混响效果则较空旷、冷僻。
(4)预延时:
自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。
(5)声阵密度:
此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;
其值较低时,混响效果较深邃,切声染色也较弱。
(6)频率调制:
这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。
此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。
(7)调治深度:
指上述调频电路的调治深度。
4.软件设计
4.1从windows读取1s的语音信号
[x,fs,bits]=wavread('
bb.wav'
[50050000]);
用于读取语音,采样值放在向量x中,fs表示采样频率(Hz),bits表示采样位数。
[50050000]表示读取从501点到50000点的值(若只有一个N的点则表示读取前N点的采样值)。
4.2采样后语音信号的时域波形和频谱
在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。
下面介绍这些函数。
函数FFT用于序列快速傅立叶变换。
函数的一种调用格式y=fft(x)
其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。
且和x相同长度。
若x为一矩阵,则y是对矩阵的每一列向量进行FFT。
如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;
否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。
函数FFT的另一种调用格式为y=fft(x,N)
式中,x,y意义同前,N为正整数。
函数执行N点的FFT。
若x为向量且长度小于N,则函数将x补零至长度N。
若向量x的长度大于N,则函数截短x使之长度为N。
若x为矩阵,按相同方法对x进行处理。
经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。
MATLAB提供求复数的幅值和相位函数:
abs,angle,这些函数一般和FFT同时使用。
用MATLAB工具箱函数fft进行频谱分析时需注意:
(1函数fft返回值y的数据结构对称性。
(2频率计算。
(3作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。
x=x(:
1);
%我这里假设的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,
n1=0:
2000;
N=size(x,1);
axes(handles.axes3);
%GUI句柄将图形与axes3联系起来
plot(x);
title('
采样后语音信号的时域波形'
'
fontname'
宋体'
);
Y=fft(x,2001);
axes(handles.axes4);
plot(n1(1:
1000),Y(1:
1000));
采样后语音信号的频谱图'
4.3对采样后的信号延时100和混响
z=[zeros(100,1);
x];
plot(z);
延时后的时域图'
Z=fft(z,2001);
1000),Z(1:
延时后的频谱图'
x=[x;
zeros(100,1)];
y1=x+z;
plot(y1);
混响的时域图'
Y1=fft(y1,2001);
1000),Y1(1:
混响的频谱图'
4.4滤波器的设计
单回声滤波器的系统函数:
H(z)=
<
1
多重回声滤波器的系统函数:
无限个回声滤波器的系统函数:
全通结构的混响器的系统函数:
1
函数filter
函数filter的调用格式为
y=filter(b,a,x)
该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。
其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。
该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。
(1)单回声滤波器
sound(y,fs,bits);
用于对声音的回放。
向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。
a=0.5;
y2=x+z*0.5;
plot(y2);
单回声滤时域图'
Y2=fft(y2,2001);
1000),Y2(1:
单回声滤波器频谱图'
sound(y2,fs,bits);
(2)多重回声滤波器
多重回声滤波时域图'
多重回声滤波器频谱图'
(3)无限个回声滤波器
Bz=[0,0,0,0,0,0,0,0,0,0,1];
Az=[1,0,0,0,0,0,0,0,0,0,-a];
yy1=filter(Bz,Az,x);
plot(yy1);
无限个回声滤波器时域波形'
YY1=fft(yy1,2001);
1000),YY1(1:
无限个回声滤波器频谱图'
sound(yy1,fs,bits);
(4)全通结构的混响器
Bz1=[a,0,0,0,0,0,0,0,0,0,1];
Az1=[1,0,0,0,0,0,0,0,0,0,a];
yy2=filter(Bz1,Az1,x);
plot(yy2);
全通应的时域图'
)
YY2=fft(yy2,2001);
1000),YY2(1:
全通应的频谱图'
sound(yy2,fs,bits);
1000),YZ(1:
4.5程序流程图
5.仿真分析
5.1图形用户界面设计
图形用户界面GUI(GraphicsUserInterface)是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方法。
GUI设计即可以基本的MATLAB程序设计为主,也可以鼠标为主利用GUIDE工具进行设计。
GUIDE(GraphicsUserInterfaceDesignEnviron2ment)是一个专用于GUI程序设计的快速开发环境,使用者通过鼠标就能迅速地产生各种GUI控件,并随心所欲地改变它们的外形、大小及颜色等,从而帮助用户方便地设计出各种符合要求的图形用户界面。
调用GUIDE的方法有2种,在MATLAB命令窗口中输入guide命令,或在MATLAB主菜单中点击File→New→GUI即可打开一个可编辑的新窗口。
在GUIDE设计环境中,需要用到的工具有属性编辑器、控件布置编辑器、菜单编辑器、对象浏览器、网格标尺设置编辑器以及GUI应用属性设置编辑器等。
GUI设计面板是GUI设计工具应用的平台,面板上部提供了菜单和常用工具按钮,左边提供了多种GUI控件,如按钮、单选按钮、复选框、文本框等,如图5-1所示。
进行GUI设计时,首先单击GUI面板左边所需的控件,然后在右边的图形界面编辑区中再次单击某一恰当的位置,这时将在该位置上为图形界面添加一相应的控件,接下来,通过属性编辑器和对齐编辑器对各控件设置相关属性和进行界面布置,以完善界面功能。
如点击按钮PushButton,将其放到图形界面上,如图5-2所示。
双击此按钮,弹出属性对话框,如图5-3所示,可以设置相关属性。
将String后的“PushButton”改为想通过此按钮实现的功能,如本次任务中,包括“原图”“采样后图”“延时”“混响”“全通结构滤波”“单回声滤波”“无限回声滤波”。
一个一个修改完后,如图5-4所示。
然后点击左边的坐标轴将其放到图形界面上,因为每个分析都包括频域和时域,故一共需要放14个坐标轴。
全部放置完后,如图5-5所示。
到此为止,就设计好个整个图形界面。
按钮功能的实现,右击按钮在弹出的对话框中,单击ViewCallback后的Callback,弹出m文件,编写实现该功能的程序,如图5-6所示。
图5-1GUI设计面板
图5-2
图5-3属性对话框
图5-4
图5-5
图5-6m文件
5.2仿真分析
点击仿真开始按钮,弹出对话框,如图5-7所示。
然后依次点击各个按钮,显示出各个仿真波形,如图5-8所示。
图5-7仿真对话框
图5-8仿真波形
5.2.1原始语音信号的仿真分析
图5-9原始信号的时域和频域图
5.2.2采样后信号的仿真分析
图5-10采样后信号的时域和频域图
5.2.3延时后的仿真分析
图5-11延时后的时域和频域图
延时:
从时域图出延时是让原来的波形向右移动。
从频谱图看在刚开始延时前曲线往上,延时后曲线往下。
5.2.4混响的仿真分析
图5-12混响后信号的时域和频域图
混响:
在时域图看出来在前3200Hz没有变化,混响之后幅度都变化了并且在频率有了延长了。
在频谱图中在刚开始延时前曲线往上,混响后的有跳动、下降、上升。
也在1000Hz幅度有变化,混响大概在2000Hz很密集,而混响前的很稀疏。
相反在大概3000Hz混响的很稀疏,混响前的很密集。
5.2.5单回声滤波的仿真分析
图5-13单回声滤波后信号的时域和频域图
时域上形状大致相同,幅度有微小变化。
频谱上滤波前在开始先上跳变,再下降,在上升。
而滤波后先上跳变,后面的下降和上升波动很大,滤波前的密集的长度比滤波后的短。
5.2.6多重回声滤波的仿真分析
图5-14多重回声滤波后信号的时域和频域图
5.2.7无限个回声滤波的仿真分析
图5-15无限个回声滤波后信号的时域和频域图
时域上滤波前的幅度比滤波后的数值大,形状大体相似,在1800以后滤波前有较小的波动,滤波后只有一次的波动。
在频谱上在500Hz以后幅度的变化趋势是相反的,滤波前的幅度大体上比滤波后的高,在500Hz以后滤波前的波动比滤波后大。
5.2.8全通滤波的仿真分析
图5-16全通滤波后信号的时域和频域图
时域上形状大致一样,滤波前的幅度比滤波后大,3200Hz左右滤波波动较小,滤波后的波动相比较大。
在频谱上滤波后有一条负值幅度很大的直线,其它的幅度都比滤波前的小,并且紧密的地方不同