(一) 音频输入与输出:
基本步骤是先用wavread 函数,将WAV 文件转换成列数组变量,然后使用用 wavwrite 函数还原成音量标准化的 WAV 文件。
举例: x = wavread('D:\mat\bin\audio1');
y = filter( [0.35,-1.3,2.0,-1.3,0.35], [1,-2.7,3.3,-2.0,0.57], x );
wavwrite(y,11025,'audio2'); % 写出的采样频率为11025
Ps:wavread函数读入的音频信号必须是无损的WAV音频
(二)设计数字滤波器:
用 Filter 或 Filter2 函数即可实现滤波处理,调用的Filter 函数格式是 Y = filte (B,A,X), 其中B 和A 是滤波器传输函数的分子和分母系数,X 是输入变量,Y是实现滤波后的输出变量,如果处理立体声音频信号 可分开处理 但用 FIR 滤波器时调用 Filter2 函数更方便。
高通滤波器:
% y[n] = 2.7y[n–1] – 3.3y[n–2] + 2.0y[n–3] – 0.57y[n–4] + 0.35x[n] – 1.3x[n–1] + 2.0x[n–2] – 1.3x[n–3] + 0.35x[n–4];
B = [ 0.35 ,-1.3 ,2.0, -1.3, 0.35]; % 分子系数
A = [ 1, -2.7, 3.3 , -2.0, 0.57]; % 分母系数
y = filte (B,A,x);
低通滤波器:
% y[n] = 2.2188y[n-1] - 3.0019y[n-2] + 2.4511y[n-3] - 1.2330y[n-4] + 0.3109y[n-5] + 0.0079 ( x[n] + 5x[n-1] + 10x[n-2] + 10x[n-3] + 5x[n-4] + x[n-5] );
B = 0.0079 * [ 1, 5, 10, 5, 1]; % 分子系数
A = [ 1, -2.2188, 3.0019, -2.4511, 1.2330, -0.3109]; % 分母系数
y = filte (B,A,x);
参考文献:
MATLAB 与 音频处理 相关内容摘记 http://www.cnblogs.com/sleepy/archive/2011/09/29/2195984.html