Matlab 音频高低通滤波

来源:互联网 发布:js获取某个标签 编辑:程序博客网 时间:2024/05/16 05:50

(一) 音频输入与输出:

          基本步骤是先用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),  其中是滤波器传输函数的分子和分母系数,是输入变量,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



0 0
原创粉丝点击