В этом примере показано, как сконструировать обратный фильтр Чебышева четвертого порядка с частотой стоп-полосы 10000 рад/с и эпсилоном 0,01 (см. справочный раздел), используя rffilter. Это rffilter может использоваться в circuit или в rfbudget объект.
rffilter используется для проектирования радиочастотного фильтра. Для полного определения параметров для фильтра требуется минимальный набор.
Параметрами для построения обратного фильтра Чебышёва может быть один из следующих:
Порядок фильтрации, частота полосы пропускания, полоса пропускания и затухание полосы останова
Частота полосы пропускания и стоп-диапазона, затухание полосы пропускания и стоп-диапазона
Порядок фильтрации, частота стоп-диапазона, затухание стоп-диапазона
N = 4; % Filter order Fs = 1000/(2*pi); % Stopband frequency epsilon = 0.01; Rs = 10*log10((1+epsilon^2)/epsilon^2); % Stopband attenuation
Используйте первый набор параметров для определения фильтра.
r = rffilter('FilterType','InverseChebyshev','ResponseType','Lowpass', ... 'Implementation','Transfer function','FilterOrder',N, ... 'PassbandFrequency',Fs,'PassbandAttenuation',Rs, ... 'StopbandAttenuation',Rs);
Примечание.Кроме того, для проектирования одного и того же фильтра можно использовать третий набор параметров:
r = rffilter('FilterType','InverseChebyshev','ResponseType','Lowpass', ... 'Implementation','Transfer function','FilterOrder',N, ... 'StopbandFrequency',Fs,'StopbandAttenuation',Rs);
Ограничение этого набора параметров состоит в том, что предполагается, что ослабление полосы пропускания должно быть фиксировано на 10 * log10 (2) дБ.
frequencies = linspace(0,2*Fs,1001); rfplot(r, frequencies);



Дополнительно можно использовать панель инструментов обработки сигналов для визуализации аналогового фильтра с помощью:
freqs(numerator{2,1},denominator)
[z,p,k] = zpk(r);
Можно получить нули, полюса и коэффициент усиления передаточной функции (S21) с помощью:
format long g zeros_21 = z{2,1}
zeros_21 = 4×1 complex
0 + 1082.39220029239i
0 - 1082.39220029239i
0 + 2613.12592975275i
0 - 2613.12592975275i
poles_21 = p % Same denominator for S11, S12, S21 and S22poles_21 = 4×1 complex
-171.158733950657 + 476.096694464131i
-171.158733950657 - 476.096694464131i
-504.530434776367 + 240.786480832184i
-504.530434776367 - 240.786480832184i
k_21 = k{2,1}k_21 =
0.00999950003749688
Просмотрите эти формы коэффициентов непосредственно из фильтра r.
disp('Numerator of Transfer function as factors:');Numerator of Transfer function as factors:
r.DesignData.Numerator21
ans = 2×3
1 0 1171572.87525381
0.00999950003749688 0 68280.8572899443
disp('Denominator of Transfer function as factors:');Denominator of Transfer function as factors:
r.DesignData.Denominator
ans = 2×3
1 342.317467901314 255963.374687264
1 1009.06086955273 312529.088967178
Либо используйте | zpk | из панели инструментов системы управления для просмотра функции переноса в факторизованной форме.
G_s = zpk(zeros_21,poles_21,k_21)
G_s =
0.0099995 (s^2 + 1.172e06) (s^2 + 6.828e06)
-------------------------------------------------
(s^2 + 1009s + 3.125e05) (s^2 + 342.3s + 2.56e05)
Continuous-time zero/pole/gain model.
[1] Паарман, Л. Д. Проектирование и анализ аналоговых фильтров: перспектива обработки сигналов. SECS 617. Бостон: Kluwer Academic Publishers, 2001.