一种基于fpga的5.1声道虚拟声重放方法以及装置的制作方法

文档序号:7766483阅读:367来源:国知局
专利名称:一种基于fpga的5.1声道虚拟声重放方法以及装置的制作方法
技术领域
本发明涉及一种声场声像处理的实现方式及装置,即一种基于FPGA(现场可编辑门阵列)的5.1声道虚拟声重放方法以及装置,该方法及装置能够采用幅度随机和延迟随机的方法进行环绕声去相关处理,并采用FPGA(Field Programmable Gate Array)作为实现虚拟环绕声算法的平台,并在单片FPGA上实现。
其中,对于消除头中定位效应,杜比耳机系统提出模拟左、右扬声器、中心扬声器和左、右环绕声扬声器到双耳的时域脉冲响应,将上述的信号处理后再用耳机重发,就可以同时将5.1通路系统的五个扬声器虚拟出来。但是以上处理方式仅考虑了扬声器到双耳的直达声,没有考虑听音室的反射声,因此导致了实际的环绕声重发时,听音室的反射声会破坏环绕声信号的原声场的声音空间信息;如果完全模拟听音室的反射声,则需要大量的信号频率采集点,这在现有的信号处理中,是难以实现的,实际中都模拟听音室前几次反射声,这种模拟也会影响重发的效果。
因此,有人提出了新的处理方式,针对要达到的5.1通路环绕声信号处理的要求,结合实际应用的情况,在处理左、右通路信号、中心通路信号的同时,重点处理好左、右环绕声信号(该信号一般包含有原声场的反射声信息),将左、右环绕声进行去相关处理后,再用一系列的虚拟扬声器重发,并提出了专利申请(专利申请号为02134416.7,发明名称为一种5.1通路环绕声的耳机重发的信号处理方法;专利申请号为02134415.9,发明名称为两扬声器虚拟5.1通路环绕声的信号处理方法)。
问题在于上述的方式在处理左、右环绕声信号是直接采用延时的方法加入混响声时,得到的混响声会有梳状频响(在延时时间对应的频率的半波长的奇数倍时),不能完全达到处理效果。
本发明的另一个目的是通过FPGA(Field Programmable GateArrays现场可编程门阵列)实现上述的功能,同时不需要外接存储器件,外接设备少。
本发明是这样实现的对于环绕声道的采用延时的方法加入混响,其特征在于采用离散的随机延时和幅度随机来减小原来环绕声道和新合成的环绕声道的相关,得到更好的混响效果。
延时随机,即对声音信号的左右环绕声进行延迟处理的模块,其输入的声音信号是5.1通路的声音信号,延时以5ms为基准,随机抖动,在±0.25ms的范围内按照均匀分布随机变化;也可以采用11ms为基准的延时,随机抖动,在±0.5ms范围内按照均匀分布随机变化。
幅度随机,即上述的模块,延时以5ms为基准时,幅度加权以0.5为基准,范围在0.25-0.75之间变化,随机抖动,在±0.25的范围内按照类似高斯分布随机变化,由于实现准确的高斯分布比较困难,所以采用类似高斯分布的分布方式,使得幅度加权为0.5的概率最大,越偏离0.5,则出现概率越小;延时以11ms为基准时,幅度加权在0-0.5之间变化,同样采取上述的方式使得幅度加权是以0.25为均值在0-0.5的范围内均匀分布的随机变量。
比较好的方式是可以同时采用上述的两个模块,同时实现以5ms为基准的延时和以11ms为基准的延时,以及相应的幅度加权。
总之,对于幅度随机和延时随机的基准的取点,一个或者多个点都是可行的,取点越多,效果越好。
为了表示5.1通路的声音信号,用L表示左声道,R表示右声道,Ls表示左环绕声声道,Rs表示右环绕声声道,C为中央声道,LFE为低频效果声道(如果输入的声音信号是双声道立体声,则中央声道和低频效果声道无信号输入;左、右环绕声声道分别输入立体声的左右声道声音信号),具体的实现方式是A将同一采样时刻的5.1通路声音信号的中央通路(C)的采样值与低音效果通道(LFE)的采样值相加;B将上述的相加值卷积或者相乘,使之扩大1.414倍,然后再输入到左声道中;C左、右声道的声音信号经过MS变换;D变换后的左声道信号与B步输入的信号相加,再进行Sigma_1卷积;E变换后的右声道信号经过Sigma_r卷积;F左、右环绕声声道同时设置三个对声音信号的左右环绕声进行延迟处理的模块,并分别对声音信号进行MS变换;其中两个(分别对应左、右环绕声声道)对5.1通路的声音信号不进行任何处理,当输入的声音信号为双声道立体声声音信号时,则进行延迟去相关的处理;另两个(分别对应左、右环绕声声道)对输入的5.1通路的声音信号进行延迟去相关处理,延迟基准时间为5ms;另外的两个(分别对应左、右环绕声声道)则对输入的5.1通路的声音信号进行延迟去相关处理,延迟基准时间为11ms;G经过左右环绕声进行延迟处理的模块没有进行延迟处理的5.1通路的声音信号,左环绕声声道的信号进行Delta_11卷积,右环绕声声道的信号进行Delta_r1卷积;
H经过左右环绕声进行延迟处理的模块进行基准时间为5ms的延迟处理的声音信号,左环绕声声道的信号进行Delta_12卷积,右环绕声声道的信号进行Delta_r2卷积;I经过左右环绕声进行延迟处理的模块进行基准时间为11ms的延迟处理的声音信号,左环绕声声道的信号进行Delta_13卷积,右环绕声声道的信号进行Delta_r3卷积;J卷积后的左、右环绕声声道信号分别相加,并对应输入到左、右声道中;K卷积后相加的左环绕声声道信号与卷积后的左声道信号相加;同时,卷积后相加的右环绕声声道信号与卷积后的右声道信号相加;L上述K步相加的信号经过MS变换,输入到输出均衡模块;M均衡模块对输入的信号进行音色均衡处理,并通过左右声道重发。
MS变换,即输入信号为上下两路,输出信号也是上下两路,其中输出的上边一路信号是输入的两路信号的和,输出的下边一路是输入的上边一路减去输入的下边一路的差;输入的信号是音频采样信号,则上边的操作对每一个音频采样点进行一次。
上述的对5.1通路的声音信号左右环绕声进行延迟处理的模块,除对5.1通路的声音信号进行延迟处理外,在其它情况下,没有声音信号输入。
上述的对5.1通路的声音信号左右环绕声进行延迟处理的模块,其中对5.1通路的声音信号不进行延迟处理的模块,当输入声音信号是5.1通路的声音信号,该模块不进行任何处理,相当于直通;只对输入的双声道立体声声音信号进行延迟基准时间为5ms的延迟去相关处理。
均衡处理的均衡滤波器系数是用白噪声信号按照上述的方式进行处理,得到的信号不进行均衡处理,而是进行反向滤波得到的。
上述的方案可以参照

图1所示。图中(1)为相加,将同一采样时刻的5.1通路声音信号种的中央通路(C)的采样值与低音效果通道(LFE)的采样值相加。
(2)的符号表示相乘或卷积,旁边的单个数字表示一次乘法的乘数,符号旁边的标示符号表示进行卷积的向量。1.414表示经过该符号的数据被扩大了1.414倍,Sigma_1、Sigma_r(注1)是两个卷积向量,表示通过该符号的数据被Sigma_1、Sigma_r(注1)卷积。
(3)表示通过该卷积符号的数据被Delta_11、Delta_r1(注1)卷积。
(4)表示通过该卷积符号的数据被Delta_12、Delta_r2(注1)卷积。
(5)表示通过该卷积符号的数据被Delta_13、Delta_r3(注1)卷积。
(6)的方框表示对通过的两路数据进行MS变换,输入信号为上下两路,输出信号也为上下两路。其中输出的上边一路信号是输入的两路信号的和,输出的下边一路是输入的上边一路减去输入的下边一路的差。输入的信号是音频采样信号,则上边的操作对每一个音频采样点进行一次。
(7)D11、D12是对声音信号的左右环绕声进行延迟处理的模块。若输入声音信号是5.1通路的声音信号,则该模块不进行任何处理,相当于直通。当输入的声音信号是双声道立体声声音信号时,则进行延迟去相关的处理,延迟基准时间为5ms。
(8)D21、D22是对声音信号的左右环绕声进行延迟处理的模块。若输入的声音信号是5.1通路的声音信号,则这两个模块进行延迟去相关处理,延迟基准时间为5ms。其它的情况下,这两个通路没有声音信号输入。
(9)D31、D32是对声音信号的左右环绕声进行延迟处理的模块。若输入的声音信号是5.1通路的声音信号,则这两个模块进行延迟去相关处理,延迟基准时间为11ms。其它输入信号的情况下,该通路无声音信号输入。
(10)是输出的均衡模块,对虚拟声像处理后的声音信号进行音色均衡。均衡滤波器的系数是用如下方式得到的,现将输入声音信号用白噪声代替,按图1的结构(不包含均衡)处理后,得到的信号进行反向滤波,得到均衡滤波器的参数。
(11)所标示的是5.1通路声音信号,L为左声道,R为右声道,Ls为左环绕声声道,Rs为右环绕声声道,C为中央声道,LFE为低频效果声道。如果输入的声音信号是双声道立体声,则中央声道和低频效果声道将无信号输入;左、右环绕声声道分别输入立体声的左右声道声音信号。
(12)L’和R’为系统处理的输出结果,如果处理的算法是耳机虚拟环绕声处理算法,则该信号经耳机功放放大后直接由耳机重放;如果处理算法是两扬声器虚拟5.1通路的环绕声处理算法,则该信号经功率放大后由一对小角度的扬声器重放。
注1Sigma_1,Sigma_r,Delta_11,Delta_r1,Delta_12,Delta_r2,Delta_13和Delta_r3表示代表不同角度方向信息的人头传输函数。有关人头传输函数和算法中应用的角度,现有技术已经有相关的论述,在本发明所提及的两个专利申请中也有描述,在此不在进行描述。
对于延时随机D21、D22的延时以5ms为基准,随机抖动,在±0.25ms的范围内按照均匀分布随机变化。D31、D32的延时以11ms为基准,随机抖动,在±0.5ms的范围内按照均匀分布随机变化。
对于幅度随机D21、D22的幅度加权(范围在0.25~0.75之间变化)以0.5为基准,随机抖动,在±0.25的范围内按照类似高斯分布随机变化,由于实现准确的高斯分布比较困难,所以这里使用了一个类似高斯分布的分布方式,使得幅度加权为0.5的概率最大,越偏离0.5则出现概率约小。D31、D32的幅度加权值在0~0.5之间变化,是以0.25为均值在
范围内均匀分布的随机变量。
本发明的一个目的是采用了EPGA(现场可编辑门阵列),FPGA器件主要应用在通信、图象采集、自动控制等领域,由于行业的不同和其它条件的限制,一直无法应用在声音信号的处理过程中。
本发明的装置包括控制信号模块、位时钟、左右时钟、数据接收模块、Ls、Rs延迟信号存储模块、去相关地址生成模块、FIR滤波器系数存储器、处理模块、加法器、数据输出模块,其中控制信号模块,包括两个部分处理方式控制部分和处理同步控制部分,处理方式控制部分的模块采样外部的控制信号,将它们存储在控制信号寄存器中,此模块根据控制信号寄存器的值解码,决定处理的采样率、信号类型、处理方式选择、系统复位并选择适合的系数。控制信号由系统所服务的声频播放系统提供,且此模块在每个LRCLK周期查询一次外部控制信号寄存器状态,并根据控制信号的状态决定系统的复位、参数加载、处理方式更改等;处理同步控制模块负责系统处理同步控制,它包括加法计数器、计数时钟,上升沿计数;左右时钟,又称为采样时钟,它的频率等于声音信号的采样频率;数据接收模块,将多路I2S信号通过串并变换、锁存、MS变换后,调整格式后送入处理模块;串并变换由串入并出移位寄存器实现,CLK作为移位寄存器的移位时钟,上升沿触发;锁存器,由寄存器实现;MS变换模块由位加法器和位减法器组成,如果LRCLK为低,三个移位寄存器中的输入数据为左声道、左环绕和中央声道的声音信号,否则三个移位寄存器中的输入数据为右声道、右环绕和低音效果通道的声音信号;Ls、Rs延迟信号存储模块,由基地址寄存器(addr_base),存放基地址,该地址对应的是存储空间中最新一个左右环绕声道的样点值;地址偏移寄存器,寄存器中的地址是混响延时对应的延时环绕声的地址,每个LRCLK周期,此存储模块更新一个样点,同时基地址寄存器加1,当地址寄存器中的地址所指范围超过了存储模块的存储空间,寄存器回零,同时根据基地址得出新的地址便宜寄存器值(在基地址上加固定值,如果越界,计算越界后的值),另从去相关地址生成器送来去相关地址偏移,与地址偏移和基地址相加得到延迟环绕声样点值;去相关地址生成模块,它包含的硬件有,基地址寄存器、偏移地址寄存器;基地址寄存器指向最新更新的环绕声样点,基地址寄存器在系统上电时为零,在系统开始工作后,每个LRCLK周期加1,当加到延迟信号长度的时候归零,偏移地址寄存器存放的地址偏移量,实际对应的是不同的延迟时间,这个延时时间是固定的,由信号的采样频率决定;该模块的功能也是生成一个地址偏移,此偏移在Ls、Rs延迟信号存储模块的基地址和偏移地址的基础上加上了一个随机地址,这三个地址的和所指向的地址中的环绕声信号,LS、RS的延迟信号都存放在Ls、Rs延迟信号存储模块中,就是经过随机延迟的混响声信号;随机地址的产生,采用11阶的M序列发生器和一个7位的串入并出的移位寄存器实现;当采用串行FIR滤波器实现时,M序列发生器和它后面的移位寄存器以CLK为时钟;当采用相乘累加法实现的时候,采用MCLK4为M序列产生时钟和移位寄存器移位时钟,在每个时钟的上升沿将移位寄存器的值当作有符号偏移地址送到Ls、Rs延迟信号存储模块进行求址;FIR滤波器系数存储器,该存储器中存放着多组FIR滤波器系数,每一组都是将人头传输函数经均衡加权的固定系数,对应不同的处理方式(耳机、扬声器)和两种不同的信号格式(5.1声道和双声道立体声)以及对应不同采样频率的多组滤波器系数,在系统上电的时候,缺省将5.1声道的扬声器处理方式对应地FIR系数加载到FIR滤波器组中;处理模块,采用串行FIR滤波器实现的方式。每个FIR滤波器由多个四抽头的串行滤波器组成,每个四抽头串行滤波器可以在最多24个CLK时钟周期中实现FIR滤波器的一个样点处理(一个样点值输入、一个样点值输出),每个FIR滤波器的系数是在系统上电时装载的,复位信号的出现也可以让系统重新装载FIR系数,由于滤波过程中,滤波器要同时使用这些滤波器系数,所以要将这些系数移动到滤波器系数存储的寄存器;此部分的FIR滤波器也可以采用相乘累加的方式实现,输入信号中还有MCLK,其频率是位时钟CLK频率的4倍,很多的FPGA芯片都带有DLL电路(时钟倍频电路),MCLK经两次倍频后,频率是LRCLK的1024(MCLK4)倍,采用相乘累加的方式,使用单乘法器,实现8个128长度的FIR滤波器,在采用相乘累加的方法实现的时候每个MCLK4周期进行一次乘加计算,滤波器系数不必加载,在FIR滤波器系数存储器中,每周期读出一个系数;当需要复位和改变处理方式和算法的时候,只要将系数地址指向新的系数地址即可。
数据输出模块和数据接收模块中的电路逻辑基本相反,现对取和后的两个24位的二进制数进行MS变换,然后送入锁存器(32位,高位符号扩展)在LRCLK的上升沿和下降沿各有一个加载信号,当串行移位输出寄存器的数据移位输出到最后一位的时候,在位时钟的下降沿将锁存器中的数据加载到串行移位输出寄存器(同步加载)。
普通的处理方式中,在实现虚拟声效果的时候,引入了房间混响声,使得混响效果是某个房间的重放效果,本发明实现的虚拟环绕声则不同,在实现虚拟声像的时候采用的是时间随机和幅度随机的环绕声去相关的方法,使得虚拟重放的混响声相关性很低,不会形成声像,在采用扬声器和耳机重放本发明处理后的声信号时,虚拟出的环绕声自然、真实;同类的系统大部分采用DSP实现,都比较复杂,对系统的要求比较高,本发明使用单片FPGA芯片实现,利用了FPGA中的片内RAM,不需要外接存储器件,外接设备少,采用声音信号主时钟的4倍频做为工作时钟,无需外接时钟,方便使用;本发明的应用上,只要将某个处理过程固化在FPGA中,就可以方便的向ASIC(专用集成电路)转化。
在直接采用延时的方法加入混响声时,得到的混响声会有梳状频响(在延时时间对应的频率的半波长的奇数倍时)。本发明在这里同时采用离散的随机延时和幅度的随机来去掉原来环绕声道和新合成的环绕声道的去相关,使之具有更好的输出效果。
图4为本发明实施例所采用的I2S数据格式示意图。
(3)CLK是位时钟,当采样频率为48KHz的时候,CLK为3.072MHz,当采样频率为44.1KHz的时候,CLK为2.8224MHz,当采样频率为32KHz的时候,CLK为2.048MHz,对齐方式见图4所示。
(4)LRCLK为左右时钟,又称为采样时钟,它的频率等于声音信号的采样频率,有32KHz、44.1KHz和48KHz等。采样时钟的对齐方式见图4所示。
(5)控制信号模块,包括两个部分处理方式控制模块和处理同步控制模块。处理方式控制模块采样外部的控制信号,将它们存储在控制信号寄存器中。此模块根据控制信号寄存器的值解码,决定处理的采样率、信号类型、处理方式选择、系统复位并选择适合的系数。控制信号由系统所服务的声频播放系统提供;此模块在每个LRCLK周期查询一次外部控制信号寄存器状态,并根据控制信号的状态决定系统的复位、参数加载、处理方式更改等。
当解码为复位信号(也可以设置专门的复位信号,本发明所列举的实施方式没有专门的复位信号,是在控制信号寄存器中的值发生改变的时候,就产生复位信号)时,此模块产生复位信号,复位为低电平时,FPGA中参与工作的所有寄存器、锁存器、和存储器被复位到上电状态。
而且,此模块将解码得到的信号采样频率信号送到,(7)(8)中,由他们计算延时信号的偏移地址。同时与采样率标志寄存器(2bit,标志正在处理的信号的采样频率,b0132KHz;b1044.1KHz;b1148KHz,初始值为48KHz)中的值比较,若不同,先复位系统,暂停处理,重新加载滤波器系数。然后在LRCLK的下降沿重新开始处理。Con3 采样率 标志寄存器值48KHz1144.1KHz 10(其它状态不用)上述的实施方式可以处理两种不同重放方式耳机和扬声器,这两种方式的滤波器的系数不同,如果是采用耳机重放,则控制信号种可以解码出处理方式选择信号,将他与处理方式寄存器(2bit,b10扬声器,b01耳机,b11直通)中的值比较,若不同,处理方式同上。Con3、Con2、Con1 重放方式寄存器值0 耳机011 扬声器 10010downmix 0011x直通 11上述的实施方式可以处理两种不同的格式的声音信号,为5.1声道和双声道立体声信号,在控制信号模块中,有信号格式寄存器(2bit,b015.1声道,b10双声道立体声),在控制信号中可以解码出,信源格式信息,将它与信号格式寄存器中的值比较,若不同,处理方式同上。编码方式同采样率寄存器。
处理同步控制模块负责系统处理同步控制,包括,一个5位加法计数器COUNTER5,计数时钟为CLK,上升沿计数,与LRCLK的变化沿相对应的计数器值为0。COUNTER5为b11000时,产生一个CLK时钟周期的高电平信号Lat_Sig,送入数据接收模块作为锁存器的锁存信号。
(6)数据接收模块。它将多路I2S信号通过串并变换、锁存、MS变换后,调整格式后送入处理模块。
其中,串并变换由三个32位串入并出移位寄存器(shift_1,shift_2,shift_3)实现,CLK作为移位寄存器的移位时钟,上升沿触发;锁存器(latch1,latch2,latch3),由三个24位寄存器实现,由于I2S信号中数据的有效数据编码长度一般为24bit,所以只要24bit即可。在Lat_Sig的上升沿,将移位寄存器的[31,8]位锁存在锁存器的[23,0];
MS变换模块由两个24位加法器和两个24位减法器组成。如果LRCLK为低,三个移位寄存器中的输入数据为左声道、左环绕和中央声道的声音信号,否则三个移位寄存器中的输入数据为右声道、右环绕和低音效果通道的声音信号。在COUNTER5为b11001时,如果LRCLK为低,将锁存器1和2中的数据存入24bit缓存(temp1,temp2,temp3),如果LRCLK为高电平,则有加法器和减法器分别实现左右声道和左右环绕声道的MS变换,将temp3与latch_3相加,其和乘1.414后,存入latch_3。变换结果存入四个锁存器24位(latch_L,latch_R,latch_Ls,latch_Rs),将latch_L中的数据与latch_3相加,结果存入latch_L。
对于格式调整和输出如果采用串行FIR滤波器形式实现,则应将锁存器中的数据串行移位输出,在上面的锁存器后面再加上24bit的并入串出的移位寄存器,末位补零,时钟采用CLK,在COUNTER5为b00000时加载;如果采用相乘累加的方法实现,则采用并行输出。
(7)为Ls、Rs延迟信号存储模块,共存储2*768*24=36864位。左右环绕声道各存储768点。由一个10位的基地址寄存器(addr_base),存放基地址,该地址对应的是存储空间中最新一个左右环绕声道的样点值。一个10位的地址偏移寄存器,寄存器中的地址是混响延时对应的延时环绕声的地址。每个LRCLK周期,此存储模块更新一个样点,同时基地址寄存器加1,当地址寄存器中的地址所指范围超过了存储模块的存储空间,寄存器回零。同时根据基地址得出新的地址便宜寄存器值(在基地址上加固定值,如果越界,计算越界后的值)。另从去相关地址生成器送来去相关地址偏移,与地址偏移和基地址相加得到延迟环绕声样点值。
对应不同的实施方式,此模块提供不同的输出接口。串行FIR模块在每个LRCLK周期在固定COUNTER5值(b00001)时,从存储空间读出延时环绕声样点,乘加权值(由乘法器实现)送入缓存器(buffer1,buffer2),采用与(6)中相同的硬件结构进行MS变换,在COUNTER5为b00000时将buffer1和buffer2中的数据加载到24位的并入串出移位寄存器中,移位输出;如果采用相乘累加的方法实现,则采用并行输出。
(8)去相关地址生成模块,此模块完成图一中D11、D12、D21、D22、D31、D32部分的功能。它包含的硬件有,基地址寄存器、偏移地址寄存器。
基地址寄存器指向最新更新的环绕声样点,基地址寄存器(10bit)在系统上电时为零,在系统开始工作后,每个LRCLK周期加1,当加到延迟信号长度的时候(1024)归零。两个偏移地址寄存器(10bit),存放的地址偏移量,实际对应的是不同的延迟时间,这个延时时间是固定的,由信号的采样频率决定。
当信号采样频率为48KHz时为偏移地址寄存器值分别为240和538,当采样频率为44.1KHz的时候,为220和485。
模块(8)的功能也是生成一个地址偏移,此偏移在(7)的基地址和偏移地址的基础上加上了一个随机地址,这三个地址的和所指向的地址中的环绕声信号,LS、RS的延迟信号都存放在(7)中,就是经过随机延迟的混响声信号。
随机地址的产生,采用11阶的M序列发生器和一个7位的串入并出的移位寄存器实现;当采用串行FIR滤波器实现时,M序列发生器和它后面的移位寄存器以CLK为时钟;当采用相乘累加法实现的时候,采用MCLK4为M序列产生时钟和移位寄存器移位时钟。在每个时钟的上升沿将移位寄存器的值当作有符号偏移地址送到(7)进行求址计算,若此7位的偏移地址首位为1,则地址偏移为负,首位为0则地址偏移为正。对于D21和D22,取移位寄存器的后6位为随机地址偏移,首位为符号位。
(9)为FIR滤波器系数存储器,该存储器中存放着8组FIR滤波器系数,每一组都是将人头传输函数经均衡加权的固定系数,对应不同的处理方式(耳机、扬声器)和两种不同的信号格式(5.1声道和双声道立体声)以及对应不同采样频率的8组滤波器系数。在系统上电的时候,缺省将5.1声道的扬声器处理算法对应地FIR系数加载到FIR滤波器组中。
系数组存储在FPGA的BRAM(块存储器)中,每个BRAM有4096bit,每个BRAM在单周期可以存取一个16bit值。在存储滤波器系数的时候,用FPGA的片内的BRAM实现一段连续的存储空间,滤波器系数从低端地址向高端地址顺序存储。
(10)是处理模块,图2中所示是采用串行FIR滤波器实现的方式。每个FIR滤波器由多个四抽头的串行滤波器组成,每个四抽头串行滤波器可以在最多24个CLK时钟周期中实现FIR滤波器的一个样点处理(一个样点值输入、一个样点值输出),可以得出四个采样点和四个滤波器系数的乘积和。每个FIR滤波器128阶,由32个四抽头滤波器实现。在24个时钟周期后,将32个四抽头滤波器得到的输出相加,得到128阶滤波器的输出。每个FIR滤波器的系数是在系统上电时装载的,复位信号的出现也可以让系统重新装载FIR系数,FIR滤波器系数是16bit的整数,由于滤波过程中,滤波器要同时使用这些滤波器系数,所以要将这些系数移动到滤波器系数存储的寄存器。此部分的FIR滤波器也可以采用相乘累加的方式实现。输入信号中还有MCLK,其频率是位时钟CLK频率的4倍,很多的FPGA芯片都带有DLL电路(时钟倍频电路),MCLK经两次倍频后,频率是LRCLK的1024(MCLK4)倍,采用相乘累加的方式,使用单乘法器,实现8个128长度的FIR滤波器。
在采用相乘累加的方法实现的时候,每个MCLK4周期进行一次乘加计算,滤波器系数不必加载,在(9)中,每周期读出一个系数,当需要复位和改变处理方式和算法的时候,只要将系数地址指向新的系数地址即可。
地址的产生由基地址寄存器和地址偏移寄存器中的值之和生成,生成的地址值对应着存储滤波器系数组的BRAM中特定滤波器系数值。当采用相乘累加的方法实现时,将有一个由寄存器组实现的基地址表,地址表中的值对应不同的FIR滤波器系数组的首地址,在进行处理操作时,将根据不同的外部控制信号值(见(5)),将基地址表中对应的地址加载到基地址寄存器中。地址偏移寄存器由一个增量寄存器实现,初始地址为0,寄存器值在每个MCLK4周期加1,当地址偏移寄存器增加到1024时归零。
采用乘加方式实现时输入数据的存储输入数据是经过MS变换后的滤波器输入,每个FIR滤波器(128阶)需要连续的128点的信号历史输入。它们也采用BRAM存储,需要在BRAM中存储的有四段,MS_L,MS_R,MS_Ls,MS_Rs,每段数据有128个点,在每个LRCLK周期更新一个样点,每个LRCLK周期所有样点被读出一次。读写地址都由相应的地址寄存器产生,四个基地址寄存器由增量寄存器实现,其中存放对应四段数据的最新样点地址,每个LRCLK周期加1;地址偏移寄存器,也由增量寄存器实现,每个MCLK4周期加1,当加到128时归零。
在每个MCLK4周期,乘加处理模块分别从系数地址和数据地址对应的系数存储空间和数据存储空间读出一个数据,相乘后与输出缓存中的数据相加再存入输出缓存中,每128个周期后,将输出缓存中的数据锁存到相应的锁存器,等待MS变换、对齐和输出,同时更新数据地址寄存器和系数地址寄存器中的基地址,进行下一个FIR滤波器的计算。
(11)这一部分由多个多位加法器组成,是组合逻辑,实现将同一采样时刻的5.1通路声音信号的中央通路的采样值与低音效果通道的采样值相加的功能。
(12)数据输出模块,它的电路逻辑和(6)中的基本相反,现对取和后的两个24位的二进制数进行MS变换,然后送入锁存器(32位,高位符号扩展)在LRCLK的上升沿和下降沿各有一个加载信号,当串行移位输出寄存器的数据移位输出到最后一位的时候,在位时钟的下降沿将锁存器中的数据加载到串行移位输出寄存器(同步加载)。
(13)SDOUT是处理后输出的双声道信号,也是I2S格式,左声道在前,高位在前。声音信号格式对齐(14)中的CLK的下降沿,在LRCLK为低电平时输出左声道,在LRCLK为高电平的时候输出右声道。
(14)CLK输出和LRCLK输出,是为了同步I2S信号的时钟输出。这个时钟也可以由外部时钟统一同步,就不需要这里输出了。
图3为本发明一种实施方式的结构图。对应的模块都是电路板上的部件和接口等。图中(1)为FPGA芯片,本发明采用的是Xilinx公司的XC2s200系列FPGA。该芯片供电电压为3.3V,核心工作电压2.5V,(2)PROM,串行PROM(One-Time Programmable ConfigurationPROM),Xilinx公司的配置存储器,型号是XC17S200。在系统上电时,PROM中的数据自动配置到FPGA中。
(3)JTAG接口,标准的测试和调试接口,Xilinx公司的FPGA芯片支持该接口。在PROM没有数据的时候,可以通过并行电缆-JTAG接口,向FPGA下载网表和初始化数据。主要用到的信号线是TDI,TDO,TMS,TCK。
(4)数字音频输入接口,是对待处理数据的接口。要求音频信号的数据是I2S格式,并要提供位时钟(CLK)和采样时钟(LRCLK)。本发明对音频输入接口的硬件接口形式不做要求。
(5)测试针功能是在调试的时候测试中间处理结果对于实际应用的系统,测试针没有用处。
(6)控制和应答接口,是FPGA和声播放系统通信的接口。系统提供开关信号,控制FPGA是否工作;提供人头传输函数选择信号,进行处理效果的选择;FPGA也可以输出一些状态信息,如当前处理方式、系统是否正常运行等。
(7)数字音频输出接口向扬声器重放单元输出I2S格式的数字声频信号,该信号已经经过了双扬声器虚拟重发算法处理。
(8)是FPGA处理系统的电源管理模块,为板上的用电部件提供电源。主供电电压为+5V,经TPS318(+5V-+3.3V电压调节器)得到+3.3V,+5V电压经1117(+5V-+2.5V电压调节器)得到+2.5V电压。板上器件,FPGA XC2S200需要工作电压+3.3V和+2.5V;PROM的供电电压为+3.3V;D/A变换器的工组电压是+5V;耳机功放部分的供电电压是±12V。
(9)D/A变换器,选用CS4340KS,转换一路I2S格式的数字声频信号为两路模拟信号。
(10)此功放电路专供耳机重放使用,耳机功放电路已经有很多成熟电路,也有许多专用芯片,这里不是本发明的核心,不详细介绍了。
(11)数字音频输入格式见图4。
(12)此处输出的数字声频信号也是I2S格式,与(7)处不同,此处的一路I2S是适合耳机重放的经耳机虚拟环绕声算法处理的双声道数据。由于不能同时又使用耳机重发,又使用扬声器重发,所以(12)处的信号输出和(7)处的信号输出不会同时出现,而决定这两个端口那个输出数据,由控制信号决定。
(13)双声道模拟信号。
(14)经功率放大的双声道模拟信号,带有标准耳机接口。
本发明所列举的实施方式,仅是能够实现本发明的一种具体的方案,并不代表能够实现本发明的所有技术方案,凡是能够采取与本发明相同或者近似的方法,达到相同的效果的技术方案,都应该在本发明的保护范围之内。
权利要求
1.一种基于FPGA的5.1声道虚拟声重放方法,其对于环绕声道的采用延时的方法加入混响,其特征在于采用离散的随机延时和幅度随机来去掉原来环绕声道和新合成的环绕声道的相关。
2.如权利要求1所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于延时随机是对声音信号的左右环绕声进行延迟处理。
3.如权利要求2所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于延时随机的基准点,可以采取一个或者多个。
4.如权利要求3所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于对输入的声音信号是5.1通路的声音信号,延时可以以5ms为基准,随机抖动,在±0.25ms的范围内按照均匀分布随机变化。
5.如权利要求3所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于对输入的声音信号是5.1通路的声音信号,延时也可以采用11ms为基准的延时,随机抖动,在±0.5ms范围内按照均匀分布随机变化。
6.如权利要求1所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于幅度随机的基准点,可以采取一个或者多个。
7.如权利要求6所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于延时以5ms为基准时,幅度加权以0.5为基准,范围在0.25-0.75之间变化,随机抖动,在±0.25的范围内按照类似高斯分布随机变化。
8.如权利要求6所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于延时以11ms为基准时,幅度加权在0-0.5之间变化,使得幅度加权是以0.25为均值在0-0.5的范围内均匀分布的随机变量。
9.如权利要求2或6所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于比较好的方式是可以同时采用以5ms为基准的延时和以11ms为基准的延时,以及相应的幅度加权。
10.如权利要求1所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于具体的实现方式是(L表示左声道,R表示右声道,Ls表示左环绕声声道,Rs表示右环绕声声道,C为中央声道,LFE为低频效果声道(如果输入的声音信号是双声道立体声,则中央声道和低频效果声道无信号输入;左、右环绕声声道分别输入立体声的左右声道声音信号))A将同一采样时刻的5.1通路声音信号的中央通路(C)的采样值与低音效果通道(LFE)的采样值相加;B将上述的相加值卷积或者相乘,使之扩大1.414倍,然后再输入到左声道中;C左、右声道的声音信号经过MS变换;D变换后的左声道信号与B步输入的信号相加,再进行Sigma_1卷积;E变换后的右声道信号经过Sigma_r卷积;F左、右环绕声声道同时设置三个对声音信号的左右环绕声进行延迟处理的模块,并分别对声音信号进行MS变换;其中两个(分别对应左、右环绕声声道)对5.1通路的声音信号不进行任何处理,当输入的声音信号为双声道立体声声音信号时,则进行延迟去相关的处理;另两个(分别对应左、右环绕声声道)对输入的5.1通路的声音信号进行延迟去相关处理,延迟基准时间为5ms;另外的两个(分别对应左、右环绕声声道)则对输入的5.1通路的声音信号进行延迟去相关处理,延迟基准时间为11ms;G经过左右环绕声进行延迟处理的模块没有进行延迟处理的5.1通路的声音信号,左环绕声声道的信号进行Delta_11卷积,右环绕声声道的信号进行Delta_r1卷积;H经过左右环绕声进行延迟处理的模块进行基准时间为5ms的延迟处理的声音信号,左环绕声声道的信号进行Delta_12卷积,右环绕声声道的信号进行Delta_r2卷积;I经过左右环绕声进行延迟处理的模块进行基准时间为11ms的延迟处理的声音信号,左环绕声声道的信号进行Delta_13卷积,右环绕声声道的信号进行Delta_r3卷积;J卷积后的左、右环绕声声道信号分别相加,并对应输入到左、右声道中;K卷积后相加的左环绕声声道信号与卷积后的左声道信号相加;同时,卷积后相加的右环绕声声道信号与卷积后的右声道信号相加;L上述K步相加的信号经过MS变换,输入到输出均衡模块;M均衡模块对输入的信号进行音色均衡处理,并通过左右声道重发。
11.如权利要求10所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于上述的对5.1通路的声音信号左右环绕声进行延迟处理的模块,除对5.1通路的声音信号进行延迟处理外,在其它情况下,没有声音信号输入。
12.如权利要求10所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于上述的对5.1通路的声音信号左右环绕声进行延迟处理的模块,其中对5.1通路的声音信号不进行延迟处理的模块,当输入声音信号是5.1通路的声音信号,该模块不进行任何处理,相当于直通;只对输入的双声道立体声声音信号进行延迟基准时间为5ms的延迟去相关处理。
13.如权利要求10所述的基于FPGA的5.1声道虚拟声重放方法,其特征在于均衡处理的均衡滤波器系数是用白噪声信号按照上述的方式进行处理,得到的信号不进行均衡处理,而是进行反向滤波得到的。
14.如权利要求1所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于采用了EPGA(现场可编辑门阵列),作为实现5.1声道虚拟声重放的装置。
15.如权利要求2所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的装置包括控制信号模块、位时钟、左右时钟、数据接收模块、Ls、Rs延迟信号存储模块、去相关地址生成模块、FIR滤波器系数存储器、处理模块、加法器、数据输出模块,其中控制信号模块,包括两个部分处理方式控制部分和处理同步控制部分,处理方式控制部分的模块采样外部的控制信号,将它们存储在控制信号寄存器中,此模块根据控制信号寄存器的值解码,决定处理的采样率、信号类型、处理方式选择、系统复位并选择适合的系数;处理同步控制模块负责系统处理同步控制,它包括加法计数器、计数时钟,上升沿计数;左右时钟,又称为采样时钟,它的频率等于声音信号的采样频率;数据接收模块,将多路I2S信号通过串并变换、锁存、MS变换后,调整格式后送入处理模块;串并变换由串入并出移位寄存器实现,CLK作为移位寄存器的移位时钟,上升沿触发;锁存器,由寄存器实现;MS变换模块由位加法器和位减法器组成;Ls、Rs延迟信号存储模块,由基地址寄存器(addr_base),存放基地址,该地址对应的是存储空间中最新一个左右环绕声道的样点值;地址偏移寄存器,寄存器中的地址是混响延时对应的延时环绕声的地址;去相关地址生成模块,它包含的硬件有,基地址寄存器、偏移地址寄存器;基地址寄存器指向最新更新的环绕声样点,基地址寄存器在系统上电时为零,在系统开始工作后,每个LRCLK周期加1,当加到延迟信号长度的时候归零,偏移地址寄存器存放的地址偏移量,实际对应的是不同的延迟时间,这个延时时间是固定的,由信号的采样频率决定;FIR滤波器系数存储器,该存储器中存放着多组FIR滤波器系数,每一组都是将人头传输函数经均衡加权的固定系数,对应不同的处理方式(耳机、扬声器)和两种不同的信号格式(5.1声道和双声道立体声)以及对应不同采样频率的多组滤波器系数;处理模块,采用串行FIR滤波器实现的方式;数据输出模块和数据接收模块中的电路逻辑基本相反,现对取和后的两个24位的二进制数进行MS变换,然后送入锁存器(32位,高位符号扩展)在LRCLK的上升沿和下降沿各有一个加载信号,当串行移位输出寄存器的数据移位输出到最后一位的时候,在位时钟的下降沿将锁存器中的数据加载到串行移位输出寄存器(同步加载)。
16.如权利要求15所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的装置的控制信号由系统所服务的声频播放系统提供,且此模块在每个LRCLK周期查询一次外部控制信号寄存器状态,并根据控制信号的状态决定系统的复位、参数加载、处理方式更改等。
17.如权利要求15所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的数据接收模块,如果LRCLK为低,三个移位寄存器中的输入数据为左声道、左环绕和中央声道的声音信号,否则三个移位寄存器中的输入数据为右声道、右环绕和低音效果通道的声音信号。
18.如权利要求15所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的Ls、Rs延迟信号存储模块,在每个LRCLK周期,此存储模块更新一个样点,同时基地址寄存器加1,当地址寄存器中的地址所指范围超过了存储模块的存储空间,寄存器回零,同时根据基地址得出新的地址便宜寄存器值(在基地址上加固定值,如果越界,计算越界后的值),另从去相关地址生成器送来去相关地址偏移,与地址偏移和基地址相加得到延迟环绕声样点值。
19.如权利要求15所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的去相关地址生成模块生成一个地址偏移,此偏移在Ls、Rs延迟信号存储模块的基地址和偏移地址的基础上加上了一个随机地址,这三个地址的和所指向的地址中的环绕声信号,LS、RS的延迟信号都存放在Ls、Rs延迟信号存储模块中,就是经过随机延迟的混响声信号。
20.如权利要求16所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的随机地址的产生,采用11阶的M序列发生器和一个7位的串入并出的移位寄存器实现;当采用串行FIR滤波器实现时,M序列发生器和它后面的移位寄存器以CLK为时钟;当采用相乘累加法实现的时候,采用MCLK4为M序列产生时钟和移位寄存器移位时钟,在每个时钟的上升沿将移位寄存器的值当作有符号偏移地址送到Ls、Rs延迟信号存储模块进行求址。
21.如权利要求15所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的FIR滤波器系数存储器在系统上电的时候,缺省将5.1声道的扬声器处理方式对应地FIR系数加载到FIR滤波器组中。
22.如权利要求15所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于上述的处理模块,其每个FIR滤波器由多个四抽头的串行滤波器组成,每个四抽头串行滤波器可以在最多24个CLK时钟周期中实现FIR滤波器的一个样点处理(一个样点值输入、一个样点值输出),每个FIR滤波器的系数是在系统上电时装载的,复位信号的出现也可以让系统重新装载FIR系数,由于滤波过程中,滤波器要同时使用这些滤波器系数,所以要将这些系数移动到滤波器系数存储的寄存器。
23.如权利要求22所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于处理模块的FIR滤波器也可以采用相乘累加的方式实现,输入信号中还有MCLK,其频率是位时钟CLK频率的4倍,很多的FPGA芯片都带有DLL电路(时钟倍频电路),MCLK经两次倍频后,频率是LRCLK的1024(MCLK4)倍,采用相乘累加的方式,使用单乘法器,实现8个128长度的FIR滤波器。
24.如权利要求23所述的基于FPGA的5.1声道虚拟声重放装置,其特征在于在采用相乘累加的方法实现的时候每个MCLK4周期进行一次乘加计算,滤波器系数不必加载,在FIR滤波器系数存储器中,每周期读出一个系数;当需要复位和改变处理方式和算法的时候,只要将系数地址指向新的系数地址即可。
全文摘要
本发明公开了一种基于FPGA(现场可编辑门阵列)的5.1声道虚拟声重放方法以及装置,该方法及装置能够采用幅度随机和延迟随机的方法进行环绕声去相关处理,并采用FPGA(Field Programmable Gate Array)作为实现虚拟环绕声算法的平台,并在单片FPGA上实现。对于环绕声道的采用延时的方法加入混响,采用离散的随机延时和幅度随机来减小原来环绕声道和新合成的环绕声道的相关,得到更好的混响效果。
文档编号H04R5/00GK1440217SQ03105070
公开日2003年9月3日 申请日期2003年3月4日 优先权日2003年3月4日
发明者管善群, 李长滨, 李俊鹏, 何宜铭 申请人:Tcl王牌电子(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1