Computer emulation of reverberation using MATLAB or Python

Abstract: Reverberation, in psychoacoustics and acoustics, is a persistence of sound after the sound is produced1. It is a common sense that reverberation in the nature is usually accompanyed with other forms of background noise. In order to academically analyse this phenomenon better, Methods of generating reverberation by computer techniques are explored in this article.

摘要: 在声学和心理声学领域,混响被定义为室内声源停止发声后仍然存在的声延续现象。由于在自然界中混杂了各种背景噪音,这对于混响的单纯性研究造成很大困难。为了更加方便研究,本文探究了电脑产生声音信号的方法,然后和冲激响应函数做卷积来模拟出混响的效果。

The remainder of this paper is organized as follows. Section I introduces the background knowledge underpinning this article. Section II proposes the theories that support our evaluation. Section III reports the implementation process of emulation of reverberation. Section IV tests our experimental results and conclude this article。

I. Prerequisites

数学基础

这里我们先来复习一下卷积运算的一些内容。假设有两个离散序列u和v,那么我们在第k个位置求卷积(convulsion)的公式就可以写成:

其中,j和k+1-j都要保证有意义。
$$
j_{min} - 1 \leq k \leq j_{max} + 1
$$

物理基础

声音是一种在空气中传播的机械波。波在遇到障碍的时候,会同时发生入射,反射和衍射。我们考虑的是声波遇到墙面反射回接收器,这就是混响的产生。

编程基础

MATLAB

子图构图函数subplot,绘制柱状图函数stem。

Python

比如,下面是一段MATLAB代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
x = [1, 2, 0, -1, 3, 2];
ix = -2:3;
h = [1, -1, 1];
ih = 0:2;

iy = ix(1) - 1 : ix( length(ix) ) + 1;
y = conv(x, h);

subplot(2, 2, 1),
stem(ix, x, 'fill', 'r', 'LineWidth', 2), xlabel('i_x'), ylabel('x'), grid on;
subplot(2, 2, 2),
stem(ih, h, 'fill', 'b', 'LineWidth', 2), xlabel('i_h'), ylabel('h'), grid on;
subplot(2, 2, 3:4),
stem(iy, y, 'fill', 'm', 'LineWidth', 2), xlabel('i_y'), ylabel('y'), grid on;

在泛函分析中,卷积是通过两个函数f和g生成第三个函数的数学运算。f成为表征函数,g成为乘积函数。
在信号处理中,任何一个系统的输出都可以看成是输入信号和系统冲击响应的卷积。

II. Theorems underlying computer emulation

reverberation time
We have an empirical equation from Prof. W.C.:

III. Simple experiments

IV. Results & Conclusions

heap-overflow Algebra | 共轭转置与 Hermite 矩阵

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×