利用MATLAB GUI设计平台,用窗函数法设计FIR数字滤波器,对所给出的含有噪声的声音信号进行数字滤波处理,得到降噪的声音信号,进行时域频域分析,同时分析不同窗函数的效果。将文件解压至一个目录下,运行m文件即可使用。
读取.wav音频文件函数:audioread();(老版本为wavread)
MATLAB播放音乐函数:sound();
MATLAB停止播放音乐:clear sound
写入.wav音频文件函数:audiowrite();(老版本为audiowrite)
加入白噪声:noise=(max(x(:,1))/5)*randn(x,2);
y=x+noise;
频谱分析: fft();
fftshift();
Fir滤波: fir1(n,Wn,ftype,window);
窗函数选择:
梯形窗boxcar
三角窗triang
海明窗hamming
汉宁窗hanning
布莱克曼窗blackman
凯塞窗kaiser
1、打开文件:选择路径打开wav格式的音频文件,自动生成音频的原始波形与频谱。
2、加入噪声:有两种噪声可以选择加入,一种是白噪声,其频率蔓延整个频谱;一种是特定频率的噪声,可通过输入频率加入单一频率的噪声。加入噪声后自动绘制加入噪声后的波形与频谱。
3、滤波处理:首先输入滤波器通/阻带的开始频率与截止频率(若为低/高通类型滤波,则只需输入开始频率;若为带通/阻类型,则开始与截止都要输入;输入频率值为真实频率值,可根据频谱图进行判断 ),之后选取窗函数和滤波类型,将会生成滤波处理后的波形与频谱。
4、音频播放/停止:可随时播放/停止原始、加噪、滤波处理后的音频。
5、图片导出:将波形、频谱图片一张张导出保存,可选的格式有jpg、png、bmp、eps。
6、保存文件:将加躁/滤波后的音频导出保存。
选取音乐“卢本伟语音包”,转换为wav格式导入,得到结果如下


仍选用上例中的5000Hz频率噪声,同时增加噪声幅度,如下图所示:
该种情况下滤波效果的总体排序为:凯瑟窗>矩形窗>汉宁窗>海明窗=三角窗>布莱克曼窗。
本项目是本人基于其他滤波GUI设计的二次开发,大部分内容均为原创,若有侵权请及时告知。
CSDN链接:https://blog.csdn.net/qq_42679573/article/details/105716092



