在学习了IIR滤波器的设计后,可以试图对一个混频信号进行滤波处理,下面附上我的实验报告。
一、实验目的
设计合适的IIR数字滤波器分别提取给定的混音文件中蛐蛐叫声和直升飞机的轰鸣声。独立编写实现上述功能的MATLAB程序,并生成提取后的音频文件。熟悉MATLAB变成,以及数字信号处理相关的MATLAB函数和命令。
二、实验内容
(1)首先在电脑上安装matlab2014及其相应组件,并将数字信号处理实验指导书上的代码示例进行练习,熟悉matlab的编程。
(2)借助audioread函数获取该音频文件的音频信号
(3)然后通过matlab画出混音信号在时域下的幅度曲线、在频域下的声图谱,观察其频率分布,可以看出飞机的轰鸣声位于0-2000Hz的范围内,三声蝉鸣则位于4000-5500Hz的范围内,在清楚了所要滤波的范围之后,即可开始设计IIR滤波器。
(4)低通滤波器:这里取通带频率为2500hz,阻带频率为4000hz,通带最大衰减为0.1dB,阻带最小衰减为60dB。我选择的是用已有的buttord计算出最符合条件的巴特沃思滤波器的阶数n和截止频率,再用butter计算n阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。求出之后使用filter函数进行滤波。
带通滤波器:通带频率为[4000,6000]hz,阻带频率为[3500,6500]hz, 通带最大衰减为0.1dB,阻带最小衰减为60dB。我选择的是用已有的buttord计算出最符合条件的巴特沃思滤波器的阶数n和截止频率,再用butter计算n阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。求出之后使用filter函数进行滤波。
(5)最后再将滤波后的音频通过函数audiowrite重新生成音频文件,就分别得到了蝉鸣和飞机轰鸣声两个文件。
三、实验步骤
(1)通过audioread函数获取该音频文件的音频信号
(2)通过plot()和spectrogram()函数画出混音信号在时域下的幅度曲线、在频域下的声图谱
(3)通过cheb1ord()和 butter()函数设计IIR低通滤波器和带通滤波器
(4)通过filter()函数进行滤波,并画出滤波后的频域特征和时域特征
(5)通过audiowrite()函数重制滤波后的音频文件
四、实验程序
%混音信号绘图程序
[sampledata,FS] = audioread('C:\Users\Administrator\Desktop\mixed.wav');
plot(0:(1/FS):4.5873,sampledata);
spectrogram(sampledata,128,120,128,FS);
%低通滤波器程序
[sampledata,FS] = audioread('C:\Users\Administrator\Desktop\mixed.wav');
wp=2500;
ws=4000;
rp=0.1;
rs=60;
wpp=wp/(FS/2);
wss=ws/(FS/2);
[N,Wn]=cheb1ord(wpp,wss,rp,rs,'s');
[B,A]=butter(N,Wn);
y=filter(B,A,sampledata);
spectrogram(y,128,120,128,FS);
audiowrite('plane.wav',y,FS);
%带通滤波器程序
[sampledata,FS] = audioread('C:\Users\Administrator\Desktop\mixed.wav');
wp=[4000,6000];
ws=[3500,6500];
rp=0.1;
rs=60;
wpp=wp/(FS/2);
wss=ws/(FS/2);
[N,Wn]=cheb1ord(wpp,wss,rp,rs,'s');
[B,A]=butter(N,Wn);
y=filter(B,A,sampledata);
spectrogram(y,128,120,128,FS);
audiowrite('insects.wav',y,FS);
五、实验结果
(一)混音信号在时域下的幅度曲线
(二)在频域下的声图谱
(三)低通滤波器输出信号的频域特征和时域特征曲线
(四)带通滤波器输出信号的频域特征和时域特征曲线
(五)通过滤波器得到的音频文件
六、实验心得
按照老师说的我又通过高通滤波器对蝉鸣进行滤波,发现也可以的,十分有成就感,更加加深了我对数字信号处理的热爱和理解。以前完全不了解音频信号,通过这次实验我看到了音频信号的本质,处理方法等等,对我来讲可谓是受益匪浅啊。
以往都是通过课本来感性的认知语音信号,通过本次的课程设计,让我对语音信号有了一个较为实际的认识。于此同时,让我再次把数字信号处理及数字滤波器的设计方法重新进行了复习和学习。而对于Matlab,也再次让我感受到了其功能的强大。最为重要的是,本次课程设计让我重新审视了学习的过程:只去做实验是不行的,首先还是要思考,遇到了问题查书籍,百度搜索也只是一种手段,更加重要的是想,再理解,只有这样才能真正的做好实验。