一种基于FPGA的双向混音方法与流程

文档序号:15924002发布日期:2018-11-14 00:57阅读:388来源:国知局

本发明属于音频技术改进领域,尤其涉及一种基于fpga的双向混音方法。

背景技术

目前,混音器有两种,一种是软件类型的混音器,一种是硬件类型的混音器。软件的混音器的混音输入可以是数字音频文件和线路输入音频信号,输出则为数字音频文件,而硬件类型的混音器的混音输入则为不同线路的模拟音频信号,输出依然为模拟信号。由于原理不同,软件类型的混音器和硬件类型的混音器的应用也大不相同,前者主要用于音频处理,后者主要用于音响设置。

随着fpga技术的飞速发展,基于fpga系统的电子产品已广泛应用于音频、视频、网络通信技术等各个方面,由于fpga在实时性、并行处理等方面有着无可比拟的强大功能,因此被广泛的应用于通信、会议系统、指挥系统中。

传统的语音通话装置,不方便达到多个通话装置的混音效果,且多个通话装置的数量参数不具有可控的效果;此外,传统的语音通话装置,为了获得良好的通话效果,将音频采集终端的音频芯片替换为采样率可变的音频芯片,如此会导致通话装置成本的增加。

传统的数字混音系统将混音处理集中在一台服务器上进行,对服务器的上传带宽和处理器处理能力要求很高,混音系统在处理音频时的混音延时较高,而且传统的数字混音系统结构复杂、使用不方便、成本较高。



技术实现要素:

本发明的目的在于提供一种基于fpga的双向混音方法,旨在解决上述的技术问题。

本发明是这样实现的,一种基于fpga的双向混音方法,所述双向混音方法包括以下步骤:

s1、在tdm线上的两个时隙数据拆分从16m中分别根据同步时钟和时钟拆分出每个时隙的8bits语音编码数据;

s2、两个通道中的alaw解码分别将各自通道中pcmalaw解码为线性码;

s3、通过信号衰减将两个通道中的线性码进行累加;

s4、alaw编码将累加的线性码编码为pcmalaw;

s5、根据同步时钟和时钟将时隙数据组合到单一通道中进行并串转换和时隙合并且输出16mtdm。

本发明的进一步技术方案是:所述步骤s1中使用位移寄存器在时钟驱动下,将串行数据转换为并行数据。

本发明的进一步技术方案是:所述步骤s1中采用74164位移寄存器完成两路串并转换。

本发明的进一步技术方案是:所述步骤s3中的线性码累加采用两个14bit的加法器。

本发明的进一步技术方案是:所述步骤s3中的信号衰减采用将带有符号的右移一个bit位。

本发明的进一步技术方案是:所述步骤s6中并串转换和时隙合并采用两个x74598寄存器实现完成。

本发明的有益效果是:利用fpga芯片加载混音算法,直接将通话的双方混音,减少资源占用,提高效率和密度。

附图说明

图1是本发明实施例提供的基于fpga的双向混音方法的流程图。

图2是本发明实施例提供的tdm的时序。

图3是本发明实施例提供的两颗74164移位寄存器来完成两路的串并转换示意图。

图4是本发明实施例提供的3.6.并串转换和时隙合并的寄存器转换示意图。

具体实施方式

图1示出了本发明提供的基于fpga的双向混音方法的流程图,其详述如下:

stm-1是基于光传输电话语音的一种技术,一对stm-1可以传输63e1,共计31×63=1953路并行通话。在呼叫中心中,需要将通话双方的语音混合起来,变成单一的语音流,然后编码成录音文件,保存到硬盘上。

常规的混音方式是采用dsp的会议算法进行混音合成,对于stm-1来讲,会占用大量的dsp资源。

stm-1同步、帧处理和映射处理是由专用芯片处理,与混音fpga采用多条16mtdm总线连接,混音fpga处理完成后,通过多条16mtdm与母板上的时隙交换矩阵芯片连接。

步骤s1,在tdm线上的两个时隙数据拆分从16m中分别根据同步时钟和时钟拆分出每个时隙的8bits语音编码数据;利用两个16mtdm总线链接的通道,根据同步时钟和时钟拆分出每个时隙的8bits语音编码数据来完成生产语音编码任务。tdm线上的语音数据是串行的,要进行后续的混音处理必须首先转换为8bit的并行记录。使用移位计数器,在时钟的驱动下,可以将串行数据转换为并行数据。

clkax:时钟

fsax:时钟同步

tr[n]:接收数据

tx[n]:发送数据

每个时钟周期对应一个bit,每个时序有8个bits。

如图所示,通过两颗74164移位寄存器来完成两路的串并转换

步骤s2,两个通道中的alaw解码分别将各自通道中pcmalaw解码为线性码。其中每个通道都是利用信号的衰减来避免信号溢出。

根据alaw编码规则,alaw转换为线性码如下实现:

步骤s3,通过信号衰减将两个通道中的线性码进行累加求和。线性码叠加比较简单,直接采用两个14bit的加法器就可以了。由于alaw转换为线性码后,是13bits的数据,因此,要采用14bit的加法器,避免加法的进位。

步骤s4,利用通道中的alaw编码将累加的线性码编码为pcmalaw。由于两个线性码叠加后,可能超过线性码的最大值,因此需要做衰减;衰减比较简单,目前直接采用带符号的右移一个bit完成。

根据alaw编码规则,alaw转换为线性码如下实现:

步骤s5,根据同步时钟和时钟将时隙数据组合到单一通道中进行并串转换和时隙合并且输出16mtdm,并串转换和时隙合并采用两个x74598寄存器实现完成,如图4所示。

混音计算会带来延迟,这个延迟不会刚好在同步时钟的边界,因此,必须在内部增加延迟,整体数据延迟一帧,以保证数据的位置不变。

利用fpga芯片加载混音算法,直接将通话的双方混音,不采用dsp算法,减少资源占用,提高效率和密度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1