В этом примере показано, как сконструировать полосовой фильтр промежуточной частоты (IF) Butterworth с центральной частотой 400 МГц, полосой пропускания 5 МГц и вносимыми потерями (IL) 1dB [1].
Практические схемы страдают определенной степенью несоответствия. Несоответствие происходит, когда несопоставленная схема подключена к источнику РЧ, что приводит к отражениям, которые приводят к потере мощности, подаваемой в схему. Для определения этого несоответствия можно использовать IL. Рассчитайте несоответствие импеданса нагрузки для учета данного IL. Импеданс IL и нормализованная нагрузка (ZL) связаны следующим образом [2], [3]:
IL (dB) = -10 * log10 (1 γ in | ^ 2) = -10 * log10 (4 * ZL/( 1 + ZL) ^ 2)
Корни полученного полинома возвращают значение нормированного импеданса нагрузки. Ненормализованные значения - 132,986 Ом и 18,799 Ом. Выберите более высокое значение для конструкции фильтра, чтобы учесть IL.
syms ZL IL eqn = -10*log10(4*ZL/(1+ZL)^2) - IL == 0; [solx, ~, ~] = solve(eqn,ZL,'ReturnConditions', true); IL_desired_dB = 1; Zload = double(subs(solx,IL,IL_desired_dB))*50;
Импеданс нагрузки:
ZL = Zload(2);
Использовать rffilter для проектирования фильтра в соответствии с требуемыми спецификациями.
Fcenter = 400e6; Bwpass = 5e6; if_filter = rffilter('ResponseType','Bandpass',... 'FilterType','Butterworth','FilterOrder',4,... 'PassbandAttenuation',10*log10(2),... 'Implementation','Transfer function',... 'PassbandFrequency',[Fcenter-Bwpass/2 Fcenter+Bwpass/2],'Zout',ZL);
Вычислите S-параметры.
freq = linspace(370e6,410e6,2001); Sf = sparameters(if_filter, freq); figure; line = rfplot(Sf); lgd = legend; lgd.Location = "best"; [~,freq_index] = min(abs(freq-Fcenter)); datatip(line(3),'DataIndex',freq_index);

Дататип показывает 1dB IL при Fcenter = 400 МГц.
Вычислить групповую задержку:
gd = groupdelay(if_filter, freq); figure; plot(freq/1e6, gd); xlabel('Frequency (MHz)'); ylabel('Group delay (s)'); grid on;

Объект rffilter может быть вставлен непосредственно в rfbudget объект для выполнения анализа бюджета.
rfb = rfbudget(if_filter,Fcenter,-30,Bwpass)
rfb =
rfbudget with properties:
Elements: [1x1 rffilter]
InputFrequency: 400 MHz
AvailableInputPower: -30 dBm
SignalBandwidth: 5 MHz
Solver: Friis
AutoUpdate: true
Analysis Results
OutputFrequency: 400 (MHz)
OutputPower: -31 (dBm)
TransducerGain: -1 (dB)
NF: 0 (dB)
IIP2: [] (dBm)
OIP2: [] (dBm)
IIP3: Inf (dBm)
OIP3: Inf (dBm)
SNR: 76.99 (dB)
[1] Хунбао Чжоу, Бин Ло. «Дизайн и анализ бюджета РЧ приемника 5.8GHz ETC reader» Опубликовано в Communication Technology (ICCT), 2010 12-я Международная конференция IEEE, Нанкин, Китай, ноябрь 2010.
[2] Анализ и синтез электронных фильтров, Майкл Г. Эллис, старший, Artech House, глава 7.
[3] RF Circuit Design, Р. Людвиг, Г. Богданов, Pearson Education, глава 2.
Супергетеродинный приемник с помощью приложения RF Budget Analyzer