Создайте объект радиочастотного фильтра
Используйте rffilter
объект для создания фильтра Butterworth, Chebyshev или Обратной Чебышевской РФ. Радиочастотный фильтр является объектом схемы с 2 портами, и можно включить этот объект в качестве элемента массива схемы.
Дополнительные сведения о проекте см. в Параметры, чтобы Задать фильтр и Советы по проектированию.
Можно также преобразовать rffilter
объект lcladder при помощи 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
(по умолчанию) | вещественным конечным неотрицательным целым числомПорядок фильтра, заданный как действительное конечное неотрицательное целое число. В фильтре lowpass или highpass порядок задает количество сгруппированных элементов хранения. В полосно-пропускающем или полосно-заграждающем фильтре количество сглаженных запоминающих элементов вдвое превышает значение порядка.
Примечание
FilterOrder
имеет наивысший приоритет среди всех пар "имя-значение" в создании фильтра. Использование этого свойства устанавливает UseFilterOrder
свойство только для чтения, равное true.
Пример: 'FilterOrder',4
Пример: rfobj.FilterOrder = 4
Типы данных: double
PassbandFrequency
- Частота полосы пропусканияЧастота полосы пропускания, заданная как:
Скаляр в герцах для фильтров lowpass и highpass.
Двухэлементный вектор в hertz для полосно-пропускающих или полосно-заграждающих фильтров.
По умолчанию значения 1e9
для lowpass, 2e9
для высокочастотного фильтра и [2e9 3e9]
для полосы пропускания и [[1e9 4e9]
для полосно-заграждающих фильтров.
Пример: 'PassbandFrequency',[3e6 5e6]
Пример: rfobj.PassbandFrequency = [3e6 5e6]
Типы данных: double
StopbandFrequency
- Частота полосы стопораЧастота диапазона остановки, заданная как:
Скаляр в герцах для фильтров lowpass и highpass.
Двухэлементный вектор в hertz для полосно-пропускающих или полосно-заграждающих фильтров.
По умолчанию значения 2e9
для lowpass, 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
- Создание фильтра данныхФильтруйте проектные данные, заданные как структура. Это свойство доступно только для чтения. Для получения дополнительной информации смотрите Проект Data for LC Tee и LC Pi Topologies и Проекта Data for Transfer Function Implementation.
Типы данных: struct
UseFilterOrder
- Порядок использования фильтра при создании фильтраtrue
| false
Использование порядка фильтра для создания фильтра, заданное как true
или false
. Это свойство доступно только для чтения.
Типы данных: logical
groupdelay | Групповая задержка объекта S-параметра или объекта радиочастотного фильтра или объекта схемы 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
Создайте объект фильтра полосы пропускания Batterworth с именем 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
объект. Этот объект lcladder может использоваться в схеме непосредственно, а также может использоваться для параметрического анализа значений индуктивности и емкости.
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;
Создайте lowpass фильтр Чебышёва с частотой полосы пропускания 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
Этот пример показов, как спроектировать lowpass Фильтра Баттерворта с частотой полосы пропускания 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
'в командном окне для получения информации.
Ссылка
Ларри Д. Паарманн, Проект и анализ аналоговых фильтров: перспектива обработки сигналов, Kluwer Academic Publishers
Спроектируйте низкочастотный фильтр Чебышева с полосовой пульсацией 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'
Ссылка
G.Ellis, Michael, 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 Реакция: Порядок фильтра, Частота полосы пропускания, Ослабление полосы пропускания
Пропускная способность: Порядок фильтра, Частота полосы пропускания, Ослабление полосы пропускания, Вспомогательный (Wx).
Bandstop Response: Порядок фильтрации, Частота остановки, Ослабление полосы пропускания, Вспомогательный (Wx).
Для полосно-заграждающей характеристики Wx является регулировкой для первой частоты, при которой прототип lowpass соответствует предписанным потерям полосы. Для пропускной способности Wx является регулировкой спецификации ослабления полосы пропускания, не равной 3 дБ. Для получения дополнительной информации см. раздел [1].
Для реализации передаточной функции, DesignData
возвращает факторизованные полиномиальные коэффициенты для S-параметров. Эти факторы группируют комплексные сопряженные условия, чтобы сохранить точность. Все S-параметры имеют общий знаменатель, присутствующий в Denominator
. Условия числителя для S11, S22 и S21 (S21 = S12) могут быть оценены с помощью факторизованного полинома, присутствующего в числителях Numerator11
, Numerator22
, и Numerator21
, соответственно.
Для примера рассмотрим фильтр lowpass по умолчанию на 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/Highpass Реакция: Порядок фильтра, Частота полосы пропускания, Вспомогательная (Numerator21 Polynomial)
Примечание
Частота полосы пропускания составляет 3 дБ для фильтра Баттерворта.
Пропускная Способность: Порядок Фильтра, Частота Полосы пропускания, Вспомогательная (Wx, Numerator21 Полином)
Bandstop Response: Порядок фильтрации, Частота стоповой полосы, Вспомогательная (Wx, Numerator21 Полином)
Для полосно-заграждающей характеристики Wx является регулировкой для первой частоты, при которой прототип lowpass соответствует предписанным потерям полосы. Для пропускной способности Wx является регулировкой спецификации ослабления полосы пропускания, не равной 3 дБ.
Некоторые дополнительные советы по проектированию:
Тип фильтра | Частотная характеристика |
---|---|
Lowpass | |
Highpass | |
Полосно-пропускающий | |
Bandstop |
В этой таблице показаны все параметры, необходимые для правильной разработки каждого фильтра:
[1] G.Ellis, Michael, Sr.Electronic Filter Analysis and Synthesis, Artech House, 1994
[2] Ларри Д. Паарманн, Проект и анализ аналоговых фильтров, перспектива обработки сигналов с MATLAB Examples, Kluwer Academic Publishers, 2001.
lcladder
| nport
| rfbudget
| sparameters
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.