1、课程设计任务书学生姓名: 陈哲 专业班级: 通信gj1001 指导教师: 付琴 工作单位: 信息工程学院 题 目:基于MATLAB的声音延迟与混响 初始条件: MATLAB软件 数字信号处理与声音处理根底知识要求完成的主要任务: 较全面了解常用的数据分析与处理原理及方法; 能够运用相关软件进行模拟分析; 掌握根本的文献检索和文献阅读的方法; 提高正确地撰写论文的根本能力。参考书目:1.刘泉,数字信号处理原理与实现第二版,电子工业出版社,2023; 2张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2023;3. 张洪涛等,数字信号处理,第一版,华中科技大学出版社,20234. 彭启琮
2、等,DSP技术的开展与应用,第二版,高等教育出版社,20235. 杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2023时间安排17周 仿真设计18周 鉴主15楼辩论指导教师签名:_ 年 月 日系主任或责任教师签名:_ 年 月 日目录31 绪论51.1设计任务51.2 设计要求62 设计的总体方案与原理72.1 设计的总体方案图72.2 程序流程图82.3 设计的详细原理92.3.1 信号采样92.3.2 混响与延时92.3.3 离散傅立叶变换102.3.4 滤波器设计113 程序设计的步骤和过程133.1 原始语音信号时域波形和频谱133.2 采样后语音信号的时域波形和频谱13
3、3.3 对采样后的信号延时143.4 对采样后的信号混响143.5 单回声滤波器程序设计153.6 多重回声滤波器程序设计153.7 无限个回声滤波器程序设计163.8 全通结构滤波器程序设计174 结果分析与体会185 设计心得体会256 主要参考文献26附录:仿真总程序27数字信号处理技术自诞生以来,有了快速的开展,主要是研究用数字或符号序列表示和处理信号,被广泛应用于各个领域。本次设计是用MATLAB语言对语音信号进行采样分析,并设计数字滤波器对信号进行滤波,比拟滤波前后信号特性的变化。用MATLAB开发环境设计用户图形界面使布局编程简化。ABSTRACTDigital signal p
4、rocessing technology since its birth had rapid development. the technology is to study the sequence of numbers or symbols used to represent and signal processing, it is widely used in various field. the design is to use theMATLAB language sampling and analysis of voice signal, and digital design for
5、 signal filtering, comparing before and after filtering the signal properties change .GUI interface provided with MATLAB development environment for designing the layout of graphical user interface makes programming simpler.1 绪论 数字信号处理是随着计算机技术的开展而迅速开展起来的一门新兴而古老的学科,它在新的领域如生物医学工程、声学、雷达、地震不、语音通信、数据通信、核
6、科学等学科发挥着重要的作用,而它所采用的各种方法及众多应用已有悠久的历史;同时也是一门具有很强的理论性与实践性,且理论和技术开展都十分迅速的前沿性学科。随着数字化时代的来临,科学技术的进步而生产开展需求的与日俱增,促进了数字信号处理学科的开展,产生了各种巧妙的信号处理算法;特别是计算机技术的飞速开展,为数字信号处理增添了巨大的生命力。数字信号处理主要是研究用数字或符号序列表示和处理信号。处理的目的可以是削弱信号中的多余内容,滤除混杂的噪声和干扰,或者是将信号变换为容易分析和识别的形式,便于估计和选择它的特征参数。例如通过分析和运算,可以估计脑电图或心电图中的某种特征参数,帮助医生查找病因和分析
7、病情,确定合理的治疗方案;又如,信号在传输时,要受到各种干扰,包括失真、衰落和混入的背景噪声,信号处理要排除这些干扰。声音信号是一维连续信号,而计算机只能处理离散信号。为了从离散信号复原连续信号,根据采样定理,可以确定采样频率的最小值。wav文件是一种数字声音文件格式,本课程设计基于Matlab分析了wav声音文件频谱与声音的关系。通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的wav文件,并比拟滤波以后输出声音信号与原声音信号的异同。1.1设计任务(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。(
8、2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。(3)将信号参加延时和混响,再分析其频谱,并与原始信号频谱进行比拟。(4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。(5)用自己设计的滤波器对采集的语音信号进行滤波。(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行比照,分析信号的变化。(7)回放语音信号。1.2 设计要求(1)熟悉离散信号和系统的时域特性。(2)熟悉语音信号的特点。(3)掌握数字信号处理的根本概念,根本理论和根本方法。(4)掌握序列快速傅里叶变换方法。(5)学会
9、MATLAB的使用,掌握MATLAB的程序设计方法。(6)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法2 设计的总体方案与原理2.1 设计的总体方案图语音信号的延时和混响设计方案框图12.2 程序流程图语音信号的延时和混响设计程序流程图22.3 设计的详细原理2.3.1 信号采样1采样频率采样频率是指计算机每秒钟采集多少个声音样本,采样频率越高,即采样的间隔时间越短,那么在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音复原成为原来的声音。2采样位数即采样值或取样值,用来衡量声音波动变化的参
10、数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。声卡的主要的作用之一是对声音信息进行录制与回放,在这个过程中采样的位数和采样的频率决定了声音采集的质量。2.3.2 混响与延时(1)混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。常见参数有以下几种:混响时间:能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。高频滚降:此项参数用于模拟自然混响当中,空气对高频的吸
11、收效应,以产生较为自然的混响效果。一般高频混降的可调范围为0.11.0。此值较高时,混响效果也较接近自然混响;此值较低时,混响效果那么较清澈。扩散度:此项参数可调整混响声阵密度的增长速度,其可调范围为010,其值较高时,混响效果比拟丰厚、温暖;其值较低时,混响效果那么较空旷、冷僻。预延时:自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。声阵密度:此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。频率调制:这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比拟平滑、连贯,需要对混响声阵列
12、的延时时间进行调制。此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。调治深度:指上述调频电路的调治深度。(2)延时就是将音源延迟一段时间后,再欲播放的效果处理。依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。当延迟时间在335ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干预而产生梳状滤波效应,这就是镶边效果。如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理一般都是用于产生简单的混响效果。延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项:x延时时间Dly,即主延时电路的延时时间调整。x反响增益FB G
13、ain,即延时反响的增益控制。x反响高频比Hi Ratio,即反响回路上的高频衰减控制。x调制频率Freq,指主延时的调频周期。x调制深度Depth,指上述调频电路的调制深度。x高频增益HF,指高频均衡控制。x预延时Ini Dly,指主延时电路预延时时间调整。x均衡频率EQ F,这里的频率均衡用于音色调整,此为均衡的中点频率选择。由于延时产生的效果都比拟复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比拟好。2.3.3 离散傅立叶变换在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。下面介绍这些函数。函数FFT用于序
14、列快速傅立叶变换。函数的一种调用格式为 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的数据结构对称性