Создать объект радиочастотного фильтра
Используйте rffilter объект для создания RF-фильтра Butterworth, Chebyshev или Inverse Chebyshev. РЧ-фильтр является 2-портовым объектом цепи, и этот объект можно включить в качестве элемента цепи.
Дополнительные сведения о конструкции см. в разделе Параметры для определения фильтра и советы по проектированию.
Также можно преобразовать rffilter объект к оболочечнику с помощью lcladder объект. LCLad = lcladdder(rffiltobj) где rffilterobj является rffilter объект.
rffiltobj = rffilter создает 2-портовый фильтр со свойствами по умолчанию.
rffiltobj = rffilter(Name,Value) задает свойства, используя одну или несколько пар имя-значение. Например, rffiltobj = rffilter('FilterType','Chebyshev') создает 2-портовый РЧ-фильтр Чебышева. Можно указать несколько пар имя-значение. Заключите каждое имя свойства в кавычку.
FilterType - Тип фильтра'Butterworth' (по умолчанию) | 'Chebyshev' | 'InverseChebyshev'Тип фильтра, указанный как 'Butterworth', 'Chebyshev', или 'InverseChebyshev'.
Пример: 'FilterType','Chebyshev'
Пример: rfobj.FilterType = 'Chebyshev'
Типы данных: char | string
ResponseType - Тип ответа фильтра'Lowpass' (по умолчанию) | 'Highpass' | 'Bandpass' | 'Bandstop'Тип ответа фильтра, указанный как 'Lowpass', 'Highpass', 'Bandpass', или 'Bandstop'. Дополнительные сведения см. в разделе Частотные отклики.
Пример: 'ResponseType','Highpass'
Пример: rfobj.ResponseType = 'Highpass'
Типы данных: char | string
Implementation - Реализация фильтра'LC Tee' (по умолчанию) | 'LC Pi' | 'Transfer function'Реализация фильтра, указанная как 'LC Tee', 'LC Pi', или 'Transfer function'.
Пример: 'Implementation','Transfer function'
Пример: rfobj.Implementation = 'Transfer function'
Для 'Inverse Chebyshev' фильтр типа, можно использовать только 'Transfer function' реализация.
Типы данных: char | string
FilterOrder - Порядок фильтрации3 (по умолчанию) | действительное конечное неотрицательное целое числоПорядок фильтра, заданный как действительное конечное неотрицательное целое число. В фильтре нижних или верхних частот порядок определяет количество скошенных элементов хранения. В полосовом или полосовом фильтре количество скошенных элементов хранения вдвое превышает значение порядка.
Примечание
FilterOrder имеет наивысший приоритет среди всех пар имя-значение в конструкции фильтра. Использование этого свойства устанавливает UseFilterOrder свойство только для чтения имеет значение true.
Пример: 'FilterOrder',4
Пример: rfobj.FilterOrder = 4
Типы данных: double
PassbandFrequency - Частота полосы пропусканияЧастота полосы пропускания, указанная как:
Скаляр в герцах для фильтров нижних и верхних частот.
Двухэлементный вектор в герцах для полосовых или полосовых фильтров.
По умолчанию значения: 1e9 для фильтра нижних частот, 2e9 для фильтра верхних частот, и [2e9 3e9] для полосы пропускания и [[1e9 4e9] для полосовых фильтров.
Пример: 'PassbandFrequency',[3e6 5e6]
Пример: rfobj.PassbandFrequency = [3e6 5e6]
Типы данных: double
StopbandFrequency - Частота полосы остановаЧастота полосы останова, заданная как:
Скаляр в герцах для фильтров нижних и верхних частот.
Двухэлементный вектор в герцах для полосовых или полосовых фильтров.
По умолчанию значения: 2e9 для фильтра нижних частот, 1e9 для фильтра верхних частот, [1.5e9 3.5e9] для полосовых фильтров, и [2.1e9 2.9e9] полосовые фильтры.
Пример: rffilter('ResponseType','lowpass','StopbandFrequency',[3e6 5e6])
Пример: rfobj.StopbandFrequency = [3e6 5e6]
Типы данных: double
PassbandAttenuation - Затухание полосы пропускания10*log10(2) (по умолчанию) | скалярОслабление полосы пропускания, указанное как скаляр в дБ. Для полосовых фильтров это значение применяется одинаково к обоим краям полосы пропускания.
Пример: 'PassbandAttenuation',5
Пример: rfobj.PassbandAttenuation = 5
Типы данных: double
StopbandAttenuation - Затухание полосы останова40 (по умолчанию) | скалярЗатухание полосы останова, указанное как скаляр в дБ. Для полосовых фильтров это значение применяется одинаково к обоим краям полосы останова.
Пример: 'StopbandAttenuation',30
Пример: rfobj.StopbandAttenuation = 30
Типы данных: double
Zin - Импеданс источника50 (по умолчанию) | положительный конечный скаляр вещественной частиИмпеданс источника, определяемый как конечный скаляр положительной действительной части в омах.
Пример: 'Zin',70
Пример: rfobj.Zin = 70
Типы данных: double
Zout - Импеданс нагрузки50 (по умолчанию) | положительный конечный скаляр вещественной частиИмпеданс нагрузки, определяемый как конечный скаляр положительной действительной части в омах.
Пример: 'Zout',70
Пример: rfobj.Zout = 70
Типы данных: double
Name - Наименование объекта радиочастотного фильтра 'Filter' (по умолчанию) | символьный векторИмя объекта радиочастотного фильтра, заданного как символьный вектор. Два элемента в одной цепи не могут иметь одинаковое имя. Все имена должны быть допустимыми именами переменных MATLAB ®.
Пример: 'Name','filter1'
Пример: rfobj.Name = 'filter1'
Типы данных: char | string
NumPorts - Количество портов2Количество портов, указанных как 2. Это свойство доступно только для чтения.
Типы данных: double
Terminals - Наименования терминалов{'p1+','p2+','p1-','p2-'}Имена терминалов, указанных как {'p1 +', 'p2 +', 'p1-', 'p2-'}. Это свойство доступно только для чтения.
Типы данных: char
DesignData - Расчетные данные фильтраФильтрация проектных данных, указанных как структура. Это свойство доступно только для чтения. Дополнительные сведения см. в разделе Проектные данные для топологий LC Tee и LC Pi и проектные данные для реализации функции передачи.
Типы данных: struct
UseFilterOrder - Использование заказа на фильтр для проектирования фильтраtrue | falseИспользование порядка фильтра для проектирования фильтра, указанного как true или false. Это свойство доступно только для чтения.
Типы данных: logical
groupdelay | Групповая задержка объекта S-параметра или объекта RF-фильтра или объекта цепи RF Toolbox |
sparameters | Объект S-параметра |
set | Набор rffilter значения свойств объекта |
zpk | Преобразование rffilter в представление с нулевым полюсным усилением |
tf | Преобразование rffilter в передаточную функцию |
lcladder | Объект многозвенной цепи LC |
rfplot | Постройте график коэффициента отражения на входе и коэффициента усиления преобразователя согласующей сети |
clone | Создание копии существующего элемента цепи или объекта цепи |
circuit | Объект цепи |
Создайте и просмотрите свойства объекта радиочастотного фильтра по умолчанию.
rfobj = rffilter
rfobj =
rffilter: Filter element
FilterType: 'Butterworth'
ResponseType: 'Lowpass'
Implementation: 'LC Tee'
FilterOrder: 3
PassbandFrequency: 1.0000e+09
PassbandAttenuation: 3.0103
Zin: 50
Zout: 50
DesignData: [1x1 struct]
UseFilterOrder: 1
Name: 'Filter'
NumPorts: 2
Terminals: {'p1+' 'p2+' 'p1-' 'p2-'}
rfobj.DesignData
ans = struct with fields:
FilterOrder: 3
Inductors: [7.9577e-09 7.9577e-09]
Capacitors: 6.3662e-12
Topology: 'lclowpasstee'
PassbandFrequency: 1.0000e+09
PassbandAttenuation: 3.0103
Создание объекта фильтра полосы пропускания Butterworth с именем BFCG_162W с частотами полосы пропускания между 950 и 2200 МГц, частотами полосы останова между 770 и 3000 МГц, затуханием полосы пропускания 3,0 дБ и затуханием полосы останова 40 дБ с использованием типа реализации «LC Tee». Вычислите S-параметры фильтра при 2,1 ГГц.
robj = rffilter('ResponseType','Bandpass','Implementation','LC Tee','PassbandFrequency',[950e6 2200e6], ... 'StopbandFrequency',[770e6 3000e6],'PassbandAttenuation',3,'StopbandAttenuation',40); robj.Name = 'BFCG_162W'
robj =
rffilter: Filter element
FilterType: 'Butterworth'
ResponseType: 'Bandpass'
Implementation: 'LC Tee'
PassbandFrequency: [950000000 2.2000e+09]
PassbandAttenuation: 3
StopbandFrequency: [770000000 3.0000e+09]
StopbandAttenuation: 40
Zin: 50
Zout: 50
DesignData: [1x1 struct]
UseFilterOrder: 0
Name: 'BFCG_162W'
NumPorts: 2
Terminals: {'p1+' 'p2+' 'p1-' 'p2-'}
Вычислите S-параметры при 2,1 ГГц.
s = sparameters(robj,2.1e9)
s =
sparameters: S-parameters object
NumPorts: 2
Frequencies: 2.1000e+09
Parameters: [2x2 double]
Impedance: 50
rfparam(obj,i,j) returns S-parameter Sij
Построить lcladder объект из rffilter объект. Этот объект оболочки можно использовать непосредственно в цепи, а также для параметрического анализа значений индуктивности и емкости.
l = lcladder(robj)
l =
lcladder: LC Ladder element
Topology: 'bandpasstee'
Inductances: [1x11 double]
Capacitances: [1x11 double]
Name: 'lcfilt'
NumPorts: 2
Terminals: {'p1+' 'p2+' 'p1-' 'p2-'}
Альтернативно, для доступа к индукторам и конденсаторам непосредственно из объекта фильтра используют:
L = robj.DesignData.Inductors; C = robj.DesignData.Capacitors;
Создайте фильтр нижних частот Чебышева с частотой полосы пропускания 2 ГГц.
robj = rffilter('FilterType','Chebyshev','PassbandFrequency',2e9);
Установить порядок фильтрации в 5 и осуществление LC Pi.
set(robj,'FilterOrder',5,'Implementation','LC Pi');
Вычислите групповую задержку фильтра при 1,9 ГГц.
groupdelay(robj,1.9e9)
ans = 1.4403e-09
В этом примере показано, как сконструировать фильтр Баттерворта нижних частот с частотой полосы пропускания 3 кГц, частотой полосы останова 7 кГц, ослаблением полосы пропускания 2 дБ и ослаблением полосы останова 60 дБ. Отображение порядка фильтрации такого разработанного фильтра и определение частоты полосы пропускания на уровне 3,0103 дБ. См. [2] в rffilter страница объекта.
Параметры фильтра
Fp = 3e3; % Passband frequency, Hz Ap = 2; % Passband attenuation, dB Fs = 7e3; % Stopband frequency, Hz As = 60; % Stopband attenuation, dB
Фильтр проектирования
r = rffilter("FilterType","Butterworth","ResponseType","Lowpass","Implementation","Transfer function","PassbandFrequency",Fp, ... "PassbandAttenuation",Ap,"StopbandFrequency",Fs,"StopbandAttenuation",As);
Порядок фильтров проектируемого фильтра
N = r.DesignData.FilterOrder;
sprintf('Calculated filter order is %d',N)ans = 'Calculated filter order is 9'
Частота на 3,0103 дБ
F_3dB = r.DesignData.PassbandFrequency/1e3;
sprintf('Frequency at 3.0103 dB is %d kHz',F_3dB)ans = 'Frequency at 3.0103 dB is 3.090733e+00 kHz'
Визуализация амплитудной характеристики
frequencies = linspace(0,2*Fs,1001); rfplot(r, frequencies)

Примечание: Использование rfplot и plot на том же рисунке использовать setrfplot. Напечатать 'help setrfplot'в командном окне для получения информации.
Ссылка
Ларри Д. Паарман, Проектирование и анализ аналоговых фильтров: Перспектива обработки сигналов, Академические издатели Клювера
Сконструировать низкочастотный фильтр Чебышева с полосовой пульсацией 0,1 дБ, частотой отсечки 1 рад/с и затуханием 50 дБ при 1,1 рад/с. Отображение порядка фильтрации этого разработанного фильтра [1].
Определение параметров
Fp = 1/(2*pi); % Passband frequency, Hz Rp = 0.1; % Ripple in Passband, dB Fs = 1.1/(2*pi); % Stopband frequency, Hz As = 50; % Stopband attenuation, dB
Фильтр проектирования
r = rffilter("FilterType","Chebyshev","ResponseType","Lowpass","Implementation","Transfer function","PassbandFrequency",Fp, ... "PassbandAttenuation",Rp,"StopbandFrequency",Fs,"StopbandAttenuation",As)
r =
rffilter: Filter element
FilterType: 'Chebyshev'
ResponseType: 'Lowpass'
Implementation: 'Transfer function'
PassbandFrequency: 0.1592
PassbandAttenuation: 0.1000
StopbandFrequency: 0.1751
StopbandAttenuation: 50
Zin: 50
Zout: 50
DesignData: [1x1 struct]
UseFilterOrder: 0
Name: 'Filter'
NumPorts: 2
Terminals: {'p1+' 'p2+' 'p1-' 'p2-'}
Порядок фильтров проектируемого фильтра
N = r.DesignData.FilterOrder;
sprintf('Calculated filter order is %d',N)ans = 'Calculated filter order is 19'
Ссылка
Г. Эллис, Майкл, Sr.Electronic Filter Analysis and Synthesis, Artech House, 1994
Спроектируйте даже чебышевский фильтр и постройте график частотной характеристики фильтра.
Частотная характеристика фильтра Чебышева четного порядка с использованием реализации передаточной функции
Проектировать даже чебышевский фильтр с заданными параметрами.
Fp = 3e9; % Passband frequency, GHz Rp = 10; % Passband attenuation, dB Fs = 7e9; % Stopband frequency, GHz As = 50; % Stopband attenuation, dB rffiltobj = rffilter("FilterType","Chebyshev","ResponseType","Lowpass","Implementation","Transfer function","PassbandFrequency",Fp,... "PassbandAttenuation",Rp,"StopbandAttenuation",As, "StopbandFrequency",Fs);
Постройте график частотной характеристики четного чебышевского фильтра с помощью rfplot функция.
rfplot(rffiltobj,linspace(0,7.5e9,1001))
Визуализация затухания полосы останова и полосы пропускания с помощью plot функция.
hold on; plot([0 7.5], repmat([-rffiltobj.PassbandAttenuation -rffiltobj.StopbandAttenuation],2,1),'--')

Использовать DesignData для проверки порядка фильтра.
N = rffiltobj.DesignData.FilterOrder;
sprintf('Calculated filter order is %d',N)ans = 'Calculated filter order is 4'
Для топологий LC Tee или Pi, DesignData возвращает значения индуктора и конденсатора. Кроме того, DesignData включает другие расчетные параметры, относящиеся к типу ответа.
Lowpass/Highpass Response: Порядок фильтрации, Частота полосы пропускания, Ослабление полосы пропускания
Полосовой отклик: порядок фильтра, частота полосы пропускания, ослабление полосы пропускания, вспомогательный (Wx).
Ответ полосы пропускания: порядок фильтра, частота полосы останова, ослабление полосы пропускания, вспомогательный (Wx).
Для отклика bandstop Wx является настройкой для первой частоты, на которой прототип нижних частот удовлетворяет предписанным потерям bandstop. Для полосовой характеристики Wx - это корректировка характеристики ослабления полосы пропускания, не равной 3 дБ. Для получения дополнительной информации см. [1].
Для реализации передаточной функции, DesignData возвращает факторизованные полиномиальные коэффициенты для S-параметров. Эти факторы группируют комплексные сопряженные члены для сохранения точности. Все S-параметры имеют общий знаменатель, присутствующий в Denominator. Числительные члены для S11, S22 и S21 (S21 = S12) могут быть оценены с использованием факторизованного многочлена, присутствующего в числителях Numerator11, Numerator22, и Numerator21соответственно.
Например, рассмотрим фильтр нижних частот по умолчанию с частотой 1 ГГц. Можно найти S21 данные на частоте 1 ГГц для фильтра следующим образом:
r = rffilter('Implementation','Transfer function'); f = 1e9; num21 = [polyval(r.DesignData.Numerator21(1,:),1i*2*pi*f) ... polyval(r.DesignData.Numerator21(2,:),1i*2*pi*f)]; den = [polyval(r.DesignData.Denominator(1,:),1i*2*pi*f) ... polyval(r.DesignData.Denominator(2,:),1i*2*pi*f)]; s21_1GHz = prod(num21./den,2)
s21_1GHz = -0.5000 - 0.5000i
sparameters функция для вычисления примера:S = sparameters(r,1e9); S.Parameters(2,1)
ans = -0.5000 - 0.5000i
Кроме того, DesignData включает другие расчетные параметры, относящиеся к типу ответа для:
Lowpass/High Pass Response: Порядок фильтрации, Частота полосы пропускания, Вспомогательный (Numerator21 Многочлен)
Примечание
Частота полосы пропускания для фильтра Баттерворта составляет 3 дБ.
Полосовой отклик: Порядок фильтров, Частота полосы пропускания, Вспомогательный (Wx, Numerator21 Многочлен)
Ответ Bandstop: порядок Фильтра, Частота Полосы задерживания, Вспомогательная (Wx, Полиномиал Numerator21)
Для отклика bandstop Wx является настройкой для первой частоты, на которой прототип нижних частот удовлетворяет предписанным потерям bandstop. Для полосовой характеристики Wx - это корректировка характеристики ослабления полосы пропускания, не равной 3 дБ.
Некоторые дополнительные советы по проектированию:

| Тип фильтра | Частотная характеристика |
|---|---|
| Lowpass |
|
| Highpass |
|
| Полосно-пропускающий |
|
| Bandstop |
|

В этой таблице представлены все параметры, необходимые для правильного проектирования каждого фильтра:

[1] Г. Эллис, Майкл, Sr.Electronic Filter Analysis and Synthesis, Artech House, 1994
[2] Ларри Д. Паарман (Larry D. Paarmann), Разработка и анализ аналоговых фильтров, перспектива обработки сигналов с примерами MATLAB, Kluwer Academic Publishers, 2001.
lcladder | nport | rfbudget | sparameters
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.