Фильтр IIR с компенсацией фазовой задержки Matlab 2012

#matlab #filter

#matlab #Фильтр

Вопрос:

Я разработал следующий фильтр и хотел бы найти нулевую задержку фазы между входом [x] и отфильтрованным сигналом [Filtsig]. Я знаю, как использовать y = filtfilt (d, x), но мой matlab поддерживает только следующий случай: Filtsig Case1=filtfilt(sos, g, x) Filtsig Case2=filtfilt(b, a, x)

 function Hd = untitled0
%UNTITLED0 Returns a discrete-time filter object.

% MATLAB Code
% Generated by MATLAB(R) 9.0 and the Signal Processing Toolbox 7.2.
% Generated on: 02-Apr-2019 20:28:37

% Butterworth Lowpass filter designed using FDESIGN.LOWPASS.

% All frequency values are in Hz.

Fs = 350;  % Sampling Frequency

Fpass = 60;          % Passband Frequency
Fstop = 70;          % Stopband Frequency
Apass = 1;           % Passband Ripple (dB)
Astop = 80;          % Stopband Attenuation (dB)
match = 'stopband';  % Band to match exactly

% Construct an FDESIGN object and call its BUTTER method.
h  = fdesign.lowpass(Fpass, Fstop, Apass, Astop, Fs);
Hd = design(h, 'butter', 'MatchExactly', match);

Filtsig=filtfilt(sos,g,x)
Filtsig=filtfilt(b,a,x)


% Construct an FDESIGN object and call its BUTTER method.
h  = fdesign.lowpass(Fpass, Fstop, Apass, Astop, Fs);
Hd = design(h, 'butter', 'MatchExactly', match);

Filtsig=filtfilt(sos,g,x)
Filtsig=filtfilt(b,a,x)
  

Комментарии:

1. Проверяя ваш объект Hd , вы увидите, что он включает в себя sos-матрицу и значения масштаба. Итак, здесь есть все, что вам нужно.

2. можете ли вы объяснить в коде?