您的位置:首页 > 其它

两个同步音响是否可以相互消音呢?

2015-09-21 14:34 603 查看
前一阵已经实现了两个Pi连接两个音响,并且使用物联网协议进行同步,具体怎么实现的以后的博客会补上



今天先来讨论一下,如果两个同步音响播放相位反向的声音时,会不会产生消音的效果?

首先,用MathLab实现两个相位相反的单频波,具体如下:

for n = 1 : 999

d5(n) = sin(0.5906*n) + sin(1.0245*n);

end;

sound(d5, 8192)

d6=d5/2; %avoid to be clipped

wavwrite(d6,8192,16,'d5.wav');

那么,我们得到了单频波"d5.wav"。

接下来就要在Pi上试着播放了,我们用的ALSA播放,然而发现问题:
aplay: set_params:1087: Channels count non available
看到channels的提示,猜测可能由于我用mathlab输出的是单声道,于是我们想办法把她转成立体声,使用:
arecord
-f S16_LE -c 2 -r 44100 -d 20 test.wav

其中"-c 2"就是转声道的关键。
还有一种方法就是使用如下方法输出双声道:

正弦波:

t=(0:799999)'/8000;
left=0.99*sin(500*2*pi*t);
right=0.99*sin(500*2*pi*t);
wavwrite([left right],'noiseup.wav');
余弦波:

t=(0:799999)'/8000;
left=0.99*cos(500*2*pi*t);
right=0.99*cos(500*2*pi*t);
wavwrite([left right],'noisedown.wav')
那么,我们得到了两个相位相反的单频波:noiseup.wav和noisedown.wav。

接着用两个同步音响播放,然而。。。并没有达到理想的消音效果。。。

只是会发生声波的干涉,根据地域不同,有些地方确实声音减弱了,但有些地方甚至增强了!

第一篇博客就这样啦,希望帮到和我遇到同样问题的朋友。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: