转载:reverb
https://blog.csdn.net/qiumingjian/article/details/43938687
https://blog.csdn.net/jsjwangmingmin/article/details/58095888
https://wenku.baidu.com/view/547cb701a6c30c2259019e64.html
https://wenku.baidu.com/view/a856682bf4335a8102d276a20029bd64783e6297.html
所谓混响就是声音的直达声与反射声很紧凑的重合在一起时人耳所听到的声音,这个效果在语音的后期处理时特别有用。能产生混响最常见的场景就是房间内,尤其是空旷的房间中。
混响有直达声,早期反射和后期反射声组成。其中直达声是声源信号不经过任何障碍物直接到达人耳的那部分、早期反射声由一次或者几次反射的声音信号组成、后期反射声由随后更多次的反射声音信号组成。混响效果的空间感主要由早期反射声决定。

1.梳状滤波器
由于每次反射都会因为墙壁、障碍物等吸收一部分能量,所以声音信号的能量呈指数衰减。因此混响信号可以看成由直达声与许多逐步衰减、不断延迟的回声信号叠加而成,很自然的想到可以利用等比数列求和来进行模拟混响:

这里x(n)为原始声音信号、y(n)为混响信号、a为衰减系数、D为延迟时间。写成传递函数为:

由等比数列求和公式,传递函数可以转换为:

熟悉信号处理的朋友可能会比较眼熟,这不正是梳状滤波器吗?一点没错!正是IIR梳状滤波器。
如果写成差分方程,可表示为:


其典型的频谱特性为:
a=0.5, D=8.
B=[1 zeros(1, 7)];
A=[1 zeros(1, 6) -0.5];
[H, w]= freqz(B, A, 400, 'whole');
Hf=abs(H)
Hx=angle(H)
clf
figure(1)
plot(w, Hf)
figure(2)
plot(w, Hx)


梳状滤波器频谱曲线不平坦,呈现明显的梳状效应,从而对不同的频率成分幅度产生波动,导致有金属声染色效应,听起来不够自然,另外,单纯使用梳状滤波器,其回声密度还是不够多。
2.全通滤波器
全通滤波器既有信号的延时效应,频谱又比较平坦。全通滤波器模型是在梳状滤波器模型的基础上,通过增加一条前向反馈支路实现的。
一阶全通传递函数可以表示为:

差分方程:


m=8, g=0.5,其频谱特性:


由全通滤波器的幅频特性可知,其频域相应幅度呈现直通分布;从梳状滤波器的脉冲响应可知,其冲击响应点离散的以m为间隔延续,且能量逐渐减小,因此与Reverb物理特性相一致。但是其回声密度同样受限于延迟时间,因此回声密度较低。
3 Schroeder混合模型
综合梳状滤波器和全通滤波器,为了实现较高的回声密度,将4个梳状滤波器进行并联,然后通过2个级联的全通滤波器,实现Schroder混合模型。
梳状滤波器提供了混响效果中延时较长的回声,而延时较短的全通滤波器则起到了增加反射回声的密度的作用。在不同的滤波器中采用不同的延时可以使回声密度加大,并产生典型的具有早期反射和后期反射声的脉冲响应。通过将梳状滤波器的延时取得不规则,各个滤波器的频谱的峰谷不重叠,又避免了由于梳状滤波频谱不平坦造成的金属染色效应。

C1~C4为梳状滤波器,其延时时间取29.23ms, 37.67ms, 41.49ms, 44.31.ms
A1~A2为全通滤波器,延时取5ms, 1.7ms, 反馈增益取0.7, 0.7.
其频率响应如下


根据“Natural Sounding Artificial Reverberation”原文,混响时间与延时和衰减系数的关系为:T60=3*Td / (-log(a)).
混响时间定义为衰减60db的时间,Td为延时时间,a为衰减系数。

V 房间的体积,单位为立方米
S 房间的总表面积,单位为平方米
a为墙壁的吸声系数,那么则有(1-a)部分的声能被反射回来,并作用于下一次反射,且每一次都有a部分声能被吸收
转载:reverb的更多相关文章
- VLC命令参数(转载)
转载自: http://blog.csdn.net/bytxl/article/details/6613449 http://www.cnblogs.com/MikeZhang/archive/201 ...
- Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)
作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...
- RTP与RTCP协议介绍(转载)
RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...
- 《Walking the callstack(转载)》
本文转载自:https://www.codeproject.com/articles/11132/walking-the-callstack Download demo project with so ...
- [转载]MVVM模式原理分析及实践
没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...
- [转载]:STM32为什么必须先配置时钟再配置GPIO
转载来源 :http://blog.csdn.net/fushiqianxun/article/details/7926442 [原创]:我来添两句,就是很多同学(包括我)之前搞低端单片机,到了stm ...
- [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作
从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“ ...
- TCP同步与异步,长连接与短连接【转载】
原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896 这是今天看到的一篇讲到T ...
- 在CentOS 7/6.5/6.4 中安装Java JDK 8(转载)
转载在CentOS 7/6.5/6.4 中安装Java JDK 8 首先,在你的服务器上运行一下更新. yum update 然后,在您的系统上搜索,任何版本的已安装的JDK组件. rpm -qa | ...
随机推荐
- 2020牛客寒假算法基础集训营4-D子段异或
思路 CODE #include <bits/stdc++.h> #define dbg(x) cout << #x << "=" <&l ...
- 使用ResXmanager实现多语言[转]
1 多國語系 - 使用RESXMANAGER管理資源檔 1.1 前言 在實作多國語系網站時,針對靜態文字多會使用資源檔(Resource)來對應出各語系所需顯示的內容.由於資源檔可能會依照特定結構放式 ...
- 【你不知道的javaScript 上卷 笔记4】javaScript 中闭包的一些运用
什么是闭包 闭包是javaScript语言的一种特性,在 javaScript 中以函数作为承接单元.当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行. fun ...
- centos8 常用软件
防火墙 GUI版 https://blog.csdn.net/qq_36492368/article/details/80432259 dnf install -y firewall-config d ...
- 安装 centos8.1
阿里云镜像下载链接 http://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/ 选择 CentOS-8.1.1911-x86_64-dvd1.iso ...
- hadoop 部署在centos 7 上
一.准备工作 (文章写于 2019-6) 根据官方文档而来,请注意时间,官方可能有更新,以官方文档为准 1. 配置网站参考: http://hadoop.apache.org/docs/r1.0.4 ...
- spring项目启动报错
个人博客 地址:http://www.wenhaofan.com/article/20180921134534 错误信息 ERROR [localhost-startStop-1] - Context ...
- 题解 AT859 【元素の系統名】
题目传送门. 介绍一种使用string字符串的方法. \(string\)是\(C++\).\(java\).\(VB\)等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型. \(C++\)标 ...
- react 实现圆环进度条
import React, { useState, useEffect } from "react" import { css } from "emotion" ...
- mysql中循环插入数据
循环插入1w条数据 表结构: mysql> desc time_table; +-------+-----------+------+-----+-------------------+---- ...