[发明专利]一种基于Void-Kalman滤波器的主动声音模拟装置有效
申请号: | 201810804305.6 | 申请日: | 2018-07-20 |
公开(公告)号: | CN108944750B | 公开(公告)日: | 2020-02-18 |
发明(设计)人: | 马芳武;葛林鹤;史津竹;代凯;蒲永锋 | 申请(专利权)人: | 吉林大学 |
主分类号: | B60R16/037 | 分类号: | B60R16/037 |
代理公司: | 吉林省长春市新时代专利商标代理有限公司 22204 | 代理人: | 唐盼 |
地址: | 130000 吉*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 void kalman 滤波器 主动 声音 模拟 装置 | ||
1.一种基于Void-Kalman滤波器的主动声音模拟装置,其特征在于,包括:FPGA主动声音设计模块、MCU控制发声模块、PC上位机;所述FPGA主动声音设计模块,用于完成设计过程中的计算密集型任务,主要是使用Void-Kalman滤波器进行发动机声源的阶次信号提取,提取出的阶次信号通过SPI接口实时下载到MCU控制发声模块中;同时,FPGA主动声音设计模块通过SPI接口接收MCU控制发声模块的参数信号;所述MCU控制发声模块,用于根据FPGA主动声音设计模块提取的阶次信号完成并控制模拟发动机声音实时生成;所述PC上位机,作为人机交互接口,向FPGA主动声音设计模块下载控制数据,请求和接收FPGA主动声音设计模块发送的数据;
其中,所述MCU控制发声模块包括:MCU主控模块、电源模块、保护电路、CAN总线模块、FPGA与MCU通信模块、DAC模块、音频放大器、喇叭;
所述MCU主控模块,一端通过SPI总线与FPGA主动声音设计模块连接,另一端通过CAN总线与CAN总线模块连接,用于获取FPGA主动声音设计模块计算提取的发动机声音阶次信号,同时从CAN总线模块获取车速、加速度和加速踏板开度信号,根据获取的信号来实时控制声音的生成,计算得到的结果通过SPI接口发送给DAC模块,所述DAC模块将数字信号转化为模拟信号,得到的模拟信号经过音频放大器放大,输出给喇叭,产生声音;
所述电源模块与保护电路连接,用于给MCU主控模块及其他外部设备提供可靠的供电;
所述CAN总线模块,用于从整车CAN总线上获取车速、加速度和加速踏板开度信息,并将信息发送给MCU主控模块;
所述FPGA与MCU通信模块,用于MCU主控模块从FPGA主动声音设计模块上读取相应的发动机及发动机阶次音频文件。
2.根据权利要求1所述的一种基于Void-Kalman滤波器的主动声音模拟装置,其特征在于,所述FPGA主动声音设计模块中Void-Kalman滤波器对发动机声源的阶次信号提取过程如下:
步骤S1、构建Kalman滤波器,Kalman状态方程和测量方程如下:
x(n)=Fnx(n-1)+Bn u(n)+ω(n) (1)
y(n)=Hnx(n)+v(n) (2)
公式(1)为状态方程,其中,x(n)为状态量,u(n)为输入,ω(n)为系统噪声,Fn、Bn为矩阵;公式(2)为测量方程,其中,y(n)为测量结果,v(n)为测量噪声,Hn为矩阵,系统噪声和测量噪声都被假定为白噪声,ω(n)是系统噪声,其均值为零,且其协方差矩阵为符合多元正态分布的Qn;v(n)是测量噪声,其均值为零,且其协方差矩阵为符合多元正态分布的Rn,在得到了测量输出y(n)的情况下,运用Kalman滤波器得到状态x的最佳估计;滤波过程包含两步:Kalman滤波器的预测和更新;
预测:
x(n|n-1)=Fnx(n-1|n-1)+Bnu(n) (3)
公式(3)为状态预测方程,其中,x(n|n-1)为在已知n-1步的状态下对n步状态的预测,x(n-1|n-1)为第n-1步状态的估计值;公式(4)为协方差矩阵预测方程,P(n|n-1)为第n-1步对第n步的状态协方差预测,P(n-1|n-1)为第n-1步的状态协方差估计;
更新:
其中,为测量余量,Sn为测量余量协方差矩阵,Kn为计算得到的最优kalman增益;利用上述公式来更新滤波器变量x和P;
P(n|n)=(I-KnHn)P(n|n-1) (9)
其中x(n|n)为当前时刻对状态x的估计,P(n|n)为当前时刻对状态的协方差矩阵的估计;
步骤S2、构建Void-Kalman滤波器的“状态方程”和“测量方程”;
振动信号的第k阶分量表达为如下的形式:
yk(n)=xk(n)exp(jΘk(n)) (10)
其中,exp(jΘk(n)为复指数正旋信号;xk(n)为复指数信号,是exp(jΘk(n))复指数正旋信号的幅值和相位调制信号;其中,ω(i)表示转速,Δt为采样时间;Void-Kalman滤波器的“测量方程”被称为数据方程,其可表示为:
y(n)=∑xk(n)exp(jΘk(n))+η(n) (11)
其中,η(n)代表噪声;
对于调制信号xk(t),使用低阶的多项式来表达,其满足
假定s=3,则上述表达式离散化后可以表示为:
xk(n+1)-3xk(n)+3xk(n-1)-xk(n-2)=ak(n) (13)
上式经过变换可以得到
令得到
Xk(n+1)=MXk(n)+Ak(n) (15)
将上述公式推广到多个阶次,如下述公式所示:
令得到
X(n+1)=FX(n)+ω(k) (17)
公式(17)便是对应于Void-Kalman滤波器的“状态方程”,在这里被称为结构方程;
步骤S3、获取Void-Kalman滤波器的增广数据方程;
对公式(11)进行变换,得到公式(18)数据方程增广形式
y(n)=H(n)X(n)+η(n) (18)
其中,H(n)=[H1(n),H2(n),H3(n)...Hk(n)],Hk(n)=[0 0 θk];
步骤S4、使用滤波器进行滤波,得到各个阶次的时域信号;
将上述结构方程和增广数据方程运用Kalman滤波框架,得到各个待跟踪阶次的状态估计Xk(n),具体做法是令公式(1)中的Fn=F,Bn=0,u(n)=0,公式(2)中的Hn=H(n),将公式(17)和公式(18)带入公式(1)-(9),其它公式符号同公式(1)和(2),得到状态x的估计,最终得到各个阶次的时域信号,通过SPI通信接口将得到的各个阶次的时域信号及时下载到MCU控制发声模块中,保证系统的实时性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于吉林大学,未经吉林大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810804305.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:车辆降噪装置及方法
- 下一篇:一种车载音响播放音量自动调节系统