В этом примере показано, как спроектировать обратный чебышевский низкочастотный фильтр четвертого порядка с частотой полосы остановок 10000 рад/сек и эпсилоном 0,01 (см. справочный раздел) с помощью rffilter
. Этот rffilter
может использоваться в circuit
или в rfbudget
объект.
The rffilter
объект используется для разработки радиочастотного фильтра. Фильтр требует минимального набора параметров, чтобы полностью определить его.
Параметрами для разработки обратного фильтра Чебышева может быть один из следующих:
Порядок фильтра, частота полосы пропускания, диапазон пропускания и затухание в полосе задерживания
Частоты Passband и Stop Band, Passband и Затухания в полосе задерживания
Порядок фильтра, Частота стоповой полосы, Затухание в полосе задерживания
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);
Опционально можно также использовать Signal Processing Toolbox, чтобы визуализировать аналоговый фильтр с помощью:
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 S22
poles_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| из Control System Toolbox, чтобы просмотреть передаточную функцию в факторизованной форме.
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. Boston: Kluwer Academic Publishers, 2001.