#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. можете ли вы объяснить в коде?