基于MATLAB的语音信号特技处理延时与混响.docx

上传人:b****4 文档编号:4997826 上传时间:2022-12-12 格式:DOCX 页数:20 大小:273.06KB
下载 相关 举报
基于MATLAB的语音信号特技处理延时与混响.docx_第1页
第1页 / 共20页
基于MATLAB的语音信号特技处理延时与混响.docx_第2页
第2页 / 共20页
基于MATLAB的语音信号特技处理延时与混响.docx_第3页
第3页 / 共20页
基于MATLAB的语音信号特技处理延时与混响.docx_第4页
第4页 / 共20页
基于MATLAB的语音信号特技处理延时与混响.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基于MATLAB的语音信号特技处理延时与混响.docx

《基于MATLAB的语音信号特技处理延时与混响.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的语音信号特技处理延时与混响.docx(20页珍藏版)》请在冰豆网上搜索。

基于MATLAB的语音信号特技处理延时与混响.docx

基于MATLAB的语音信号特技处理延时与混响

DSP应用课程设计(学年论文)

说明书

课题名称:

DSP应用课程设计

学生学号:

专业班级:

学生姓名:

学生成绩:

指导教师:

课题工作时间:

武汉工程大学教务处制

填写说明:

1.一、二、三项由指导教师在课程设计(学年论文)开始前填写并交由学生保管;

2.四、五两项由学生在完成课程设计后填写,并将此表与课程设计一同装订成册交给指导教师;

3.成绩评定由指导教师按评定标准评分。

4.此表格填写好后与正文一同装订成册。

 

一、课程设计的任务或学年论文的基本要求:

《数字信号处理》课程是一门理论和技术都发展十分迅速、应用非常广泛和前沿性学科,它的理论性和实践性都很强,学生在学习这门课程时,普遍感到数字信号处理的概念抽象,对其中的分析方法与基本理论不能很好地理解与掌握。

因此,如何帮助学生理解与掌握课程中的基本概念、基本原理、基本分析方法以及综合应用所学知识解决实际问题的能力,是本课程教学中所要解决的关键问题。

为了是配合《数字信号处理》专业基础课的理论教学,安排《数字信号处理》课程设计,它是针对《数字信号处理》的基础理论和算法进行实践环节的一个综合训练,以便学习巩固所学的知识,加强理论和实际结合的能力,培养学生的综合设计能力与实际工作能力。

课程设计要求2—3人组成设计小组,在指定范围内选定题目,每组选一题。

学生可从下列题目中任选一个作为DSP课程设计题目,也可自拟题目进行设计。

一、基于MATLAB的声音信号频谱分析

为了巩固所学的数字信号处理理论知识,使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解,为此安排课程设计的内容。

选择一个wav文件作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析,根据信号的频谱特点重构语音信号。

二、基于MATLAB的简单语音处理系统设计

为了巩固所学的数字信号处理理论知识,使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解,为此安排了课程设计的内容:

确定一音乐语音信号并对音乐信号进行采样;画出采样后音乐信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计一组滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器组对采集的信号进行滤波;回放语音信号。

三、使用FFT实现任意三个同频带信号的频分复用

选择三个不同频段的信号对其进行频谱分析,根据信号的频谱特征设计三个不同的数字滤波器,将三路信号合成为一路信号,分析合成信号的时域和频域特点,然后将合成信号分别通过设计好的三个数字滤波器,分离出原来的三路信号,分析得到的三路信号的时域波形和频谱,与原始信号进行比较说明频分复用的特点。

四、基于MATLAB的语音信号简单的特技处理——延时和混响

选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析,然后在时域用数字信号处理方法将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。

五、基于MATLAB的有噪声的语音信号的处理

选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析;利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,对其进行频谱分析;设计FIR和IIR数字滤波器,并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征,回放语音信号。

3、设计报告要求

设计报告应提供以下内容:

设计任务书、题目、摘要(中英文)、正文、参考文献(3种以上)。

其中正文应包含:

设计思路、原理图设计文件、程序文件、设计与调试过程、模拟仿真结果和设计结论。

 

二、进度安排:

17周(2011.6.13-2011.6.19):

周一:

选择课程设计题目,明确课程设计目的和任务。

周二、周三:

查看参考资料。

周四、周五:

原理图与程序设计。

18周(2011.6.20-2011.6.24):

周一、周二:

上机调试原理图与程序。

周三:

整理所有任务资料,答辩。

周四、周五:

撰写课程设计报告。

三、应收集资料及主要参考文献:

1.邹彦,DSP原理及应用,第1版,电子工业出版社,2006;

2.张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2002;

3.张洪涛等,数字信号处理,第一版,华中科技大学出版社,2007

4.彭启琮等,DSP技术的发展与应用,第二版,高等教育出版社,2007

5.杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007

 

四、课程设计(学年论文)摘要(中文)

数字信号处理技术自诞生以来,有了快速的发展,主要是研究用数字或符号序列表示和处理信号,被广泛应用于各个领域。

本次设计是用MATLAB语言对语音信号进行采样分析,并设计数字滤波器对信号进行滤波,比较滤波前后信号特性的变化。

用MATLAB提供的GUI界面开发环境设计用户图形界面使布局编程简化。

 

五、课程设计(学年论文)摘要(英文):

Digitalsignalprocessingtechnologysinceitsbirthhadrapiddevelopment.thetechnologyistostudythesequenceofnumbersorsymbolsusedtorepresentandsignalprocessing,itiswidelyusedinvariousfield.thedesignistousethe

MATLABlanguagesamplingandanalysisofvoicesignal,anddigitaldesignforsignalfiltering,comparingbeforeandafterfilteringthesignalpropertieschange.GUIinterfaceprovidedwithMATLABdevelopmentenvironmentfordesigningthelayoutofgraphicaluserinterfacemakesprogrammingsimpler.

六、成绩评定:

指导教师评语:

 

指导教师签字:

2011年月日

项目

评价

项目

评价

调查论证

工作量、工作态度

实践能力

分析、解决问题能力

质量

创新

得分

七、答辩记录:

答辩意见及答辩成绩

 

答辩小组教师(签字):

2011年月日

 

总评成绩:

(教师评分×75%+答辩成绩×25%)

 

 

课程设计评审标准(指导教师用)

评价内容

具体要求

权重

调查论证

能独立查阅文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获得新知识的能力。

0.1

实践能力

能正确选择研究(实验)方法,独立进行研究工作。

如装置安装、调试、操作。

0.2

分析解决问题能力

能运用所学知识和技能去发现与解决实际问题;能正确处理实验数据;能对课题进行理论分析,得出有价值的结论。

0.2

工作量、工作态度

按期圆满完成规定的任务,工作量饱满,难度较大,工作努力,遵守纪律;工作作风严谨务实。

0.2

质量

综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学;文字通顺,技术用语准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;论文结果有应用价值。

0.2

创新

工作中有创新意识;对前人工作有改进或独特见解。

0.1

 

(报告正文)

一、课程设计目的

综合运用数字信号处理的理论知识惊醒频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

二、课程设计要求

1.熟悉离散信号和系统的时域特性。

2.熟悉语音信号的特点。

3.掌握数字信号处理的基本概念,基本理论和基本方法。

4.掌握序列快速傅里叶变换的基本方法。

5.学会MATLAB的使用,掌握MATLAB的程序设计方法。

6.掌握MATLAB设计各种数字滤波器的方法核对信号进行滤波的方法。

三、详细设计过程

1.基本原理

1.1信号采样

(1)采样频率

采样频率是指计算机每秒钟采集多少个声音样本,采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。

只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。

(2)采样位数

即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。

声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。

声卡的主要的作用之一是对声音信息进行录制与回放,在这个过程中采样的位数和采样的频率决定了声音采集的质量。

1.2混响与延时

(1)混响效果主要是用于增加音源的融合感。

自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。

常见参数有以下几种:

混响时间:

能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。

高频滚降:

此项参数用于模拟自然混响当中,空气对高频的吸收效应,以产生较为自然的混响效果。

一般高频混降的可调范围为0.1~1.0。

此值较高时,混响效果也较接近自然混响;此值较低时,混响效果则较清澈。

扩散度:

此项参数可调整混响声阵密度的增长速度,其可调范围为0~10,其值较高时,混响效果比较丰厚、温暖;其值较低时,混响效果则较空旷、冷僻。

预延时:

自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。

声阵密度:

此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。

频率调制:

这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。

此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。

调治深度:

指上述调频电路的调治深度。

(2)延时就是将音源延迟一段时间后,再欲播放的效果处理。

依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。

当延迟时间在3~35ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生"梳状滤波"效应,这就是镶边效果。

如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。

回音处理一般都是用于产生简单的混响效果。

延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项:

*延时时间(Dly),即主延时电路的延时时间调整。

*反馈增益(FBGain),即延时反馈的增益控制。

*反馈高频比(HiRatio),即反馈回路上的高频衰减控制。

*调制频率(Freq),指主延时的调频周期。

*调制深度(Depth),指上述调频电路的调制深度。

*高频增益(HF),指高频均衡控制。

*预延时(IniDly),指主延时电路预延时时间调整。

*均衡频率(EQF),这里的频率均衡用于音色调整,此为均衡的中点频率选择。

由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。

1.3离散傅立叶变换

在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同时使用。

函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角,介于和之间,以弧度表示。

函数unwrap(p)用于展开弧度相位角p,当相位角绝对变化超过时,函数把它扩展至。

用MATLAB工具箱函数fft进行频谱分析时需注意:

(1)   函数fft返回值y的数据结构对称性。

(2)   频率计算。

(3)   作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。

1.4滤波器设计

单回声滤波器的系统函数:

<1(3-1)

无限个回声滤波器的系统函数:

<1(3-2)

全通结构的混响器的系统函数:

<1(3-3)

本次设计用IIR滤波器对信号进行滤波,函数名为filter

函数filter的调用格式为         y=filter(b,a,x)

该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。

其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。

该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。

1.5图形用户界面设计

图形用户界面GUI(GraphicsUserInterface)是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方法。

GUI设计即可以基本的MATLAB程序设计为主,也可以鼠标为主利用GUIDE工具进行设计。

GUIDE(GraphicsUserInterfaceDesignEnviron2ment)是一个专用于GUI程序设计的快速开发环境,使用者通过鼠标就能迅速地产生各种GUI控件,并随心所欲地改变它们的外形、大小及颜色等,从而帮助用户方便地设计出各种符合要求的图形

用户界面。

调用GUIDE的方法有2种,在MATLAB命令窗口中输入guide命令,或在MATLAB主菜单中点击File→New→GUI即可打开一个可编辑的新窗口。

在GUIDE设计环境中,需要用到的工具有属性编辑器、控件布置编辑器、菜单编辑器、对象浏览器、网格标尺设置编辑器以及GUI应用属性设置编辑器等。

GUI设计面板是GUI设计工具应用的平台,面板上部提供了菜单和常用工具按钮,左边提供了多种GUI控件,如按钮、单选按钮、复选框、文本框等。

进行GUI设计时,首先单击GUI面板左边所需的控件,然后在右边的图形界面编辑区中再次单击某一恰当的位置,这时将在该位置上为图形界面添加一相应的控件,接下来,通过属性编辑器和对齐编辑器对各控件设置相关属性和进行界面布置,以完善界面功能。

2.方案选择及设计

(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。

(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。

(3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。

(4)设计几种特殊类型的滤波器:

单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。

(5)用自己设计的滤波器对采集的语音信号进行滤波。

(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。

(7)回放语音信号。

3.程序设计流程

四、调试分析

1.软件中设置问题,通过edit—figure-copy-figure时发现粘贴到word里面的图形有问题

通过设置图片属性可以解决此问题,通过这个问题的解决加深了对软件的了解,更加熟悉软件的运行。

2.GUI界面问题

在界面运行时发现按钮覆盖住了图形,通过改变subplot函数的后面的参数,进行修改,改为subplot(2,15,[213])和subplot(2,15,[17,28])是按钮和图形分开。

3.程序中的细节问题

a对信号进行采样时,采样区间为[2000026000],做DFT变换点数应该为6001,刚开始做的时候就直接写为6000.

b语音信号的音道问题,采取的语音信号为双声道,只需要取其中的一个声道进行分析,函数为y=y(:

1);

五、结果分析与体会

GUI设计界面

运行结果:

对信号采样后,信号时域波形出现了离散化的分布,不像原始图像那样密集分布,频谱图也是同样的变换,幅度和频率都是根据采样区间变化的

从时域图出延时是让原来的波形向右移动300,频域的幅度发生了变化。

混响:

在时域图看前面几乎没变化,后面的幅度有一定变化。

在频谱图幅度变化很大,中间的上下相互抵消,两边的跳动很大。

时域上形状大致相同,幅度有微小变化。

频谱上也是滤波前后两边跳动变换较大,幅度变化较大。

时域上波形变得稀疏了,幅度相对变化较大。

频谱上变化两边上下跳的动变化,中间变化抵消

全通结构时域大致一样,滤波前比滤波后幅度有变化6000以后上下跳动抵消

频域上变化的不为明显,幅度发生了变化。

 

设计心得体会

此次课程设计综合了数字信号处理的理论知识和实践经验,经过两周的时间在查阅相关资料结合以前学过的数字信号处理和数字信号处理实验,如期完成了设计任务要求,并加深了对知识的理解,提高了自己的实践动手能力。

此次设计我所做的题目是基于MATLAB的语音信号简单的特技处理——延时和混响。

拿到课程设计任务的时候,不知道从哪儿入手,选定题目后,上网查阅了相关资源,去图书馆搜集资料,确定了设计的基本方案,步骤,开始用软件进行实现,实现过程中出现了很多问题,上网查阅资料,在专业的论坛里面去看,下载MATLAB的视频,慢慢的开始有了进一步的理解。

在以前的实验中没有接触过GUI界面的问题,根本不知道从哪入手,在查阅了资料,看视频,有了一定的了解,但是由于初次接触,出现问题的时候还是很难解决,经过和同学讨论,终于解决了这些问题。

经过此次课程设计,使我对数字信号处理的理论知识有了更深了的了解,更近一步的理解了用MATLAB语言对信号进行采样,滤波等处理。

初次接触了MATLAB提供的

用户界面的设计问题,对其中的一些基本问题有了了解,为以后的实践打下了一定的基础,相信在以后的实践过程中会有更好的提升。

当然由于时间和能力问题,还有一些更待提升的问题需要我们去解决,在以后的实践过程中我会更多的去了解解决。

六.参考资料

1.杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007

2.张洪涛等,数字信号处理,第一版,华中科技大学出版社,2007

3.李正周Matlab数字信号处理与应用清华大学出版社2008

4.陈怀琛数字信号处理教程—MATLAB释义与实现第二版电子工业出版社2008

5.张威.MATLAB基础与编程入门.西安电子科技大学出版社.2006

6.刘舒帆,费诺,陆辉.数字信号处理实验(MATLAB版).西安电子科技大学出版社.2008

七、附录

(程序清单)

1.原始信号分析

[y,fs,bits]=wavread('e:

\g.wav');

y=y(:

1);

sound(y,fs,bits);

Y=fft(y);

subplot(211);plot(y);title('原始信号时域波形');

subplot(212);plot(abs(Y));title('原始信号频谱');

2.对原始信号采样分析

[y,fs,bits]=wavread('e:

\g.wav',[2000026000]);

y=y(:

1);

sound(y,fs,bits);

Y=fft(y,6000);

subplot(211);plot(y);title('采样信号波形');

subplot(212);plot(abs(Y));title('采样信号频谱');

sound(y,fs,bits);

3.信号延时

[y,fs,bits]=wavread('e:

\g.wav',[2000026000]);

y=y(:

1);

z=[zeros(300,1);y];

subplot(211);plot(z);title('延时后的时域波形');

Z=fft(z,6001);

subplot(212);plot(abs(Z));title('延时后的频谱图');

sound(y,fs,bits);

4.混响后的信号分析

[y,fs,bits]=wavread('e:

\g.wav',[2000026000]);

y=y(:

1);

z=[zeros(300,1);y];

y=[y;zeros(300,1)];

y1=y+z;

Y1=fft(y1,6001);

subplot(211);plot(y1);title('混响的时域波形');

subplot(212);plot(abs(Y1));title('混响的频谱图');

sound(y,fs,bits);

5.单回声滤波器

[y,fs,bits]=wavread('e:

\g.wav',[2000026000]);

y=y(:

1);

z=[zeros(300,1);y];

y=[y;zeros(300,1)];

a=0.5;

y2=y+z*0.5;

Y2=fft(y2,6000);

subplot(211);plot(y2);title('单回声滤波器时域图');

subplot(212);plot(abs(Y2));title('单回声滤波器频谱图');

sound(y2,fs,bits);

6.无限个回声滤波器

[y,fs,bits]=wavread('e:

\g.wav',[2000026000]);

y=y(:

1);

z=[zeros(300,1);y];

y=[y;zeros(300,1)];

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,y);

YY1=fft(yy1,6001);

subplot(211);plot(yy1);title('无限个回声滤波器时域图');

subplot(212);plot(abs(YY1));title('无限个回声滤波器频谱图');

sound(yy1,fs,bits);

7.全通结构

[y,fs,bits]=wavread('e:

\g.wav',[2000026000]);

y=y(:

1);

z=[zeros(300,1);y];

y=[y;zeros(300,1)];

a=0.5

Bz1=[a,0,0,0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1