1.一种基于RISC v自定义指令集拓展的音频降噪加速器系统,其特征在于,包括:E203_CORE、NICE_CORE、NICE_Interface、E203_SOC、音频编解码WM8731模块、音频降噪FxLMS算法,E203_CORE为蜂鸟E203开源处理器内核,NICE_CORE我自定义协处理器,NICE_Interface为主处理器与协处理器之间的接口电路,E203_SOC为以E203为内核搭建的片上系统,其中,所述E203_CORE通过NICE_Interface与NICE_CORE相连接,E203_CORE、NICE_CORE与相关外设端口一同组成E203_SOC,E203_SOC与音频编解码WM8731模块相连接,音频降噪FxLMS算法通过软件编程下载到RISC v处理器核内运行;通过片外Flash存储器保存可执行文件,系统启动之后,首先E203_CORE进行初始化,然后根据指令顺序执行访问外设总线上的IIC接口电路,首先通过IIC接口电路配置音频编解码模块WM8731,其后,通过参考麦克风采集声音信号和目标噪声叠加之后的声源信号,通过误差麦克风采集到残余噪声,将采集到的声源信号和残余噪声经过WM8731模块的Audio_data_rx,通过WM8731模块内置的ADC转换模块,将模拟信号转变成数字信号,之后通过WM8731模块内置的数字滤波器模块进行滤波处理,把滤波之后的数字信号通过IIS接口电路传输到外设总线上,然后根据指令从外设总线上获取滤波后的数字信号并传输至E203_CORE内按照FxLMS算法的软件实现流程进行处理,其中在处理乘积累加运算和卷积运算的时候,将被E230_CORE中的译码部分检测出为自定义指令,E203_CORE则通过NICE_Interface将自定义指令和源操作数传递给NICE_CORE进行特定运算部分的加速,其中乘积累加运算将会调用Mac指令电路,卷积运算则会调用Conv指令电路,之后又根据指令执行将处理之后的数字信号传输至外设总线,将经过FxLMS算法降噪处理之后的数字信号进行输出,再通过IIS外设接口电路传输至WM8731音频编解码模块中进行DAC转换,将处理之后的数字信号转变成模拟信号,通过Audio_data_tx传输至次级声源得到反相噪声,最后得到的反相噪声与目标噪声干涉相消,从而进行音频的主动降噪,实现音频降噪系统。
2.根据权利要求1所述的一种基于RISC v自定义指令集拓展的音频降噪加速器系统,其特征在于,所述E203_SOC由E203_CORE、NICE_CORE、ICB_APB、UART串口、IIC接口及IIS接口组成;其中,E203_CORE为处理器核用于运行指令并按照顺序执行指令,同时根据指令内容控制相应的模块对数据信息进行处理,在E203_CORE中的执行单元EXU的通用寄存器Reg则将协处理器传回的处理后的数据进行保存,在E203_CORE中的访存控制单元LSU中的数据紧耦合器DTCM则是提供源寄存器索引对应的数据传递给协处理器,使自定义指令能够进行数据的读写访问,NICE_Interface用于E203_CORE与NICE_CORE之间通信传输,NICE_CORE用于对处理器核中传来的数据进行加速处理,通过NICE_Interface获取到自定义指令,然后通过译码Decode寻找到对应的自定义指令,指令即Lbuf、Sbuf、Conv、Mac,然后根据相应指令的功能进行数据访问存储或者数据处理并进行写回,其中Lbuf指令则是进行数据的加载过程,从LSU中的DTCM中进行数据的获取并将其存储到Buf,Sbuf指令则是进行数据存储过程,将Buf中的数据存储回到LSU中的DTCM中,Conv指令则是从Buf中获取权值系数和输入信号进行卷积运算,并将得到的运算结果写回至EXU中的Reg,Mac指令则是从Buf获取权值系数和误差分量进行乘积累加运算,并将运算结果暂存至Buf,待运算结束之后将整个结果写回至EXU中的Reg,整个过程则是由一个有限状态机FSM进行状态转移的控制,ICB_APB则用于处理器核与各个外设接口之间的通信传输,UART串口用于把ADCDATA和DACDATA传输至上位机进行保存,便于用MATLAB对数据进行分析,IIC接口用于处理器核对音频编解码WM8731模块进行寄存器的配置,及IIS接口用于处理器核与音频编解码WM8731模块之间的数据传输。
3.根据权利要求1或2所述的一种基于RISC v自定义指令集拓展的音频降噪加速器系统,其特征在于,所述NICE_CORE通过NICE_Interface将E203_CORE传递过来的自定义指令、源操作数寄存器地址在内的信号进行译码操作,通过对比其具体格式部分,译码得到相应的自定义指令,然后在状态机的调控下,进行相应自定义指令的执行。
4.根据权利要求1或2所述的一种基于RISC v自定义指令集拓展的音频降噪加速器系统,其特征在于,所述音频编解码模块WM8731的内部设置有一个内置的ADC和一个DAC以及一个数字滤波器,通过MIC传输采集模式,采集外部的待处理声源,经过其内置ADC进行模拟信号到数字信号的转变,然后将得到的数字信号经过内置数字滤波器进行滤波处理,得到输出数据ADCDATA,然后通过RISC v软核处理之后的数据DACDATA输入到音频编解码模块中的DAC,进行数字信号到模拟信号的转换,将转换之后的模拟信号通过MIC进行输出。
5.根据权利要求4所述的一种基于RISC v自定义指令集拓展的音频降噪加速器系统,其特征在于,所述音频编解码模块WM8731内部设置IIC接口电路,可以进行主从模式的配置、ADC、DAC使能选择及MIC和LINE模式下音量大小和是否开启数字滤波在内的操作,由于ANC音频降噪系统的原理是利用声波的相消干涉,因此这里将配置WM8731模块为从机模式、MIC模式、ADC、DAC使能,寄存器配置信息将由E203_CORE通过IIC接口总线进行寄存器的配置。
6.根据权利要求5所述的一种基于RISC v自定义指令集拓展的音频降噪加速器系统,其特征在于,所述音频降噪FxLMS算法,编写以C语言为描述语言,内联汇编语言为辅助语言的形式,通过IDE软件进行编译汇编链接下载可执行文件到RISC v软核中,通过指令的执行以软件方式实现FxLMS音频降噪算法。
7.根据权利要求6所述的一种基于RISC v自定义指令集拓展的音频降噪加速器系统,其特征在于,在音频降噪FxLMS算法的软件实现中,将待处理数字信号降噪处理后得到的数字信号,采用如下公式进行降噪处理:
y(n)=y(n)+w(n)(k‑2)x(n)e(n)=d(n)‑ys(n)
d(n)=p(n)*x(n)
ys(n)=s(n)*y(n)
其中y(n):次级声源、w(n)(k):权值系数、x(n):声源信号、e(n):误差信号、d(n):残余噪声、ys(n):通过次级路径的次级声源、p(n):声源信号到误差麦克风的参考信号、s(n):次级声源到误差麦克风次级路径产生的信号、 声源信号的估计值,其中对步长因子的约束具体为:
其中μ:FxLMS算法的步长;λmax:自相关矩阵的特征值的最大值。
8.一种基于权利要求1‑7任一项所述系统的音频降噪方法,其特征在于,包括以下步骤:
首先通过片外Flash存储器保存C语言程序编译汇编链接之后产生的可执行文件,系统启动之后,首先E203_CORE进行初始化,然后根据指令顺序执行访问外设总线上的IIC接口电路,根据指令首先通过IIC接口电路配置音频编解码模块WM8731;
其次,通过参考麦克风采集声音信号和目标噪声叠加之后的声源信号,通过误差麦克风采集到残余噪声,将采集到的声源信号和残余噪声经过WM8731模块的Audio_data_rx,通过WM8731模块内置的ADC转换模块,将模拟信号转变成数字信号,之后通过WM8731模块内置的数字滤波器模块进行滤波处理,把滤波之后的数字信号通过IIS接口电路传输到外设总线上;
接着,根据指令从外设总线上获取滤波后的数字信号并传输至E203_CORE内按照FxLMS算法的软件实现流程进行处理,其中在处理乘积累加运算和卷积运算的时候,将被E203_CORE中的译码部分检测出为自定义指令,E203_CORE则通过NICE_Interface将自定义指令和源操作数传递给NICE_CORE进行特定运算部分的加速,其中乘积累加运算将会调用Mac指令电路,卷积运算则会调用Conv指令电路;
然后又根据指令执行将处理之后的数字信号传输回外设总线,将经过降噪FxLMS算法处理之后的数字信号进行输出,再通过IIS外设接口电路传输至WM8731音频编解码模块中进行DAC转换,将处理之后的数字信号转变成模拟信号,通过音频数据发送端传输至次级声源得到反相噪声;
最后,反相噪声与目标噪声干涉相消,从而进行音频的主动降噪,实现音频降噪系统。
9.根据权利要求8所述的音频降噪方法,其特征在于,一共涉及到4条自定义指令,分别是LBUF指令、SBUF指令、CONV指令、MAC指令,其中LBUF指令和SBUF指令由于对同一个地址的BUF进行操作,所以需要用其opcode字段做区别,分别由custom0、custom1所决定,即7`b0001011和7`b0101011,由于SBUF和LBUF指令只需要从DTCM进行读取和写入操作,并不需要进行数据的写回,因此只需要利用其源操作数1,即rs1,所以funct3字段定义为3`b 010格式,代表只对源操作数寄存器rs1进行操作,由于rd、rs2并未使用,因为可以将此部分定义为读取或者写入的数据的长度选择,funct7字段则是定义为BUF中加载存储的起始地址,其中CONV指令只需要目标寄存器进行数据的返回即可因此需要对其返回的目标寄存器进行操作,即rd,funct3\funct7\rs1\rs2等部分则组合定义为其处理的数据X[9:0]和权值系数W[9:0],均由伪双口SRAM进行读取传递给CONV电路部分进行运算,MAC指令则需要调用目标寄存器和源操作数进行其运算,所以其funct3字段定义为3`b111格式,funct7字段则没有定义要求,其中CONV和MAC指令的opcode定义为四种custom均可,本发明用的是custom3和custom4,即7`b1011011和7`b1111011。
10.根据权利要求8所述的音频降噪方法,其特征在于,通过LBUF指令能够加载待处理数据信息,之后将其存储在XBUF、QBUF两个伪双口SRAM中,WBUF则以初值形式进行定义一个空的伪双口SRAM。之后通过CONV指令对XBUF、WBUF进行数据的读取,该指令是一个采用加法树结构的卷积运算单元电路,其数据长度由滤波器阶数所决定,即滤波器阶数为J时,其待处理信号X[J‑1:0]和权值系数W[J‑1:0],得到其运算结果后将其保存在YBUF进行FIFO存储,其宽度和深度定义为数据宽度和滤波器的阶数长度;之后,通过MAC指令进行QBUF与误差系数的乘积后与上一列的权值系数WBUF相加得到新的权值系数WBUF,通过MAC自定义指令对其进行写入新的权值系数,进行权值的更新,其中误差系数的乘积部分由初级噪声信号Dn与YBUF中存储的数据相减得到后乘上步长因子所得,然后一直重复上述步骤,直到将所有的输出将FIFO的深度填满即可。