线性相位IIR 滤波代码, 参考A Technique for Realizing Linear Phase IIR Filters 1991

% 参考: A Technique for Realizing Linear Phase IIR Filters  1991
clc; close all; clear all;
global b a  % H(z)分子分母
global L    % section length                     

% global FILO_BUF1 FILO_N1 FILO_DIRECT1       
% global FILO_BUF2 FILO_N2 FILO_DIRECT2
% global TOP_DATA                         % yes= TOP 有数据输入(TOP滤波输出会进入2L延迟器), BOT 输入0。
% global SAMPLE_COUNT                     % 数据点计数,1,2,3,...,L,/reset top/ L+1,L+2,...,2L,/reset bot/ 2L+1, ... 
% global DELAY_BUF_2L DELAY_BUF_2L_N      % 2L点延迟
% global RESET_BACK_TOP RESET_BACK_BOT              % yes=复位
% global RESET_FORWARD_TOP RESET_FORWARD_BOT              % yes=复位

% 初始化滤波器系数和截取长度L
load ECG_sample_noisy.mat
fs=ECGinfo.Fs_ECG2; fc=0.67;
x = ECG2;
[b,a,L]=init_filter_coefficient(fs,fc);

%-----------------------
init_global_variables(L);
y_zero_irr=zeros(size(x));
for k=1:length(x)
    y_zero_irr(k)=line_p

你可能感兴趣的:(生理信号分析,算法,数据分析)