1、声音的延时和混响仿真课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 声音的延时和混响仿真初始条件:Matlab应用软件Windows自带的录音功能延时和混响的相关知识要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。(3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。(4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全
2、通结构的混响器,并画出滤波器的频域响应。(5)用自己设计的滤波器对采集的语音信号进行滤波。(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。(7)回放语音信号。时间安排:第18周:下达任务;第19周:查找资料,编写程序并调试;第20周:撰写设计报告及答辩。 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘要 IAbstract II1 设计要求 11.1 设计任务 11.2 设计要求 12 课题描述 12.1 课题背景及意义 12.2 课题目标 23 系统框架及实现 23.1 总体方案图 23.2 程序流程图 34 设
3、计原理 44.1 混响和延时的基本原理 44.2 离散傅立叶变换 64.3 滤波器设计 65 设计步骤 75.1 读取1s的语音信号 75.2 采样后语音信号的时域波形和频谱 85.3 对采样后的信号延时200 85.4 对信号进行混响 85.5 单回声滤波器 95.6 无限回声滤波器 95.7 多重回声滤波器 95.8 全通结构的混响器 106 运行结果 117 小结与体会 19参考文献 20附录 21摘要语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交
4、换信息形式。Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。信号处理是Matlab重要应用的领域之一。本课程设计基于Matlab分析wav声音文件频谱与声音的关系。通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的wav文件,并比较滤波以后输出声音信
5、号与原声音信号的异同。关键词 matlab 语音信号 延时 混响 滤波器 AbstractSpeech signal processing is the study of digital signal processing technology and phonetics knowledge of the voice signal processing of the emerging discipline, is one of the core technology of the fastest growing field of scientific research. Voice trans
6、mission of information is human is the most important and effective exchange of information in the form most commonly used and most convenient.The Matlab language is a very powerful computer application software in a data analysis and processing functions, it can transform the sound files for discre
7、te data files, and then use its powerful matrix operations capable of handling data, such as digital filtering, Fourier transform, domain and frequency domain analysis, voice playback, as well as a variety of map showing the signal processing and analysis toolkit for speech signal analysis provides
8、a very rich feature function, the use of these features function can quick and easily completed the speech signal processing and analysis and signal visualization, make computer interaction more convenient. The signal processing is one of the the Matlab important field of application.This course is
9、designed based on Matlab analysis of the spectrum, the relationship between sound of wav sound files. Through the collection of individuals a sound spectrum analysis, processing, and then design the digital filter, the original sound wav files, and compare similarities and differences of the output
10、audio signal with the original sound signal after the filter.Keywords matlab voice signal delay reverb filter1 设计要求1.1 设计任务(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。(3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。(4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波
11、器的频域响应。(5)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。(6)回放语音信号。1.2 设计要求(1)熟悉离散信号和系统的时域特性。(2)熟悉语音信号的特点。(3)掌握数字信号处理的基本概念,基本理论和基本方法。(4)掌握序列快速傅里叶变换方法。(5)学会MATLAB的使用,掌握MATLAB的程序设计方法。(6)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法2 课题描述1 2 2.1 课题背景及意义语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。通过语言相互传递信息是人类最
12、重要的基本功能之一。语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。近年来,随着计算机及大规模数字集成电路的迅速发展,语音数字信号处理得到了相应的发展。语音信号分析模拟、语音合成、语音识别等的研究已较成熟。、各种声码器、声控器、语声识别系统、语声合成器等已逐渐有商品出现。2.2 课题目标对于录制一个wav语音文件,对其进行采样信号、对加入延时和混响后的信号和通过几种特殊滤波器后的信号分别画出对应的时域波形和频谱图,并对比进行分析。3 系统框架及
13、实现1 2 3 3.1 总体方案图图3.1程序总体框图3.2 程序流程图图3.2程序流程图4 设计原理4 4.1 混响和延时的基本原理1. 混响声音是通过媒质传入人的听觉器官的。媒质,既是声音的传播途径,也是声音的载体。用一个日常生活中司空见惯的例子来说,媒质,就像湖中传递波浪的湖水。在平静的湖面投人一块石子,石子击起水波,波纹越来越大,水波越传越远。这湖水,就是传播水波的媒质。声音也仿佛如此:当某一声源发音,空气中声波的震荡就会改变周围空气的静止状态,使之形成时而压缩,时而稀疏的前进波,声波就这样不断地散发开去,传播声音的媒质就是空气。在闭室中,当声源发出一个声音信号(例如是一个脉冲声信号)
14、时,位于室内任何一点的听者所接收到的声音中,应包含两部分成份,一部分是由声源直接传到听者的声音,我们称其为“直达声”。另一部分是声波传到墙壁或障碍物处反射出的声音,其中有一些被听者接收到,另外一些又会传到其它墙壁处再次发生反射,反射后的声音中又有一些被听者接收到,类似地持续下去,将听者接收到的这部分声音,统称为“反射声”。从时间上看,反射声较直达声落后(或称为延迟声),从能量角度看,由于每经一次反射都会有部分能量被吸收,因此反射声是一系列能量逐渐衰减的延迟声。数字混响可以通过用人工创作的回音并将它加入原始信号里,从而把隔音录音室里录制的声音转换为一种自然的声音形式;回音可以简单地由延迟单元产生
15、。混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。常见参数有以下几种:(1)混响时间:能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。(2)高频滚降:此项参数用于模拟自然混响当中,空气对高频的吸收效应,以产生较为自然的混响效果。一般高频混降的可调范围为0.11.0。此值较高时,混响效果也较接近自然混响;此值较低时,混响效果则较清澈。(3)扩散度:此项参数可调整混响声阵密度的增长速度,其可调范围为010,其值较高时,混响效果比较丰厚、温暖
16、;其值较低时,混响效果则较空旷、冷僻。(4)预延时:自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。(5)声阵密度:此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。(6)频率调制:这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。(7)调治深度:指上述调频电路的调治深度。2. 延时延时就是将音源延迟一段时间后,再欲播放的效果处理。依其延迟时间的不同,可分别产生合唱、镶
17、边、回音等效果。当延迟时间在335ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生梳状滤波效应,这就是镶边效果。如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理一般都是用于产生简单的混响效果。4.2 离散傅立叶变换在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。下面介绍这些函数。函数FFT用于序列快速傅立叶变换。函数的一种调用格式为 y=fft(x) (式4-1)其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向
18、量进行FFT。如果x长度是2的幂次方,函数fft执行高速基2FFT算法;否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。函数FFT的另一种调用格式为 y=fft(x,N) (式4-2)式中,x,y意义同前,N为正整数。函数执行N点的FFT。若x为向量且长度小于N,则函数将x补零至长度N。若向量x的长度大于N,则函数截短x使之长度为N。若x 为矩阵,按相同方法对x进行处理。经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。MATLAB提供求复数的幅值和相位函数:abs,angle,这些函数一般和FFT同时使用。用MATLAB工具箱函数fft进行频谱分析时需注意:(1)函数f
19、ft返回值y的数据结构对称性。(2)频率计算。(3)作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。4.3 滤波器设计数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。4.3.1 特殊滤波器的系统函数:1. 单回声滤波器的系统函数:H(z)= 1 (式4-3)2. 无限个回声滤波器的系统函数:H(z)= 1 (式4-4)3. 多重回声滤波器的系统函数 :H(z)=
20、 1 (式4-5)4. 全通结构的混响器的系统函数:H(z)= 1 (式4-6)4.3.2 滤波函数filter系统还是离散时间LTI系统,系统对输入信号的响应,实质上就是对输入信号从频域角度,无论是连续时间LTI的频谱进行不同选择处理的过程,这个过程称为滤波。因此,在MATLAB的信息处理工具箱中,提供了一维滤波器函数filter和二维滤波器函数filter2。 函数filter的调用格式为 y=filter(b,a,x) ( 式4-7)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a1,此时表示
21、FIR滤波器,否则就是IIR滤波器。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。5 设计步骤5.1 读取1s的语音信号x1=wavread(make.wav); %读取信号可以使用matlab中的wavread函数把录制好的语音信号读入。5.2 采样后语音信号的时域波形和频谱x,fs,bits=wavread(make.wav,10000 40000);x=x(:,1); %只取单声道sound(5*x,fs); %对声音的回放n1=0:2000;N=size(x,1);figure(2);subplot(2,1,1);plot(x);title(采样后语音信号的时域波
22、形);Y=fft(x,2001); subplot(2,1,2); %对信号做2001点FFT变换plot(n1(1:1000),Y(1:1000); title(采样后语音信号的频谱图); %信号幅度其中x,fs,bits=wavread(make.wav,10000 40000);用于读取语音,采样值放在向量x中,fs表示采样频率(Hz),bits表示采样位数。Sound函数用来对于声音的回放,X代表一个信号。fft函数是用于求解傅里叶变换,得出采样信号。5.3 对采样后的信号延时200z=zeros(200,1);x; figure(3); %信号的延时subplot(2,1,1);pl
23、ot(z); title(延时后的时域图); %画出延时后的信号时域图 Z=fft(z,2001); subplot(2,1,2);plot(n1(1:1000),Z(1:1000); %延时后的信号频谱图 title(延时后的频谱图 ); 其中用zeros函数来使信号延时,zeros是用来生成全0矩阵的,比如,zeros(M,N) 表示的是M行*N列的0矩阵。5.4 对信号进行混响z=zeros(200,1);x; %对语音信号进行延时x=x;zeros(200,1); %使语音信号与延时后信号同等长度y1=x+z; %信号的混响figure(4);subplot(2,1,1);plot(y
24、1); title(混响的时域图); %混响时域图Y1=fft(y1,2001); %对混响信号2001点的FFT变换subplot(2,1,2);plot(n1(1:1000),Y1(1:1000); %混响频谱图title(混响的频谱图);对语音信号进行延时后,在使原语音信号的长度变换得与延时的信号同长,最后时这两个信号相加便可以得到混响后的信号。5.5 单回声滤波器a=0.5; %a取小于等于1yy1=x+z*0.5; %信号经单回声滤波figure(5);subplot(2,1,1);plot(yy1);title(单回声滤波器时域图);YY1=fft(yy1,2001); %对单回声
25、信号做2001点的FFT变换subplot(2,1,2);plot(n1(1:1000),Y2(1:1000); %单回声信号频谱图title(单回声滤波器频谱图);其中,用函数yy1=x+z*0.5来对信号进行单回声滤波。5.6 无限回声滤波器a=0.5; %a取小于等于1Bz=0,0,0,0,0,0,0,0,0,0,1; %分子的系数Az=1,0,0,0,0,0,0,0,0,0,-a; %分母的系数yy2=filter(Bz,Az,x); %滤波器进行滤波figure(6);subplot(2,1,1);plot(yy2); %无限回声滤波器时域波形title(无限个回声滤波器时域波形);
26、YY2=fft(yy2,2001); %经无限回声滤波器后的信号做2001点的FFT变换subplot(2,1,2);plot(n1(1:1000),YY2(1:1000); %无限回声滤波器频谱图title(无限个回声滤波器频谱图 );其中,编写出如上对应的无限回声滤波器函数,然后用filter函数调用滤波器。5.7 多重回声滤波器a=0.5; %a取小于等于1N=5Bz1=1,0,0,0,0,0,0,0,0,0,-0.5N %分子的系数Az1=1,0,0,0,0,0,0,0,0,0,-0.5; %分母的系数yy3=filter(Bz1,Az1,x); figure(7); %滤波器进行滤波
27、subplot(2,1,1);plot(yy3); title(多重回声滤波器的时域图)%多重回声滤波器的混响器时域波形YY3=fft(yy3,2001); %经多重回声滤波器后的信号做2001点的FFT变换subplot(2,1,2);plot(n1(1:1000),YY3(1:1000); %多重回声滤波器的频谱图title(多重回声的频谱图)5.8 全通结构的混响器a=0.5; %a取小于等于1Bz1=a,0,0,0,0,0,0,0,0,0,1; %分子的系数Az1=1,0,0,0,0,0,0,0,0,0,a; %分母的系数yy3=filter(Bz1,Az1,x); figure(6)
28、; %滤波器进行滤波subplot(2,1,1);plot(yy2); title(全通应的时域图)%全通结构的混响器时域波形YY2=fft(yy2,2001); %经全通结构的混响器后的信号做2001点的FFT变换subplot(2,1,2);plot(n1(1:1000),YY2(1:1000); %全通结构的混响器频谱图title(全通应的频谱图)同理,得出全通结构滤波器的函数,用filter函数调用滤波器,再用fft函数进行傅里叶变换,就可以得出对应的时域波形和频谱结构。6.运行结果1. 原始信号时域波形图,如图6.1所示图6.1原始信号的时域波形2. 语音信号经过采样操作,如图6.2
29、所示。图6.2采样后的时域波形图和频谱图3. 采样后信号进行延时操作,如图6.3所示。图6.3延时后的时域波形和频谱图分析:1)从时域上看,延时后的波形向右移动。 2)从频谱图上看,幅值上几乎不变。4. 语音信号进行混响操作图6.4混响后的时域波形图和频谱图分析:1)从时域上看,混响之后时域幅值和波形都发生了一定变化。 2)从频谱图上看,混响后频谱有上下跳动,其幅值有一定改变,如在采样点40,,320,500,670点处可以看到混响较为明显。5. 语音信号通过单回声滤波器图6.5单回声滤波器的时域波形图和频谱图分析:1) 从时域上看,滤波后幅值有一定变化 2)从频谱上看,滤波后频谱有微小的上下
30、跳动。6. 语音信号通过无限回声滤波器图6.6无限回声滤波器的时域波形图和频谱图分析:1) 从时域上看,波形与滤波前的波形大体相同,幅度上发生变化。 2)从频谱图上看,幅度有一定变化,在采样点10,200,500点处可以看到幅值变化明显7. 语音信号通过多重回声滤波器图6.7多重回声滤波器的时域波形图和频谱图分析:1)从时域上看,波形变化大,从1000点后可观察到其波形的形状有明显。 2)从频谱图上看,幅值总体减小。8. 语音信号通过全通滤波器图6.8全通结构混响的时域波形图和频谱图分析:1) 从时域上看,波形与滤波前的波形大体相同,幅度上有微小变化; 2)从频谱图上看,幅值略微减小,曲线总体
31、趋势向下。6 小结与体会通过此次的课程设计,我对语音信号的延时和混响有了进一步的认识,能明白其的原理,特别是对单回声滤波器、多重回声滤波器、全通混响器等几种特别特殊滤波器的系统函数和编程实现都有一定了解。此次的课设过程中,把它与我们所学的专业知识数字信号处理联系在一起,进一步的加深了对数字信号处理的相关知识的学习。在设计的过程中,由于对所涉及的几种特殊滤波器之前没有接触过,所以遇到了很大的困难,而且关于在数字处理中,对语音信号里加入延时和混响的的资料都非常的少,这给开始的设计带来了很大的麻烦。经过各方面的搜索,最终通过在学校的电子阅览室查询和图书馆借阅相关的书籍得出了设计的方案。这次的课设中,在多次的编程调试过程中,我对 matlab的掌握更
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1