怎么解决相位抵消_【录音教程】如何防止话筒拾音的声学相位抵消

设想一下你以单声道的模式为一个吉他歌手做扩声,一支

人 声听起来比较古怪,有点“空”,同时有滤波器之类的效果声。为什么会这样?主唱话筒拾取歌手的演唱,同时拾取箱琴的话筒也串入了歌手的声音(见图1)。吉 他话筒离主唱话筒的距离大概有一英尺。因此,吉他话筒中拾取的人声相对于主唱话筒有一定的延时。所以,有两个“人声”混合在一起,一个是直接声,一个是含 有延时的声音。

23435b6ec90e79a0f2e47d2149973b3a.gif

图1

当两支话筒的声音混合在一起,等电平延时信号的中心频率将抵消。从频谱上看,在两个信号频率重合的地方会出现连续的凹陷,这里就是声音抵消频率。这种现象称作“梳状滤波器效应”,因为从频谱上看象是朝下的梳齿。

一般来说,如果两支话筒以不同的距离拾取了同一个声源,而且它们的信号被混合到一个通道,就可能出现相位抵消。频谱上凹陷的位置,是声波中心频率反相的结果。声音听起来像是加了少量的柔软的flanging效果。

事实上,我们分析一下flanger效果的原理就知道其中的道理。Flanger效果是通过一个0到20毫秒之间自动扫描的数字延时产生的,flanger效果就是“梳状滤波器效应”,在软件的频谱上看是一个上下滑动的滤波器。

3:1原则

为了减少两支话筒之间的相位抵消,我们必须遵守话筒摆位的3:1原则:话筒之间的距离不少于单个话筒与声源距离的3倍(见图2)。例如,两支话筒离声源的距离都是4英寸,那么话筒之间的距离至少是12英寸才可以避免相位抵消。

23435b6ec90e79a0f2e47d2149973b3a.gif

图2

3:1原则是怎么被定义的?它是由下面这些事实决定的:

当你将一个延时信号等电平的与直接声混合,将会产生一个严重的梳状滤波器效应。但是当你将直接声和延时信号按不同的电平来混合,梳状滤波器效应就会减小。

23435b6ec90e79a0f2e47d2149973b3a.gif

一支话筒拾取的干净的声音,

23435b6ec90e79a0f2e47d2149973b3a.gif

我对下面的通道加了5毫秒的延时,模拟两支话筒不同距离拾音时产生的梳状滤波器效应。

一 般来说,当延时信号低于直接信号9dB的时候,梳状滤波器效应大概在+/- 1 dB左右,几乎听不出来。(穿插我以前的研究成果:在一次

23435b6ec90e79a0f2e47d2149973b3a.gif

对延时信号通道衰减9dB,梳妆滤波器效应变的不明显。

我们是如何确定那个远处话筒拾取的延时信号,低于近距离拾音话筒9dB?只要两支话筒符合3:1原则,根据反平方定律,当距离增加到三倍的时候电平衰减9.54 dB。(这里有个条件,两支话筒的增益和灵敏度完全一样。)

所以3:1原则保证了远处话筒的拾取的延时电平低于9 dB,因此混合信号的梳状滤波在+/- 1 dB或更低,如果话筒的摆位按照4:1以上的比例声音会更好。3:1原则只是避免容易被听见的梳状滤波器效应的最低标准。

设 想一下下面的这种情况,主唱话筒近距离拾音,歌手的声音非常大,远处话筒拾取吉他,但吉他的声音很小。话筒虽然按照3:1原则摆放,但是你不得不增大吉他 话筒的增益,因为吉他的声音太小。如果这样,你可能就破坏了9 dB的电平标准,因为吉他话筒的增益太高,歌手演唱的声音很大。

这个时候就不光是3:1摆位原则可以解决的了。理想情况下,两支话筒拾取同一乐器的电平低于9 dB可以得到不错的音质。但9 dB只是最低要求,不是正好达到9 dB就可以获得好的效果。

这里有一些避免两支话筒之间相位抵消的技巧

-近距离拾音,利用EQ衰减过度的低频。

-将乐器之间距离拉开。

-利用拾音器代替话筒。

-对主唱话筒做1毫秒的延时。主唱话筒和吉他话筒拾取的信号,在时间上就对位了。

-使用指向性话筒,一支向上,一支向下。例如,主唱话筒从下往上,吉他话筒从上往下。-如果使用两支心型指向话筒,方向相反,两支话筒之间的距离在低于3:1原则的情况下,还是可以得到不错的音质。

另外一些防止相位抵消的技巧:不要用两支话筒拾取一个声源。例如,只用一个话筒拾取演讲者的语言。在某些情况下,如果你必须使用两支话筒混合到一个通道,请将两支话筒的话筒头靠在一起。通过这样的方法,两支话筒之间没有延时,也就自然不会出现梳状滤波器效应。

一些例外的情况

什么情况下可以用两支话筒以不同的距离拾取同一声源?在立体声录音的时候。这时,你得到的不是相位抵消,是声像。乐器在音箱中的位置取决于两支话筒之间的延时,电平和你控制的声相位置。

设想将一支话筒的声相放到极左,另外一支放到极右。如果两支话筒之间的延时位0毫秒,两支话筒的电平一样,声相将在两只音箱中间。如果有0.5毫秒的延时,声相将偏离中间一半的位置。如果延时达到1.5毫秒,声相将完全偏到某一只音箱。

你即使只用一支话筒也无法防止相位抵消,想想为什么?

(Bruce Bartlett是国际顶级的话筒技术工程师/自由撰稿人,同时他也是录音师,音频杂志记者。.)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win32 ipv6 bind 10014问题

这两天实验了一下,windows xp系统下的 ipv6 udp网络通信。要在windows xp下测试ipv6,首先在命令行窗口下 执行 ipv6 install 和 net start tcpipv6 命令。 在bind本地地址时,发现没法使用 in6addr_any 这通配地址。即下面这种使用方式&a…

string 找出所有数字 index_发现规律,解决整数转罗马数字

嗨,各位!我们又准时见面了,即将迎来难得的周末时光,我们今天来一道相对简单的题目逻辑梳理的题目,原定的动态规划的常见题型我们放在周末进行更新。话不多说,我们先看题目: 01 . 题目罗马数字包…

ASP.NET MVC的路由

好久没写博文了,感觉最近好像少了点动力。唉!这回就看看这个MVC的路由。 说这个路由机制其实不是MVC里面特有的,ASP.NET里面本身就有的,只不过在WebForm里面一般比较少用,而在MVC里就是把原本的路由扩展了。原本对不知…

win32 ipv6 sendto recvfrom

1. sendto 在windows xp下进行ipv6的udp网络通信时,目标地址应该像如下方式构造 addrinfo hins, *res; memset(&hins, 0, sizeof(hins)); hins.ai_family AF_INET6; hins.ai_socktype SOCK_DGRAM; hins.ai_protocal IPPROTO_UDP; hins.ai_flags AI_NUERICH…

vscode python环境配置_用VScode配置Python开发环境

前言VScode是一个相当优秀的IDE,具备开源、跨平台、模块化、插件丰富、启动时间快、颜值高、可高度定制等等优秀的特质,不愧是微软爸爸的私生子。所以用VScode来编写Python,也是相当的好用的。所以,今天我们就来讲讲,怎…

java情书_Java情书已写好,就差妹子了!

我是Java程序员我用我的方式表达对你的爱!我能抽象出整个世界...但是我却不能抽象出你...你肯定是一个单例,因为你是那样的独一无二...所以我的世界并不完整...我可以重载甚至覆盖这个世界里的任何一种方法...但是却不能覆盖对你的思念...也许命中注定了…

JS中的正则表达式小小的技巧---TEST方法的使用

TEST 方法 返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。 rgexp.test(str) 参数 rgexp 必选项。包含正则表达式模式或可用标志的正则表达式对象。 str 必选项。要在其上测试查找的字符串。 说明 test 方法检查在字符串中是否存在一个模式&#xff0c…

windows下手动配置ipv6地址

在XP,2003等早期版本中,ipv6地址在“网络连接”的属性配置里是无法手工配置的,只能使用netsh配置。配置方法如下:首先,安装IPV6协议,ipv6 install 第二步,查看当前使用的本地连接信息: 如上图&a…

python10的因数_十五道Python小案例,学会这些,Python基础已过关!

十五道Python的小案例,不知道各位都会了多少!一、猜数字1到4能组成多少个互不相同且不重复数字的三位数?分别是?分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。程序源代…

java 幽灵引用_Java 幽灵引用的作用

原标题:Java 幽灵引用的作用来源:imzoer,blog.csdn.net/imzoer/article/details/8044900找实习的时候,面试大摩,就遇到了这个问题,当时真不该跟面试官交流这个内容的。垃圾收集过程中,对象的可触…

unique_ptr使用简介

我们知道auto_ptr通过复制构造或者通过赋值后,原来的auto_ptr对象就报废了.所有权转移到新的对象中去了.而通过shared_ptr可以让多个智能指针对象同时拥有某一块内存的访问权.但假如我们不希望多个内存块被多个智能指针对象共享,同时又不会像auto_ptr那样不知不觉的就让原来的a…

python访问共享文件夹 exist false_python os.path.exists()对于存在的nfs挂载目录文件失败...

我基本上有一个网站的网站服务器,另一个只存储文件.文件服务器通过挂载其中一个目录连接到主文件服务器.该网站运行Django所以我主要处理python.无论如何,我似乎遇到了一些问题,即文件被报告为不存在,即使它们实际存在.基本上当我打电话时filepath /path/to/file/on/nfs/share…

什么是CouchDB?

※本文对CouchDB的解释是来自Apache CouchDB的官网的译文,如果有什么问题,请指正。 1.CouchDB简介 CouchDB是一种利用JSON文件,javascript作为MapReduce查询,以及常规HTTP作为API的一种数据库系统。 2.CouchDB,一个为W…

java assembly 打包_maven 使用assembly 进行打包的方法

1. pom 中添加assembly 插件要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示:${project.artifactId}src/main/javasrc/main/resourcestrue**/*.xml**/*.properties${profile.dir}trueorg.apache.maven.…

rt5350 中断处理分析

1. arch/mips/kernel/genex.S j plat_irq_dispatch 2. arch/mips/rt2880/irq.c plat_irq_dispatch rt2880_irqdispatch do_IRQ do_IRQ定义在 include/asm-mips/irq.h 这个头文件中,asm-mips这个目录链接到asm这里,所以在 arch/mips/rt2880/ir…

python json数据格式数组内元素递增赋值_利用Python实现JSON格式数据的编码与解码操作...

导读JSON (全称:JavaScript Object Notation )是一种轻量级的数据交换格式,所谓的轻量级,是与 XML 数据结构相比而言的,在描述相同的数据下,JSON 所需的字符比XML 的要少,这就意味着相同意义的数据&#xf…

java注解中可使用对象_Java注解(二):实战 - 直接使用对象列表生成报表...

通过对Java注解(一):介绍,思想及优点学习了解,相信大家对Java注解有一定程度的了解,本篇文章将实战项目中的应用来加深对Java注解的了解。本实例实现根据指定字段的JavaBean,生成对应列的报表。使用Java注解就是方便实现JavaBean与…

ASP.NET WebForm中使用WebApi

添加webapi.dll 可现在添加。 在WebForm使用WebApi需要在全局文件里配置路由。 using System.Web.Routing;protected void Application_Start(object sender, EventArgs e){RegisterRoutes(RouteTable.Routes);}public static void RegisterRoutes(RouteCollection routes){//C…

rt5350 中断初始化

linux 下的中断初始化,实际就是对 irq_desc 这个结构体进行初始化,其中最关键莫过于 irq_flow_handler_t handle_irq 中断处理函数 struct irqaction *action 用户自己设置的处理函数链表,由hand…

VS2010安装异常中断后无法安装的解决方法(安装时发生严重错误)

最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看。 之前开发环境:ArcGIS9.3,ArcEngine9.3,Oracle10g,A…