赞
踩
可以看到,除了有一部分直流分类没有滤除外,其他的噪声分量被滤波器过滤,时域上的噪音得到明显遏制。
值得注意的是,在完成以上处理之后,声音在7秒末和9秒末会出现明显跳变,十分刺耳。很明显这是由第8-10秒存在一定的直流分量造成的,同时在7秒末和9秒末存在冲击。通过滤波器,可以滤除低频分量,通过以下代码实现了直流分量的滤除:
freqmax = 1/fs
B = -2*cos(freqmax*2*pi)
hh = [1, B, 1];
yy = filter(hh, 1, yy);
因为时域上音频信号幅值明显小于0.5,冲击却明显远大于0.5,因此可通过以下代码实现消除冲击:
for k = 1:N
if yy(k)>=0.5 || yy(k)<=-0.5
yy(k) = 0;
end
end
在我滤除直流分量以及冲击量后,波形进一步规则,得到的时域赫尔频域波形
此时音频的跳变消失,变得十分自然。
在通过滤波器后,噪声频率分量得到有效的滤除,但由于存在直流分量,8-10秒声音的幅度不在0附近波动。频域上由于直流分类幅度过大,导致正常的频率分量几乎看不见。经过上述额外处理后,消除直流分类,可以看到音频主要集中在0-4kHz。
所使用的音频文件、MATLAB代码:
源代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。