一种基于RISCv软核的音频降噪系统、方法及介质与流程

专利2022-05-10  23


一种基于risc v软核的音频降噪系统、方法及介质
技术领域
1.本发明属于集成电路技术领域,具体涉及到一种基于risc v软核的音频降噪系统、方法及介质。


背景技术:

2.随着经济的发展和技术的不断进步,音频降噪系统的应用场景越来越多,例如车内降噪、燃气站内降噪、耳机降噪等。但是目前往往采取的还是物理隔绝噪声源等被动降噪的方式,采用主动降噪让声源信号叠加相消的方式往往具备硬件实现困难,改进的优良算法很难用fpga进行硬件实现,因此采用软件实现方式将会使得改进的算法能够实现,这将会是解决音频降噪算法实现困难的一种重要手段。
3.同时,risc v作为一种新兴的指令集架构,具备了开源和后发优势。针对嵌入式领域而言,采用这种指令集架构的软核能够自定义指令,针对算法中的乘积累加结构和卷积结构,能定制出专用的加速单元电路,实现音频降噪专用设计领域。随着国内对于risc v指令集架构的热烈推崇,这样的专用领域soc芯片设计将能得到更大的发展。
4.传统的降噪方式如提取多个噪声音频信号的幅度值角度值然后利用神经网络进行训练确定出一个纯净音频信号的复数谱,然后将得到的复数谱进行逆变换,最后根据这个逆变换去进行音频降噪。这样的方式往往不具备灵活性,针对不同的噪声源就需要进行重新训练,同时这样的方式也不具备采用软硬件协同处理的灵活性,因此本发明基于risc v软核的音频降噪系统将为音频降噪提供一种新的方法。


技术实现要素:

5.本发明旨在解决以上现有技术的问题。提出了一种基于risc v软核的音频降噪系统、方法及介质。以期能够实现算法的灵活可更改性,传输的稳定性,专用性强的音频降噪系统,本系统能够广泛用于汽车降噪、耳机降噪、高铁飞机降噪等声源降噪领域。本发明的技术方案如下:
6.一种基于risc v软核的音频降噪系统,其包括:risc v处理器soc、iis音频传输接口电路、音频编解码wm8731模块、音频降噪fxlms算法,其中,
7.所述risc v处理器soc与iis音频传输接口电路相连接,iis音频传输接口电路与音频编解码wm8731模块相连接。音频降噪fxlms算法则通过软件编程的方式下载到risc v处理器核内进行运行。
8.所述risc v处理器soc包括e203_core、指令紧耦合存储器(itcm)、数据紧耦合存储器(dtcm)、中断控制器(plic和clint)、系统存储总线、rom只读存储器、片外flash存储器、jtag调试接口、协处理器接口、nice_core、外设设备总线、uart串口、iic接口及iis接口组成;其中,e203_core为处理器核用于运行指令并按照顺序执行指令,同时根据指令内容控制相应的部件对数据信息进行处理,指令紧耦合存储器用于存储指令供处理器核获得指令字,数据紧耦合存储器用于存储数据供处理器核获得操作数,中断控制器中的clint则用
于生成软件中断和计时器中断,plic则用于多个外部中断源的优先级仲裁和派发,系统存储总线用于处理器对存储器的访问,rom只读存储器用于存储固化的软核文件,片外flash存储器用于存储编译汇编后的c语言程序,jtag调试接口用于在线调试,协处理器接口用于处理器核与协处理器核之间通信传输,nice_core用于对处理器核中传来的数据进行加速处理,外设设备总线用于处理器核与各个外设接口之间的通信传输,uart串口用于把adcdata和dacdata传输至上位机进行保存,便于用matlab对数据进行分析,iic接口用于处理器核对音频编解码wm8731模块进行寄存器的配置,及iis接口用于处理器核与音频编解码wm8731模块之间的通信传输。
9.通过片外flash存储器保存c语言程序编译汇编链接之后产生的可执行文件,系统启动之后,首先蜂鸟e203核进行初始化,然后根据指令执行访问外设总线上的iic接口电路,根据指令首先通过iic接口配置音频编解码模块wm8731;通过参考麦克风采集声音信号和目标噪声叠加之后的声源信号,通过误差麦克风采集到残余噪声,将采集到的声源信号和残余噪声经过wm8731模块的音频数据接收端,通过模块其内置的adc转换模块,将模拟信号转变成数字信号,之后通过一个模块内置的数字滤波器模块进行滤波处理,把滤波后的数字信号通过iis接口电路传输到外设总线上;然后根据指令从外设总线上获取滤波后的数字信号并传输至e203_core内按照fxlms算法的软件实现流程进行处理;之后又根据指令执行将处理之后的数字信号传输至外设总线,将经过降噪fxlms算法处理之后的数字信号进行输出,再通过iis外设接口电路传输至wm8731音频编解码模块中进行dac转换,将处理之后的数字信号转变成模拟信号,通过音频数据发送端传输至次级声源得到反相噪声;最后得到的反相噪声与目标噪声干涉相消,从而进行音频的主动降噪实现音频降噪系统。
10.进一步的,所述iis音频传输接口电路接收来自音频编解码模块采集处理之后的数字信号,并根据传输采样率和传输字节位数进行左右声道的传输,同时iis音频传输接口电路还用于配置fifo的宽度和深度,以满足对不同传输情况下的要求,并且也用于传输来自risc v软核降噪处理之后的数字信号,使该数字信号能正确的传输回到音频编解码模块进行dac处理并产生次级声源。
11.进一步的,所述音频编解码模块wm8731的内部设置有一个内置的adc和一个dac以及一个数字滤波器,通过mic或者line传输采集模式,采集外部的待处理声源,经过其内置adc进行模拟信号到数字信号的转变,然后将得到的数字信号经过内置数字滤波器进行滤波处理,得到输出数据adcdata,然后通过risc v软核处理之后的数据dacdata输入到音频编解码模块中的dac,进行数字信号到模拟信号的转换,将转换之后的模拟信号通过mic进行输出。
12.进一步的,在iis音频传输接口电路中,来自音频编解码模块的adcdata作为接口电路传输的输入,来自risc v软核处理之后的dacdata作为接口电路传输的输出,同时该接口电路的位时钟信号来自risc v软核中混合时钟管理单元电路mmcm

ip核生成的12.288mhz的时钟,在采用256fs采样率和16bits单一声道传输的情况下,产生左右声道切换时钟信号为48khz的lrck。
13.进一步的,所述音频降噪fxlms算法模块,编写以c语言为描述语言,通过ide软件进行编译汇编链接下载可执行文件到risc v软核中,通过指令的执行以软件方式实现fxlms音频降噪算法。
14.进一步的在音频降噪fxlms算法的软件实现中,将待处理数字信号降噪处理后得到的数字信号,采用如下公式进行降噪处理:
15.y(n)=y(n) w(n)(k

2)x(n)
16.e(n)=d(n)

y
s
(n)
17.d(n)=p(n)*x(n)
18.y
s
(n)=s(n)*y(n)
[0019][0020][0021]
其中y(n):次级声源、w(n)(k):权值系数、x(n):声源信号、e(n):误差信号、d(n):残余噪声、y
s
(n):通过次级路径的次级声源、p(n):声源信号到误差麦克风的参考信号、s(n):次级声源到误差麦克风次级路径产生的信号、
[0022]
声源信号的估计值,其中对步长因子的约束具体为:
[0023][0024]
其中μ:fxlms算法的步长;λ
max
:自相关矩阵的特征值的最大值。
[0025]
一种基于任一项所述系统的音频降噪方法,其包括以下步骤:
[0026]
首先通过片外flash存储器保存c语言程序编译汇编链接之后产生的可执行文件,系统启动之后,蜂鸟e203核进行初始化,根据指令执行访问外设总线上的iic接口电路,根据指令通过iic接口配置音频编解码模块wm8731;
[0027]
其次,通过参考麦克风采集声音信号和目标噪声叠加之后的声源信号,通过误差麦克风采集到残余噪声,将采集到的声源信号和残余噪声经过wm8731模块的音频数据接收端,通过内置的adc转换模块,将模拟信号转变成数字信号,通过wm8731模块内置的数字滤波器模块进行滤波处理,把数字信号通过iis接口电路传输到外设总线上;
[0028]
接着,从外设总线上获取滤波后的数字信号并传输至e203_core内按照fxlms算法的软件实现流程进行处理;
[0029]
然后又根据指令执行将处理之后的数字信号传输回外设总线,将经过降噪fxlms算法处理之后的数字信号进行输出,再通过iis外设接口电路传输至wm8731音频编解码模块中进行dac转换,将处理之后的数字信号转变成模拟信号,通过音频数据发送端传输至次级声源得到反相噪声;
[0030]
最后,反相噪声与目标噪声干涉相消,从而进行音频的主动降噪,实现音频降噪系统。
[0031]
进一步的,对音频传输接口iis外设接口电路的主时钟mclk、音频传输位时钟sclk、左右声道切换时钟lrck进行分频管理,按照如下公式计算出相应时钟
[0032]
sclk=2*fs*bits
[0033]
lrck=fs
[0034]
fs表示采样频率;bits表示传输字节数。
[0035]
进一步的,所述硬件iis接口电路,从idle状态进行接口使能和发送fifo的非空状
态的判断,如是则进入到start状态,在ws_f1_edge下进入wait1状态,判断位时钟的跳变沿和接口使能以及发送fifo的非空状态的判断,如是则进入到左声道信号的发送,每个时钟沿进行重复传送,只到进入跳变沿则进行右声道信号的等待发送状态,重复如左声道状态一样的步骤即可保证传输左声道到右声道的传输过程的正确性。
[0036]
一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现任一项所述的音频降噪方法。
[0037]
本发明的优点及有益效果如下:
[0038]
1、本发明采用risc v软核soc,具有高度的可配置性,能够根据功能的不同需求进行配置不同的外设接口电路,同时删减掉电路中使用不到的一些接口外设,减少资源的浪费。
[0039]
2、本发明采用risc v指令集架构,能够根据算法中的运算关键步骤,自行定义指令,然后采用内联汇编的格式,进行硬件加速单元的设计,给特定运算关键步骤进行加速。使算法的运算速度更快,同时也能够更好的减少指令数和执行周期数。
[0040]
3、本发明采用硬件iis接口电路,能够稳定传输音频信号,并且可配置的fifo宽度和深度以及时钟单元等,可以满足不同的采样率和采样字节数的选择,其适用范围更加广阔。
[0041]
4、本发明采用软件方式实现fxlms算法,利用雅可比公式求出矩阵的最大特征值,然后求倒数得到步长因子。相比纯硬件实现方式而言,软件实现更具有可行性,没有硬件实现那么困难,同时软件实现具有更好的灵活性,在risc v指令集体系下还可以利用硬件加速单元对其进行部分加速,采用软硬件协同的处理方式,将硬件和软件开发的优势都汇聚到一起。
附图说明
[0042]
图1是本发明提供优选实施例音频降噪系统架构图;
[0043]
图2为iis接口电路时钟管理单元;
[0044]
图3为iis接口电路控制状态转移图;
[0045]
图4为apb_iis电路结构示意图;
[0046]
图5为fxlms算法的硬件模型结构图;
[0047]
图6为fxlms算法的c语言实现流程图;
[0048]
图7为逻辑分析仪抓取接口信号时序图。
具体实施方式
[0049]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
[0050]
本发明解决上述技术问题的技术方案是:
[0051]
本发明设计的一种基于risc v软核的音频降噪系统的设计与实现,如附图1所示,其结构包括:risc v处理器soc、iis音频传输接口、音频编解码wm8731模块、音频降噪fxlms算法的软件实现;其中:
[0052]
risc v处理器soc,由e203_core、指令紧耦合存储器(itcm)、数据紧耦合存储器
(dtcm)、中断控制器(plic和clint)、系统存储总线、rom只读存储器、片外flash存储器、jtag调试接口、协处理器接口、nice_core、外设设备总线、uart串口、iic接口及iis接口组成;其中,通过片外flash存储器保存c语言程序编译汇编链接之后产生的可执行文件,系统启动之后,首先蜂鸟e203核进行初始化,然后根据指令执行访问外设总线上的iic接口电路,根据指令首先通过iic接口配置音频编解码模块wm8731;通过参考麦克风采集声音信号和目标噪声叠加之后的声源信号,通过误差麦克风采集到残余噪声,将采集到的声源信号和残余噪声经过wm8731模块的音频数据接收端,通过模块其内置的adc转换模块,将模拟信号转变成数字信号,之后通过一个模块内置的数字滤波器模块进行滤波处理,把滤波后的数字信号通过iis接口电路传输到外设总线上;然后根据指令从外设总线上获取滤波后的数字信号并传输至e203_core内按照fxlms算法的软件实现流程进行处理;之后又根据指令执行将处理之后的数字信号传输至外设总线,将经过降噪fxlms算法处理之后的数字信号进行输出,再通过iis外设接口电路传输至wm8731音频编解码模块中进行dac转换,将处理之后的数字信号转变成模拟信号,通过音频数据发送端传输至次级声源得到反相噪声;最后得到的反相噪声与目标噪声干涉相消,从而进行音频的主动降噪实现音频降噪系统。
[0053]
本发明为了更好的控制音频传输的稳定性,和随时可以调节的采样率和传输字节数等音频传输格式,采用了如附图2的时间管理单元,对iis接口模块的主时钟(mclk),音频传输位时钟(sclk),左右声道切换时钟(lrck)等进行分频管理,按照如下公式可计算出相应时钟
[0054]
sclk=2*fs*bits
[0055]
lrck=fs
[0056]
本发明还设计了硬件iis接口电路,如附图3所示为其控制模块的状态转移图,从idle状态进行接口使能和发送fifo的非空状态的判断,如是则进入到start状态,在ws_f1_edge下进入wait1状态,判断位时钟的跳变沿和接口使能以及发送fifo的非空状态的判断,如是则进入到左声道信号的发送,每个时钟沿进行重复传送,只到进入跳变沿则进行右声道信号的等待发送状态,重复如左声道状态一样的步骤即可保证传输左声道到右声道的传输过程的正确性。如附图4所示,则是apb_iis电路结构和各个模块的分布情况。分别是iis的发送、接收控制模块和fifo缓存等部分,以及apb接口转换部分模块还有iis接口部分模块所组成。
[0057]
本发明分析了典型fxlms算法的硬件模型如附图5所示,输入序列经过延迟器之后与权值系数进行乘积之后累加得到输出序列,同时权值系数进入lms之后进行权值系数的更新迭代,多次重复这个步骤将输入序列进行多次更新得到降噪算法处理之后的序列,同时通过fxlms算法的硬件模型,能够提取出如下运算公式:
[0058]
y(n)=y(n) w(n)(k

2)x(n)
[0059]
e(n)=d(n)

y
s
(n)
[0060]
d(n)=p(n)*x(n)
[0061]
y
s
(n)=s(n)*y(n)
[0062][0063]
[0064]
之后对公式进行如附图6所示的c语言程序编写,同时针对算法中的特定运算部分加入我们特定的硬件加速单元电路,针对数字滤波器部分加入卷积运算单元,针对权值系数更新的部分加入乘积累加电路进行运算的加速,以此体现出risc v指令集架构的优势。
[0065]
最后如附图7所示,是采用逻辑分析器通过抓取iis音频传输接口电路的各个输出接口的时序图,可以知道本发明设计的一种基于risc v软核的音频降噪系统的设计与实现,具有很好的数据传输稳定性,同时也能够极大程度的节省硬件资源并且能够实现较为复杂的音频降噪算法的同时保证其运算效率等各个方面的优异性能。
[0066]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0067]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0068]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0069]
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
转载请注明原文地址:https://doc.8miu.com/index.php/read-1722521.html

最新回复(0)