可以理解为声音从右边喇叭经过n time step 移动到 左边的扬声器。
我们假定LR 扬声器的夹角为2*,我们通过控制L R 扬声器的增益()进行具体的声像控制
对应扫描角度
X 为单声道的声音片段
单声道转立体声音方法
- % matpan.m
- % script based on DAFZ p 140 to
- % perform matrix based panning of mono sound to stereo
-
- close all;
- clear all;
-
- % read the sample waveform
- filename='acoustic.wav';
- [monox,Fs] = audioread(filename);
-
- initial_angle = -40; %in degrees
- final_angle = 40; %in degrees
- segments = 32;
- angle_increment = (initial_angle - final_angle)/segments * pi / 180;
- % in radians
- lenseg = floor(length(monox)/segments) - 1;
- pointer = 1;
- angle = initial_angle * pi / 180; %in radians
-
- y=[[];[]];
-
- for i=1:segments
- A =[cos(angle), sin(angle); -sin(angle), cos(angle)];
- stereox = [monox(pointer:pointer+lenseg)'; monox(pointer:pointer+lenseg)'];
- y = [y, A * stereox];
- angle = angle + angle_increment; pointer = pointer + lenseg;
- end;
-
-
- % write output
- audiowrite('out_stereopan.wav',y',Fs);
- figure(1);
- hold on
- subplot(2,1,1);
- plot(y(1,:));
- title('Stereo Panned Signal Channel 1 (L)');
- subplot(2,1,2);
- plot(y(2,:));
- title('Stereo Panned Signal Channel 2 (R)');
在一个空间内经过多次反射,到达人耳。通常反射声会比直达声稍微晚一些(S=V*t),声速基本相同,反射路径决定具体的反射延迟;同时经过多次反射,反射声能量得到衰减。
Delay | Reverb |
---|---|
到达发射的速率一致 | 紧跟随直达声,房间的大小、尺寸决定混响的形状。发射速率随机且不固定 |
无反射 | 漫反射 |
Moorer'sReverberator 的改进
a是抽头延迟线用于模拟早期反射声
b.是梳状滤波器
1. 使用不同延迟长度的并行梳状滤波来模拟房间不同的反射声。
2.使用全通滤波器改善群延迟,增加回声密度
3.加入低通滤波器使高频衰减。频有更短的混响时间
通常混响是房间的混响与输入信号的卷积,由于目标响应的要求,通常数百个抽头的滤波器参数
所以通常 做时域卷积比较麻烦,所以一般做输入信号 与房间混响 分别做FFT ,然后相乘,等价于时域的卷积。
如何获得房间的混响呢?最简单的方法如下:
1.在房间里录制一段短时间的声音(拍手、击鼓等)
2.也可以通过软件模拟的方法
3.通常冲击响应图如下所示: