rffilter

Создайте объект фильтра RF

Описание

Используйте rffilter объект создать Баттерворта, Чебышева или Инверсию фильтр Чебышева РФ. Фильтр RF является объектом схемы с 2 портами, и можно включать этот объект как элемент схемы.

Для большего количества проекта информация смотрите, Параметры, чтобы Задать Фильтр и Советы по проектированию.

Можно также преобразовать rffilter возразите против lcladder при помощи lcladder объект. LCLad = lcladdder(rffiltobj) где rffilterobj rffilter объект.

Создание

Описание

пример

rffiltobj = rffilter создает 2 фильтра портов со свойствами по умолчанию.

пример

rffiltobj = rffilter(Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Например, rffiltobj = rffilter('FilterType','Chebyshev') создает фильтр Чебышева РФ с 2 портами. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычку.

Свойства

развернуть все

Отфильтруйте тип в виде 'Butterworth', 'Chebyshev', или 'InverseChebyshev'.

Пример: 'FilterType','Chebyshev'

Пример: rfobj.FilterType = 'Chebyshev'

Типы данных: char | string

Отфильтруйте тип ответа в виде 'Lowpass', 'Highpass', 'Bandpass', или 'Bandstop'. Для получения дополнительной информации см. Частотные характеристики.

Пример: 'ResponseType','Highpass'

Пример: rfobj.ResponseType = 'Highpass'

Типы данных: char | string

Отфильтруйте реализацию в виде 'LC Tee', 'LC Pi', или 'Transfer function'.

Пример: 'Implementation','Transfer function'

Пример: rfobj.Implementation = 'Transfer function'

Зависимости

Для 'Inverse Chebyshev' введите фильтр, можно только использовать 'Transfer function' реализация.

Типы данных: char | string

Порядок фильтра в виде действительного конечного неотрицательного целого числа. В lowpass или фильтре highpass, порядок задает количество смешанных запоминающих элементов. В полосовом или заграждающем фильтре количество смешанных запоминающих элементов является дважды значением порядка.

Примечание

FilterOrder имеет наивысший приоритет среди всех пар "имя-значение" в создании фильтра. Используя это наборы свойств UseFilterOrder свойство только для чтения к истине.

Пример: 'FilterOrder',4

Пример: rfobj.FilterOrder = 4

Типы данных: double

Частота полосы пропускания в виде:

  • Скаляр в герц для lowpass и фильтров highpass.

  • Двухэлементный вектор в герц для полосовых или заграждающих фильтров.

По умолчанию значениями является 1e9 для фильтра lowpass, 2e9 для фильтра highpass и [2e9 3e9] для полосы пропускания и [[1e9 4e9] для заграждающих фильтров.

Пример: 'PassbandFrequency',[3e6 5e6]

Пример: rfobj.PassbandFrequency = [3e6 5e6]

Типы данных: double

Частота полосы задерживания в виде:

  • Скаляр в герц для 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',5

Пример: rfobj.PassbandAttenuation = 5

Типы данных: double

Затухание в полосе задерживания в виде скаляра в дБ. Для заграждающих фильтров это значение применяется одинаково к обоим ребрам полосы задерживания.

Пример: 'StopbandAttenuation',30

Пример: rfobj.StopbandAttenuation = 30

Типы данных: double

Исходный импеданс в виде положительной действительной части конечный скаляр в Омах.

Пример: 'Zin',70

Пример: rfobj.Zin = 70

Типы данных: double

Загрузите импеданс в виде положительной действительной части конечный скаляр в Омах.

Пример: 'Zout',70

Пример: rfobj.Zout = 70

Типы данных: double

Имя объекта фильтра RF в виде вектора символов. Два элемента в той же схеме не могут иметь того же имени. Все имена должны быть допустимыми именами переменных MATLAB®.

Пример: 'Name','filter1'

Пример: rfobj.Name = 'filter1'

Типы данных: char | string

Количество портов в виде 2Это свойство доступно только для чтения.

Типы данных: double

Имена терминалов в виде {'p1 +','p2 + ','p1-','p2-'}. Это свойство доступно только для чтения.

Типы данных: char

Данные о создании фильтра в виде структуры. Это свойство доступно только для чтения. Для получения дополнительной информации смотрите Данные проектирования для Мишени LC и Топологии Пи LC и Данные проектирования для Реализации Передаточной функции.

Типы данных: struct

Использование порядка фильтра для создания фильтра в виде true или false. Это свойство является только для чтения.

Типы данных: логический

Функции объекта

groupdelayГрупповая задержка S-объекта-параметра или объекта фильтра RF или объекта схемы RF Toolbox
sparametersS-объект-параметра
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: [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)

Figure S-Parameters 21 contains an axes and another object of type uitoolbar. The axes with title s21 vs. Frequency contains an object of type line.

Примечание: использовать rfplot и plot на той же фигуре используют setrfplot. Введите 'help setrfplot'в командном окне для получения информации.

Ссылка

  1. Ларри Д. Парманн, проект и анализ аналоговых фильтров: перспектива обработки сигналов, 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'

Ссылка

  1. 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),'--')

Figure S-Parameters 21 contains an axes and another object of type uitoolbar. The axes with title s21 vs. Frequency contains 3 objects of type line.

Используйте DesignData параметр, чтобы проверить порядок вашего фильтра.

N = rffiltobj.DesignData.FilterOrder;
sprintf('Calculated filter order is %d',N)
ans = 
'Calculated filter order is 4'

Больше о

развернуть все

Ссылки

[1] G.Ellis, Майкл, анализ фильтра Sr.Electronic и синтез, дом Artech, 1994

[2] Ларри Д. Парманн, проект и анализ аналоговых фильтров, перспективы обработки сигналов с MATLAB Examples, Kluwer академические издатели, 2001.

Введенный в R2018b