rffilter

Создайте объект радиочастотного фильтра

Описание

Используйте rffilter объект для создания фильтра Butterworth, Chebyshev или Обратной Чебышевской РФ. Радиочастотный фильтр является объектом схемы с 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 свойство только для чтения, равное true.

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

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

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

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

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

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

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

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

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

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

Частота диапазона остановки, заданная как:

  • Скаляр в герцах для фильтров 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',5

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

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

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

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

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

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

Входной импеданс, заданный как положительный конечный скаляр вещественной части в омах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фильтруйте проектные данные, заданные как структура. Это свойство доступно только для чтения. Для получения дополнительной информации смотрите Проект Data for LC Tee и LC Pi Topologies и Проекта Data for Transfer Function Implementation.

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

Использование порядка фильтра для создания фильтра, заданное как 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)

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 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'

Ссылка

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

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, Michael, Sr.Electronic Filter Analysis and Synthesis, Artech House, 1994

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

Введенный в R2018b