基于MATLAB的语音信号特技处理-延时与混响
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP应用课程设计(学年论文)
说明书
课题名称:DSP应用课程设计
学生学号:
专业班级:
学生姓名:
学生成绩:
指导教师:
课题工作时间:至
武汉工程大学教务处制
填写说明:
1. 一、二、三项由指导教师在课程设计(学年论文)开始前填写并交由学生保管;
2. 四、五两项由学生在完成课程设计后填写,并将此表与课程设计一同装订成册交给指导教师;
3. 成绩评定由指导教师按评定标准评分。
4. 此表格填写好后与正文一同装订成册。
课程设计评审标准(指导教师用)
(报告正文)
一、课程设计目的
综合运用数字信号处理的理论知识惊醒频谱分析和滤波器设计,通过理论推导得出相应结论,再利用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),即主延时电路的延时时间调整。
*反馈增益(FB Gain),即延时反馈的增益控制。
*反馈高频比(Hi Ratio),即反馈回路上的高频衰减控制。
*调制频率(Freq),指主延时的调频周期。
*调制深度(Depth),指上述调频电路的调制深度。
*高频增益(HF),指高频均衡控制。
*预延时(Ini Dly),指主延时电路预延时时间调整。
*均衡频率(EQ F),这里的频率均衡用于音色调整,此为均衡的中点频率选择。
由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。
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的数据结构对称性。