(广东鼎华科技股份有限公司 广东佛山 528000)
摘要:在通信系统中,FIR滤波器作为数字信号处理系统的基本元件之一,具有广泛的应用。本文对通信系统中FIR音频降噪滤波器的设计展开了分析,并使用Matlab软件,对比分析不同窗函数的FIR滤波器滤波效果,为有关需要提供参考。
关键词:FIR;降噪滤波器;设计
随着数字通信技术以及音频技术的快速发展,人们对音频的降噪处理提出了更高的要求,对FIR音频降噪滤波器的设计展开探讨具有十分重要的意义。如何合理设计FIR滤波器,对含噪声信号进行处理,获得清晰的语音信号成为了当前的一个重要课题。基于此,笔者展开了分析和介绍。
1.设计思路
用waveread()函数读取音频和其采样率和采样位宽,对读取的音频信号使用fft()函数进行快速傅立叶变换并绘出得到的频谱。观察频谱分析噪声(蜂鸣信号)的谐波频率分布,选择合适的滤波模式将噪声信号的谐波滤去,便可以得到去除噪声后的人声。设计滤波器的频域特性便成了除去噪声并留下原声的关键,笔者注意到采样定理以及一维sinc函数(辛格函数) ,根据所要保留的和需要截掉的信号频率分布,选择了相对其他窗函数而言选择效果最佳的汉宁窗函数使得旁瓣互相抵消,消去高频干扰和漏能。它适用于非周期性的连续信号。利用它的选择特性使用fir1()建立一个汉宁窗函数,并用filter()函数进行滤波,去除噪声部分。最后用play()函数播放音频检查效果。
2.设计过程
2.1音频的读取和分析
先将原始音频文件读入,频域图如图1所示。[audio0,Fs,nbits]=wavread('C:\Users\Administrator\Desktop\signal\buzz.wav');%按路径读取音频存入audio0变量,并用Fs变量记录采样率,nbits变量记录采样位宽。
其中,
Fs=11025#采样率为11025Hz
nbits=32#采样带为32
p0=audioplayer(audio0,Fs);%将audio0载入音频播放器
play(p0);%并进行播放
subplot(2,1,1);%分屏绘图
plot(audio0);%绘制原始音频时域图,如下图所示
title('时域');%标注题目
[k]=fft(audio0,Fs);%对原始音频进行快速傅立叶变换
subplot(2,1,2);
plot(abs(k));%绘制原始音频频域图
title('频域');
plot(abs(k));%重绘图像
set(gca,'XLim',[01000]);%更改显示范围为0-1000
set(gca,'XTick',[0:20:1000]);%更改坐标步长为20
观察图像可发现,干扰信号的谐波频率为:220,440,660,880Hz,在放大后发现噪声信号为4个几乎对称的三角波,而非单位冲击,结合以上几个图,笔者分析得到干扰信号主要分布在0~1000Hz以内,而人声是大部分分布于大于1000Hz区间的,由此笔者想到了对频率具有选择特性的滤波器,且此处需要设计一个高通滤波器,以将位于0~1000Hz以内的噪声滤掉,留下大于1000Hz人声信号。
2.2滤波器的设计
由于干扰信号的谐波频率为:220,440,660,880Hz,而人类说话的频率大概在300~3400Hz,而干扰信号非常大,需要一个滤波器来实现将大约高于1000Hz的信号保留,低于1000Hz的信号滤掉,观察分贝图,发现大部分噪声分布在40dB以内,因此阻带最小衰减不应小于40dB,根据以上所需要的设计参数,笔者根据频域特性对表1所示几个窗函数进行选择。
根据上表显示各种窗函数的参数特点,以及阻带最小衰减不应小于40dB,尝试并发现选择Hanning窗滤波是最合适的,利用其可以使旁瓣互相抵消的频域特性进行滤波,据此可设定合适的参数设计得到一个Hanning窗函数高通滤波器。
fp=1000;fs=900;%通带频率fp,阻带频率fs
wp=2*fp*pi/Fs;ws=2*fs*pi/Fs;%归一化边界频率
wc=(wp+ws)/2/pi;%归一化中心频率
wdp=wp-ws;#过渡带宽
N=ceil(12*pi/wdp);%由窗函数主瓣宽和过渡带宽,求得窗函数最小长度
N=N+mod(N,2);%高通滤波器N必为奇数
HPfir=fir1(N,wc,'high',hanning(N+1));%设计高通hanning窗滤波器HPfir
该滤波器的主要参数为:通带边界为1000Hz,阻带边界为900Hz,阻带衰减不小于40dB。
接下来在时域和频域直观地展示其滤波特性,再根据滤波效果对其参数做微调,
figure;%新建图像
subplot(2,1,1);plot(HPfir);%绘制滤波器时域图像
title('滤波器时域');
subplot(2,1,2);
plot(abs(fft(HPfir)));%绘制滤波器频域图像
title('滤波器频域');
得到图4所示的滤波器时域和频域特性图。
由图4可见该滤波器的截止频率大约在900~1000Hz之间,并且通带带内波动极小,滤波效果会很,好说明该滤波器是完全符合设计的目的。
图4基于汉宁函数的高通滤波器时域和频域图
2.3音频滤波
滤波器设计完成之后,对原始音频信号进行滤波处理:
audio1=filter(HPfir,1,audio0);%使用filter函数对原声做一维数字滤波
p1=audioplayer(audio1,Fs);
figure;%新建滤波后的图像
subplot(2,1,1);plot(audio1);%绘制滤波后的时域图像
title('滤波后时域');
[k0]=fft(audio1,Fs);%对滤波后的信号做快速傅里叶变换
subplot(2,1,2);
plot(abs(k0));%绘制滤波后的频域图像
title('滤波后频域');
此时,得到了如图5所示的滤波后的时域和频域图像。
图5滤波后时域和频域图
最后由于处理后的声音信号幅度较小,听不清晰,需要对音频信号进行增幅处理。
audio1=audio1*10;%增幅处理
p1=audioplayer(audio1,Fs);
play(p1);%播放处理后的音频
至此,设计结束,笔者获得了去除噪音后较为清晰的、完整的人声信号。
3.基于不同窗函数的FIR滤波器滤波效果分析与对比
如图6所示,笔者将基于窗函数的FIR滤波器进行了以下扩展设计,使用两个传声器接收空间中的信号,包括传声器1和传声器2,其中传声器1接收原始含噪信号S1,传声器2仅接收杂乱无章的噪声信号S2。初级处理,将上述两个传声器:传声器1和传声器2接收的信号在时域上作差,即S1-S2,初步得到较为纯净的信号S3。在特定的时间段内计算信号S2,S3的平均功率P2,P3并得出信噪比SNR1:SNR1=10lg 。所得到的信噪比SNR1可以初步认为是噪声与信号量化相对幅度大小,它将作为后续选择窗函数类型的直接依据之一。另一方面,利用频谱分析技术对上述信号S2,S3通过快速傅里叶变换算法得到信号S2,S3的频谱分布,目的是判断噪声信号与有用信号的频谱相对位置。根据以上求得的信噪比的数值从以下几种窗函数中选取最合适的窗函数,再结合频谱分布构建FIR滤波器,这些窗函数包括.:Hanningwindow(汉宁窗)、Hanningwindow(海明窗)、Kaiserwindow(凯撒窗)、Blackmanwindow(布莱克曼窗)、Triangwindow(三角窗)、Boxcarwindow(矩形窗)。
这样就将空间中接收的含有强干扰的语音信号通过最佳的窗函数选择提取出了较好的语音信号。
4.结语
综上所述,在通信系统中,常常会需要进行音频信号的降噪处理,如何合理设计FIR滤波器电路,有效降低音频信号的噪声是一个重要的课题。在FIR音频降噪滤波器设计中,需要结合信号的实际特征,合理选择窗函数,从而获取最优语音信号。
参考文献:
[1]王涛.数字滤波器在实际语音降噪中的应用[J].信息通信,2018(03):30-31.
[2]黄晓珊,徐国保.基于MATLAB语音降噪IIR滤波器的设计[J].现代计算机(专业版),2016(22):48-52.
[3]朱红运,王长龙,王建斌,马晓琳.基于奇异值分解和Savitzky-Golay滤波器的信号降噪方法[J].计算机应用,2015,35(10):3004-3007+3012.
论文作者:杨镁
论文发表刊物:《电力设备》2018年第10期
论文发表时间:2018/8/6
标签:滤波器论文; 信号论文; 函数论文; 时域论文; 音频论文; 噪声论文; 传声器论文; 《电力设备》2018年第10期论文;