基于MATLAB与FPGA的数字均衡器设计

2012-09-06 01:20杨水森朱吉祥陈文琳
山西电子技术 2012年6期
关键词:均衡器频谱滤波器

杨水森,陈 强,朱吉祥,陈文琳

(1.重庆三峡学院应用技术学院,重庆万州404100;

2.重庆三峡学院信号与信息处理重点实验室,重庆万州 404100)

随着社会多极化的发展,语音伪装技术也是一项引人瞩目的话题。目前,也广泛应用于社会的各个领域,例如:通信、声控、医学……等[1]。实现语言伪装功能的核心就是运用语音信号的频率特性,利用MATLAB软件对语音信号进行仿真,提取出一组能够设计数字均衡器的均衡系数。本文所涉及的均衡器的原理也正是如此,其原理是将外部提取的语音信号通过A/D转换电路转换后送入FPGA,再用MATLAB软件进行仿真,提取出均衡系数送给FPGA中的均衡器并完成相应的语音伪装算法,再又经过D/A转换电路将数字信号转换成模拟信号。

本文所设计的均衡器可以采用两种,一种是根据均衡器描述原理设计,将多个滤波器分别乘以对应的均衡系数后叠加,以实现均衡器效果。但由于实际滤波器总存在一定的带宽和衰减特性,在两个或者多个滤波器交界处会出现很大的幅度跳变,如此设计的均衡器,远远脱离了预期要求。其原理图如图1所示。

图1 段均衡器的算法模型

其中H1(n)是一个低通滤波器,H2(n)、H3(n)、H4(n)是3个带通滤波器,H5(n)是一个高通滤波器。我们调整它们各自的增益系数G1~G5,就能调整相应频段的声音,从而得到我们需要的效果。

而另一种是基于幅频域直接改变均衡器系数,即将所设计的滤波器,在幅频域内乘以所要获得的均衡器系数,达到频域内的幅度特性满足要求后,再将所获得的滤波器参数,进行傅里叶逆变换,可获得所要求的滤波器系数,从而达到均衡设计的要求。通过多方面的考虑最后选择了第二种方法[2-3]。

1 系统总体设计方案

系统总体设计方案如图2所示:

图2 系统总体设计方案图

图中用FPGA作为硬件电路,主要负责对采样回来的信号进行FFT变换,以A/D和D/A为外围电路,对数据进行转换后由高速D/A模块输出。但是,D/A输出的是离散的正弦信号,频率范围较广,为能最大的输出基波成分,且输出信号较平滑,须对信号进行低通滤波,除去频谱中的高频分量。再将输出的信号经功率放大后,得到幅度稳定的频率信号[4]。以MATLAB软件为核心,通过MATLAB软件仿真将所需要的均衡系数提供给数字幅频均衡器,最后利用MATLAB/Simulink软件生成模型文件,转换成VHDL语言给硬件电路实现语音伪装功能[5]。

2 系统建模

通过对语音信号的系统仿真,用频谱拟合曲线法将提取到的男女频谱图对应频率点做相除运算,相除所得结果就是所要求的拟合曲线模型。在此本人考虑到男性声音频率偏低,女性则偏高。为了加强这一点对最终拟合曲线的影响,选取了男低音和女高音两个极端的声音频谱作为研究对象,其流程图如3所示。

图3 软件设计流程图

如图3所示,利用MATLAB/TDATool软件设计FIR低通滤波器,由于采用单一滤波器进行幅度调整方法,对滤波器过渡带要求不是很高,要求阻带衰减较大以减少噪声干扰,所以选用了Kaiser窗函数,采样频率为44 100Hz,截止频率为8 000Hz,滤波器介数为64。

最后将这两组均衡器参数进行傅里叶逆变换(ifft),并取其实部即可得均衡器系数。在将该均衡器通过FDATool工具中的DSP模块导入到SIMULINK设计模型中进行仿真。该SIMULINK仿真模型如图5所示。测试当使用麦克风输入语音或语音文件输入语音时,输入语音的变化,判断其特点是否满足设计要求,如不满足则返回从新设计均衡器参数,如将拟合所得参数取平方,立方等以加大均衡器改变语音信号的幅度。直到听到的语音信号满足要求为止。最后将得到的均衡器的系数提供给FPGA使用。

由于生成的均衡器系数为8位二进制数,与输入八位数据相乘,同时加上一位符号位,即要求乘法器为两乘积因子为9位,输入为17位的模块。

有符号加减法模块:在有符号加减法模块中,其中一个加数为乘法器乘积结果17位,另一个加数为上次加法结果,与加法器最终输出位数一致,为17+6-1=22位,其中6由滤波器阶数决定即2^6=64.,再减一,每位相加后得到的最大位数为22位。

3 系统仿真与分析

本文利用MATLAB/TDATool设计FIR滤波器,可以运用M文件编写和SIMULINK模块两种设计方法。M文件的编写比SIMULIK模块设计更方便,直接可以改写程序的参数就能实现其功能[6、8]。

为了本次语音伪装达到最佳效果(将一男性声音伪装成女性声音,或将女性声音伪装成男性声音)。由于男性信号中低频成分比较大(一般男性的基频分布是50~180Hz),声音浑厚。而女性语音信号则在高频段较大(一般女性的基频分布是160~380Hz),声音听起来也比较尖锐。要想达到伪装的效果,则须消弱相应的低频段,并增加对应的高频段音量以此获得较为合适的音频。

由此可以利用频谱拟合曲线法将提取到的男女频谱图对应频率点做相除运算,点除结果就是所要求的拟合曲线模型。具体仿真程序代码如下,仿真波形如图4所示。

图4 两种语音频谱拟合曲线图

将该参数导入一滤波器后再进行傅里叶逆变换(ifft)即可获得均衡器系数。最后利用硬件电路将进行验证,取得了较好的伪装效果。

于此同时,本文也利用了另一种方法即频谱搬移法,与上述方法进行比较,最后所得的仿真效果如图5。

abo,fs]=wavread('boy.wav',[500 1950000]);

ab1=abo(:,2);%采集语音信号,并仅取其第一通道信号分析

ab2=fft(ab1,1000000);%语音信号的频谱

ab3=[zeros(1,10000),ab2(1:1000000)']';%零向量长度表示频谱搬移量大小

ab4=real(ifft(ab3,1000000));%傅里叶逆变换,观察频谱搬移后的时域波形

subplot(4,1,1);plot(ab1);%原始单声道语音信号时域波形

subplot(4,1,2);

plot(ab4);%经过频谱搬移后的语音信号时域频谱

subplot(4,1,3);plot(abs(ab2));% 原始但声道语音信号的频谱

subplot(4,1,4);plot(abs(ab3));% 经过搬移后的,语音信号频谱

soundsc(ab4,fs);%播放经过频谱搬移后的语音信号

图5 频谱搬移效果仿真图

由图5所示,听取MATLAB播放出的处理后音频效果可知,当频谱搬移较小时,语音变化不大,有接近于机器人说话的失真效果,随着频谱搬移量增大,逐渐听到语音信号如猪叫,甚至最后沦为噪声的结果,但始终没能得到将男性变成女性声音的效果。为了能够达到更好的效果本文采取了第一种[9]。

4 结束语

本文利用数字滤波器设计出数字均衡器,区别于其他的均衡器的设计,既避免了IIR滤波器相位偏移的现象,又避免了FIR滤波器的延迟,因此对频率设计具有很好的效果。以MATLAB仿真为依据,FPGA为硬件开发平台共同完成。前者获得均衡器系数,后者则实现其硬件乘累加单元结构设计。充分利用了软硬件结合的优点,最终完成数字均衡器设计。同时,与传统的模拟手动调节幅频均衡器相比,本文增加了系统的仿真,能够更清楚的设计出所需要的均衡器,并且能任意更改均衡系数,得到最佳的伪装的结果,实现了最好的均衡效果[7]。

[1]丁玉美,高西全.数字信号处理[M].西安:西安电子科技大学出版社,2010.

[2]尹宝珠.均衡器的合理选用[J].西部广播电视,2005(5):15-16.

[3]谢詹奇,戴庆元.均衡器技术研究[J].微处理机,2009(3):23-26.

[4]王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社,2006.

[5]郭彩萍,倪文琦.MATLAB在数字滤波器设计中的应用[J].山西科技,2007(6):47-48.

[6]王国志,王红艳.Simulink在电力电子系统中的应用[J].许昌学院学报,2009(2):57-59.

[7]陈意军,黎福海.应用硬件描述语言VHDL开发FPGA[J].湖南工程学院学报(自然科学版),2004(3):41-43.

[8]苗澎.MATLAB在通信电子线路教学中的应用[J].实验科学与技术,2008(2):21-24.

[9]宋永东,张春明.于MATLAB的数字滤波器设计及仿真应用[J].延安大学学报(自然科学版),2007(2):33-36.

猜你喜欢
均衡器频谱滤波器
一种用于深空探测的Chirp变换频谱分析仪设计与实现
从滤波器理解卷积
一种基于稀疏度估计的自适应压缩频谱感知算法
开关电源EMI滤波器的应用方法探讨
基于Canny振荡抑制准则的改进匹配滤波器
基于TMS320C6678的SAR方位向预滤波器的并行实现
无线传感网OFDM系统中信道均衡器的电路实现
一种基于LC振荡电路的串联蓄电池均衡器
一种基于功率限制下的认知无线电的频谱感知模型
基于Labview的虚拟频谱分析仪的设计