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的更多相关文章

  1. VLC命令参数(转载)

    转载自: http://blog.csdn.net/bytxl/article/details/6613449 http://www.cnblogs.com/MikeZhang/archive/201 ...

  2. Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)

    作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...

  3. RTP与RTCP协议介绍(转载)

    RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...

  4. 《Walking the callstack(转载)》

    本文转载自:https://www.codeproject.com/articles/11132/walking-the-callstack Download demo project with so ...

  5. [转载]MVVM模式原理分析及实践

    没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...

  6. [转载]:STM32为什么必须先配置时钟再配置GPIO

    转载来源 :http://blog.csdn.net/fushiqianxun/article/details/7926442 [原创]:我来添两句,就是很多同学(包括我)之前搞低端单片机,到了stm ...

  7. [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作

    从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“ ...

  8. TCP同步与异步,长连接与短连接【转载】

    原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896   这是今天看到的一篇讲到T ...

  9. 在CentOS 7/6.5/6.4 中安装Java JDK 8(转载)

    转载在CentOS 7/6.5/6.4 中安装Java JDK 8 首先,在你的服务器上运行一下更新. yum update 然后,在您的系统上搜索,任何版本的已安装的JDK组件. rpm -qa | ...

随机推荐

  1. 选课系统项目_python

    一.功能简要 基本实现以下功能,但是有部分地方由于时间关系并未写,而且并未做细微的完善,大致功能完成.角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , pyt ...

  2. 04、extern引用全局变量

    这里强调一点就是关extern的声明: extern在声明中最主要的作用就是告诉编译器别的文件引用了全局变量XXXX. 举例: 有一个工程名字叫 Project1. Project1下面有两个.cpp ...

  3. python3中的参数*args

      python的传参是如何实现的 # 将未拆包的数据进行传参 def run(a,*args): #第一个参数传给了a print(a) # args是一个元组,里面是2和3两个参数 print(a ...

  4. 曼孚科技:AI自然语言处理(NLP)领域常用的16个术语

    ​自然语言处理(NLP)是人工智能领域一个十分重要的研究方向.NLP研究的是实现人与计算机之间用自然语言进行有效沟通的各种理论与方法. 本文整理了NLP领域常用的16个术语,希望可以帮助大家更好地理解 ...

  5. XSS漏洞原理

    注入型漏洞的本质都是服务端分不清用户输入的内容是数据还是指令代码,从而造成用户输入恶意代码传到服务端执行. 00x01js执行 Js是浏览器执行的前端语言,用户在存在xss漏洞的站点url后者能输入数 ...

  6. 【Python】表白程序

     程序链接:https://www.lanzous.com/i8xj5mh # 打包操作 # 安装pyinstaller # cmd输入 pip install pyinstaller # shift ...

  7. 部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效

    部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效: https://blog.csdn.net/yilese/article/details/71479908

  8. Centos7更改网卡名称Eth0

    标签: Centos7更改网卡名称 2016-12-06 21:55 8737人阅读 评论(1) 收藏 举报  分类: linux(6)  作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不 ...

  9. 09 部署nginx web服务器(转发uwsgi请求)

    1 配置nginx转发 $ whereis nginx $ cd /usr/local/nginx/conf $ vi nginx.conf 注释掉原来的html请求,增加uwsgi请求. locat ...

  10. 理解JWT(JSON Web Token)认证

    理解JWT(JSON Web Token)认证 最近想做个小程序,需要用到授权认证流程.以前项目都是用的 OAuth2 认证,但是Sanic 使用OAuth2 不太方便,就想试一下 JWT 的认证方式 ...