Создайте объект фильтра RF
Используйте rffilter
объект создать Баттерворта, Чебышева или Инверсию фильтр Чебышева РФ. Фильтр RF является объектом схемы с 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
— Порядок фильтра
(значение по умолчанию) | действительное конечное неотрицательное целое числоПорядок фильтра в виде действительного конечного неотрицательного целого числа. В lowpass или фильтре highpass, порядок задает количество смешанных запоминающих элементов. В полосовом или заграждающем фильтре количество смешанных запоминающих элементов является дважды значением порядка.
Примечание
FilterOrder
имеет наивысший приоритет среди всех пар "имя-значение" в создании фильтра. Используя это наборы свойств UseFilterOrder
свойство только для чтения к истине.
Пример: 'FilterOrder',4
Пример: rfobj.FilterOrder = 4
Типы данных: double
PassbandFrequency
— Частота полосы пропусканияЧастота полосы пропускания в виде:
Скаляр в герц для lowpass и фильтров highpass.
Двухэлементный вектор в герц для полосовых или заграждающих фильтров.
По умолчанию значениями является 1e9
для фильтра lowpass, 2e9
для фильтра highpass и [2e9 3e9]
для полосы пропускания и [[1e9 4e9]
для заграждающих фильтров.
Пример: 'PassbandFrequency',[3e6 5e6]
Пример: rfobj.PassbandFrequency = [3e6 5e6]
Типы данных: double
StopbandFrequency
— Частота полосы задерживанияЧастота полосы задерживания в виде:
Скаляр в герц для lowpass и фильтров highpass.
Двухэлементный вектор в герц для полосовых или заграждающих фильтров.
По умолчанию значениями является 2e9
для фильтра lowpass, 1e9
для фильтра highpass, [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
— Затухание в полосе задерживания
(значение по умолчанию) | скалярЗатухание в полосе задерживания в виде скаляра в дБ. Для заграждающих фильтров это значение применяется одинаково к обоим ребрам полосы задерживания.
Пример: 'StopbandAttenuation',30
Пример: rfobj.StopbandAttenuation = 30
Типы данных: double
Zin
— Исходный импеданс
(значение по умолчанию) | положительная действительная часть конечный скалярИсходный импеданс в виде положительной действительной части конечный скаляр в Омах.
Пример: 'Zin',70
Пример: rfobj.Zin = 70
Типы данных: double
Zout
— Загрузите импеданс
(значение по умолчанию) | положительная действительная часть конечный скалярЗагрузите импеданс в виде положительной действительной части конечный скаляр в Омах.
Пример: 'Zout',70
Пример: rfobj.Zout = 70
Типы данных: double
Name
— Имя объекта фильтра RF 'Filter'
(значение по умолчанию) | вектор символовИмя объекта фильтра RF в виде вектора символов. Два элемента в той же схеме не могут иметь того же имени. Всеми именами должен быть допустимый MATLAB® имена переменных.
Пример: 'Name','filter1'
Пример: rfobj.Name = 'filter1'
Типы данных: char |
string
NumPorts
— Количество портов
Количество портов в виде 2
Это свойство доступно только для чтения.
Типы данных: double
Terminals
— Имена терминалов{'p1+','p2+','p1-','p2-'}
Имена терминалов в виде {'p1 +','p2 + ','p1-','p2-'}. Это свойство доступно только для чтения.
Типы данных: char
DesignData
— Данные о создании фильтраДанные о создании фильтра в виде структуры. Это свойство доступно только для чтения. Для получения дополнительной информации смотрите Данные проектирования для Мишени LC и Топологии Пи LC и Данные проектирования для Реализации Передаточной функции.
Типы данных: struct
UseFilterOrder
— Использование порядка фильтра для создания фильтраtrue
| false
Использование порядка фильтра для создания фильтра в виде true
или false
. Это свойство является только для чтения.
Типы данных: логический
groupdelay | Групповая задержка S-объекта-параметра или объекта фильтра RF или объекта схемы RF Toolbox |
sparameters | Вычислите S-параметры для данных RF, сети, схемы и соответствия с сетевыми объектами |
set | Установите rffilter значения свойства объекта |
zpk | Преобразует rffilter в представление нулей, полюсов и усиления |
tf | Преобразовывает rffilter в передаточную функцию |
lcladder | Создайте лестничную сеть LC |
rfplot | Постройте входной коэффициент отражения и усиление преобразователя соответствия с сетью |
clone | Создайте копию существующего элемента схемы или объекта схемы |
circuit | Объект Circuit |
Создайте и просмотрите свойства объекта фильтра RF по умолчанию.
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
Создайте объект фильтра полосы пропускания Баттерворта под названием BFCG_162W
с частотами полосы пропускания между 950 и 2 200 МГц, частотами полосы задерживания между 770 и 3 000 МГц, затуханием полосы пропускания 3,0 дБ и затуханием в полосе задерживания 40 дБ с помощью 'тип реализации' Мишени LC. Вычислите 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: [1.8116e-09 5.7297e-09 8.3361e-09 2.8294e-09 ... ] Capacitances: [6.6900e-12 2.1152e-12 1.4539e-12 4.2835e-12 ... ] 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 академические издатели
Спроектируйте фильтр Чебышева lowpass с полосовой пульсацией на 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, Майкл, анализ фильтра Sr.Electronic и синтез, дом Artech, 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, DesignData
возвращает индуктор и конденсаторные значения. Кроме того, DesignData
включает другие расчетные параметры, относящиеся к типу ответа.
Ответ Lowpass/Highpass: Порядок фильтра, Частота Полосы пропускания, Затухание Полосы пропускания
Полосовой Ответ: Порядок фильтра, Частота Полосы пропускания, Затухание Полосы пропускания, Вспомогательное (Wx).
Ответ Bandstop: Порядок фильтра, Частота Полосы задерживания, Затухание Полосы пропускания, Вспомогательное (Wx).
Для bandstop ответа Wx является корректировкой к первой частоте, на которой прототип lowpass выполняет предписанной bandstop потере. Для полосового ответа 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)
Примечание
Частота полосы пропускания на уровне 3 дБ для Фильтра Баттерворта.
Полосовой Ответ: Порядок фильтра, Частота Полосы пропускания, Вспомогательная (Wx, Полином Numerator21)
Ответ Bandstop: Порядок фильтра, Частота Полосы задерживания, Вспомогательная (Wx, Полином Numerator21)
Для bandstop ответа Wx является корректировкой к первой частоте, на которой прототип lowpass выполняет предписанной bandstop потере. Для полосового ответа Wx является корректировкой спецификации затухания полосы пропускания, не равного 3 дБ.
Некоторые дополнительные советы по проектированию:
Отфильтруйте тип | Частотная характеристика |
---|---|
Lowpass | |
Highpass | |
Полоса пропускания | |
Bandstop |
Эта таблица показывает все параметры, требуемые спроектировать каждый фильтр правильно:
[1] G.Ellis, Майкл, анализ фильтра Sr.Electronic и синтез, дом Artech, 1994
[2] Ларри Д. Парманн, проект и анализ аналоговых фильтров, перспективы обработки сигналов с MATLAB Examples, Kluwer академические издатели, 2001.
sparameters
| lcladder
| rfbudget
| nport
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.