基于MATLAB的音乐混响效果的实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 课程设计报告内容
3.1 总体设计
3.1.1 设计的总体方案图
利用 Windows 下的录音机或其他软件, 录制 一段自己的语音信号,时间控制在 5s 左右, 并对录制的信号进行采样
语音信号的频谱分析, 画出采样后语 音信号的时域波形和频谱图
将信号加入延时和混响, 再分析其频 谱,并与原始信号频谱进行比较
画出采样后语音信号的时域波形与 频谱图。N=20001,和调用 fft 函数快 速傅里叶变换。
对采样后语音信号进行延时 30,在 调整采样信号的长度,两者相加,就 得到混响。
单回声滤波器 a=0.5; y2=x+z*a; Y2=fft(y2,2001);
分析得到信号的频谱, 画出滤波后信 号的时域波形和频谱, 并对滤波前后 的信号进行对比,分析信号的变化
[1 a z ( R)]
a <1
a <1
全通结构的混响器的系统函数: H(z)= [a z ( R)] 函数 filter 函数 filter 的调用格式为 y=filter(b,a,x)
[1 a z * ( R )]
a <1
该格式采用数字滤波器对数据进行滤波, 既可以用于 IIR 滤波器, 也可以用 于 FIR 滤波器。其中向量 b 和 a 分别表示系统函数的分子、分母多项式的系数, 若 a=1,此时表示 FIR 滤波器,否则就是 IIR 滤波器。该函数是利用给出的向量 b 和 a,对 x 中的数据进行滤波,结果放入向量 y。 3.2.4 图形用户界面设计 图形用户界面 GUI (Graphics User Interface) 是由各种图形对象,如图形窗 口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方 法。 GUI 设计即可以基本的 MATLAB 程序设计为主,也可以鼠标为主利用 GUIDE 工具进行设计。 GUIDE ( Graphics User Interface Design Environ2ment) 是一个专用于 GUI 程序设计的快速开发环境,使用者通过鼠标就能迅速地产生各种 GUI 控件,并随 心所欲地改变它们的外形、大小及颜色等,从而帮助用户方便地设计出各种符合 要求的图形用户界面。调用 GUIDE 的方法有 2 种,在 MATLAB 命令窗口中输 入 guide 命令,或在 MATLAB 主菜单中点击 File →New →GUI 即可打开一个 可编辑的新窗口。
关键词 语音信号处理 MATLAB 语言 滤波器 频谱分析 图形用户界面
摘要(英文)
Digital Signal Processing (Digital Signal Processing) technology from the 1960s,along with the development of computer science and information science, digital processing techniques have emerged and to rapid development. Language is the communication of people to one of the main, it has a direct, natural, and easy. Voice is the language of the physical layer of expression. Voice processing machines mainly for voice processing, in order to achieve transmission, automatic recognition, machine understanding of other purposes. For voice processing filtering, sampling, Fourier transform and spectral envelope extraction algorithm research, discusses the implementation of DSP algorithms, Matlab language is a widely used engineering calculation and numerical analysis
其中,x 是序列,y 是序列的 FFT,x 可以为一向量或矩阵,若 x 为一向量, y 是 x 的 FFT。且和 x 相同长度。若 x 为一矩阵,则 y 是对矩阵的每一列向量进 行 FFT。 如果 x 长度是 2 的幂次方,函数 fft 执行高速基-2FFT 算法;否则 fft 执 行一种混合基的离散傅立叶变换算法,计算速度较慢。 函数 FFT 的另一种调用格式为 式中,x,y 意义同前,N 为正整数。 函数执行 N 点的 FFT。 若 x 为向量且长度小于 N, 则函数将 x 补零至长度 N。 若向量 x 的长度大于 N,则函数截短 x 使之长度为 N。若 x 为矩阵,按相同方 法对 x 进行处理。 经函数 fft 求得的序列 y 一般是复序列,通常要求其幅值和相位。MATLAB 提 供求复数的幅值和相位函数:abs,angle,这些函数一般和 FFT 同时使用。 y=fft(x,N)
后的信号进行对比,分析信号的变化。
(7)回放语音信号。
2.2 设计要求
(1)熟悉离散信号和系统的时域特性。 (2)熟悉语音信号的特点。 (3)掌握数字信号处理的基本概念,基本理论和基本方法。 (4)掌握序列快速傅里叶变换方法。 (5)学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 (6)掌握 MATLAB 设计各种数字滤波器的方法和对信号进行滤波的方法
基于 MATLAB 的语音混响效果的设计与实现
班级:10 通信二班 姓名:彭海军 学号:14102301154
摘要(中文) 数字信号处理(Digital Signal Processing)技术,从 20 世纪 60 年代以来,随着 计算机科学和信息科学发展,数字处理技术应运而生并得以快速发展。 语言是 人们进行信息沟通的主要方式之一,它具有直接、自然、方便等优点。语音则是 语言的物理层表达方式。语音处理主要是对语音进行机器处理,以达到传输、自 动识别、机器理解等目的。进行了语音处理过程的滤波、采样、傅立叶变换和谱 包络提取的算法实现研究,讨论了在算法的 DSP 实现方法, Matlab 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言, Matlab 功能强大、简单易学、编程效率高。特别是 Matlab 还具有信号分析工具 箱, 不需具备很强的编程能力, 就可以很方便wenku.baidu.com进行信号分析、处理和设计
Keywords Speech signal processing Spectral analysis of MATLAB Spectrum analysis Graphical User Interface
Filter
1 引言
数字信号处理主要是研究用数字或符号序列表示和处理信号。 处理的目的可 以是削弱信号中的多余内容, 滤除混杂的噪声和干扰, 或者是将信号变换为容易 分析和识别的形式,便于估计和选择它的特征参数。 声音信号是一维连续信号,而计算机只能处理离散信号。为了从离散信号还 原连续信号,根据采样定理,可以确定采样频率的最小值。 wav 文件是一种数字声 音文件格式,本课程设计基于 Matlab 分析了 wav 声音文件频谱与声音的关系。 通 过采集个人的一段声音进行频谱分析等处理, 然后设计数字滤波器处理这个原始 声音的 wav 文件,并比较滤波以后输出声音信号与原声音信号的异同。 基于 MATLAB 的语音混响效果处理, 其实质是针对于不同的滤波器性能 的分析与比较。 对于滤波器的设计可以使用 MATLAB 中自带的工具, 也可以通 过编程或直接利用 MATLAB 中的函数库来实现。
设计单回声滤波器, 并画出滤波器的 频域响应。 用自己设计的滤波器对采 集的语音信号进行滤波
分析得到信号的频谱, 画出滤波后信 号的时域波形和频谱, 并对滤波前后 的信号进行对比,分析信号的变化
回放语音信
3.1.2 程序流程图
用 wavread 从自己的电脑导入 Windows 下 5s 语音信号
延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项: 延时时间(Dly) ,即主延时电路的延时时间调整。 反馈增益(FB Gain) ,即延时反馈的增益控制。 反馈高频比(Hi Ratio) ,即反馈回路上的高频衰减控制。 调制频率(Freq) ,指主延时的调频周期。
调制深度(Depth) ,指上述调频电路的调制深度。 高频增益(HF) ,指高频均衡控制。 预延时(Ini Dly) ,指主延时电路预延时时间调整。 均衡频率(EQ F) ,这里的频率均衡用于音色调整,此为均衡的中点频率选 择。 由于延时产生的效果都比较复杂多变, 如果不是效果处理专家, 建议使用设 备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。 3.2.2 离散傅立叶变换 在 MATLAB 的信号处理工具箱中函数 FFT 和 IFFT 用于快速傅立叶变换和逆变 换。下面介绍这些函数。 函数 FFT 用于序列快速傅立叶变换。 函数的一种调用格式为 y=fft(x)
2 课程设计题目描述和要求
2.1 设计内容
(1)利用 Windows 下的录音机或其他软件,录制一段自己的语音信号,时间 控制在 5s 左右,并对录制的信号进行采样。 (2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。 (3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。 (4)设计单回声滤波器,并画出滤波器的频域响应。 (5)用自己设计的滤波器对采集的语音信号进行滤波。 (6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前
用 MATLAB 工具箱函数 fft 进行频谱分析时需注意: (1) (2) 函数 fft 返回值 y 的数据结构对称性。 频率计算。
(3) 析结果。 3.2.3 滤波器设计
作 FFT 分析时,幅值大小与 FFT 选择点数有关,但不影响分
单回声滤波器的系统函数: H(z)= 1 a z ( R) 无限个回声滤波器的系统函数: H(z)= z ( R)
回放语音信
3.2
详细设计过程
3.2.1 混响与延时 混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密集、 复杂,所以模拟混响效果的程序也复杂多变。常见参数有以下几种: (1)混响时间:能逼真的模拟自然混响的数码混响器上都有一套复杂的程
序, 其上虽然有很多技术参数可调, 然而对这些技术参数的调整都不会比原有的 效果更为自然,尤其是混响时间。 (2)高频滚降:此项参数用于模拟自然混响当中,空气对高频的吸收效应, 以产生较为自然的混响效果。 一般高频混降的可调范围为 0.1~1.0。 此值较高时, 混响效果也较接近自然混响;此值较低时,混响效果则较清澈。 (3)扩散度:此项参数可调整混响声阵密度的增长速度,其可调范围为 0~10,其值较高时,混响效果比较丰厚、温暖;其值较低时,混响效果则较空旷、 冷僻。 (4)预延时:自然混响声阵的建立都会延迟一段时间,预延时即为模拟次 效应而设置。 (5)声阵密度:此项参数可调整声阵的密度,其值较高时,混响效果较为 温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。 (6)频率调制:这是一项技术性的参数,因为电子混响的声阵密度比自然 混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进 行调制。 此项技术可以有效的消除延时声阵列的段裂声, 可以增加混响声的柔和 感。 (7)调治深度:指上述调频电路的调治深度。 延时就是将音源延迟一段时间后, 再欲播放的效果处理。 依其延迟时间的不 同,可分别产生合唱、镶边、回音等效果。 当延迟时间在 3~35ms 之间时人耳感觉不到滞后音的存在,并且他与原音源 叠加后,会因其相位干涉而产生"梳状滤波"效应,这就是镶边效果。如果延迟时 间在 50ms 以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理 一般都是用于产生简单的混响效果。
of the field of new high-level language, Matlab powerful, easy to learn, programming and high efficiency. Matlab also has a particular signal analysis toolbox, need not have strong programming skills, you can easily carry out signal analysis, processing and design