首页 > 范文大全 > 正文

瑞米兹交替算法在语音分离上的应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇瑞米兹交替算法在语音分离上的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:随着多媒体科技的不断进步,语音分离技术的利用越来越广泛,对此传统的FIR滤波器渐渐已经不能够满足越来越高的质量需求,该文介绍了一种基于瑞米兹交替算法(Remez)的优化FIR滤波器的设计方法,同时将此应用在语音分离滤波上,并给出了matlab下的设计结果。

关键词:瑞米兹交替算法(Remez);语音分离滤波; Matlab

中图分类号:TN713文献标识码:A文章编号:1009-3044(2012)03-0698-02

Remez Algorithm on the Voice Separation

XU Fang-xin

(Zhuhai Campus of Beijing Institute of Technology, Zhuhai 519085, China)

Abstract: With advances in multimedia technology, voice separation technology used more widely. Because traditional FIR filter is no lon? ger able to meet the gradually increasing demand for high quality, so this article describes a algorithm based on the alternating Remez, while this separation filter applied on the voice, and show a matlab design simluation.

Key words: Remez; voice separation; matlab

滤波器是一种选频器件,可以使信号定的频率通过,同时衰减其他部分的频率分量。由于人的语音信号一般频率都是在3400hz以内,而且人与人说话频率间距很窄,传统的FIR滤波器根本没办法做到在这么窄的频带之间进行分离信号,随着优化滤波器设计的技术越来越成熟,我们采用了一种基于瑞米兹交替算法的最优化FIR滤波器的设计方法。能够在很窄的过渡带上获得很大的衰减,从而达到语音分离的效果。由于matlab软件具有编程简单,语言简练,数字信号处理工具箱函数丰富的优点,被广泛的应用于教学,科研和工程设计各个领域,故我们采用matlab作为设计的工具,并且给出了设计仿真结果。

1 FIR滤波器简介

FIR(Finite Impulse Response),有限单位冲激滤波器,其可以用如下形式的系统函数表达:H(z)=∑

2瑞米兹交替算法

为了精确控制通带截止频率ωp,阻带截止频率ωs我们采用切比雪夫逼近方式,定义逼近误差函数

E(ω )=W(ω )|||Hd(ejω )-H(ejω )|||,E(ω )为在要求的滤波器的通带和阻带内计算的误差值,W(ω )是权函数,例:若在固定M ,ωp和ωs情况下逼近一个低通滤波器,

这样选择w(ω ),就规定了通带和阻带逼近误差间的相对大小关系,也就是说,k应该等于要求的比值δ1δ2,即要求max|E(ω )|=min,将k=δ1/δ2代入E(ω ),即要求δ2=min,其实也可以选择W(ω ),使δ1=min。通过逼近理论中的交错定理可用于求解切比雪夫逼近问题。令F表示封闭子区间0≤ω≤π的任意闭子集,为了使H(ejω )在F上唯一最佳地逼近于Hd(ejω ),其充分必要条件是误差函数E(ω )在F上至少应有(M+2)次交错,即E(ωi )=-E(ωi-1)=max[E(ω )],在低通滤波器中,闭子集F包含0≤ω≤ωp和ωs≤ω≤π。由于滤波器频率响应是逐段恒定的,所以对应于误差函数E(ω )各峰值点的频率ωi,同样也对应于H(ejω ),此恰好满足误差容限。

3 MATLAB综合实现

Matlab具体完成了语音获取,语音滤波,语音输出的功能,框架如图如图1。

图1

采样部分通过wavrecord函数完成,wavrecord(n,fs,ch,dtype)函数中,n表示采样点数,fs为采样频率,ch为声道数,dtype表示数据的存储格式。在最优化处理函数中引入变量δ1δ2,δ1=1-10(-δ/20),δ2=10-At/20,其中δ为带内纹波系数,At为带外衰减系数。通过remezord与remez函数进行滤波器系统函数的计算,filter进行滤波器的具体使用,以下为低通滤波器的实现代码:

fp=1000; %通带截止频率

fs=1200; %阻带截止频率

At=100; %带外衰减系数(dB)

wave=1; %带内纹波系数(dB)

mval=[1 0]; %边界处的幅值

fedge=[fp fs];

d1=1-10^(-wave/20);%δ1的计算

d2=10^(-At/20);%δ2的计算

dev=[d1 d2]; %基本参数δ1与δ2

fs=8000;%FIR采样频率

[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs); %参数计算

b=remez(N,fpts,mag,wt); %雷米兹交替算法

[h,w]=freqz(b,1,1024);%单位脉冲响应

sf1=filter(b,1,data); %低通滤波

语音播放通过waveplay函数进行播放,仿真结果如图2所示:

图2Malab仿真结果

4结束语

通过瑞米兹交替算法可以最优化的解决窄过渡带下大量衰减问题,克服了传统的FIR滤波器窗函数阻带衰减不足的问题。应用最优化的设计方法,可以使语音信号分离的实现更为简单,不过在具体应用中还需要克服语音信号混叠之类的现象,在此本例主要实现了通过最优化设计FIR滤波器分离特定频段的语音信号,并可以通过matlab函数将其播放,在实际应用中可以根据需要对其功能进行改写。

参考文献:

[1]方世良,陆佶人.复合基神经网络在水声目标识别中的应用[J].声学技术, 1998,17(2).

[2]丁玉美,高西全.数字信号处理[M].北京:清华大学出版社,2004.

[3]王宏.MATLAB 6.5及其在信号处理中的应用[M].北京:清华大学出版社,2004.

[4]程佩青.数字信号处理教程[M]. 3版.北京:清华大学出版社,2010.