exponenta event banner

rffilter

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

Описание

Используйте 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-портовый РЧ-фильтр Чебышева. Можно указать несколько пар имя-значение. Заключите каждое имя свойства в кавычку.

Свойства

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

Тип фильтра, указанный как '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

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

Примечание

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

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

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

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

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

  • Скаляр в герцах для фильтров нижних и верхних частот.

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

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

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

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

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

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

  • Скаляр в герцах для фильтров нижних и верхних частот.

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

По умолчанию значения: 2e9 для фильтра нижних частот, 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

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

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

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

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

Сконструировать низкочастотный фильтр Чебышева с полосовой пульсацией 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. Г. Эллис, Майкл, 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] Г. Эллис, Майкл, Sr.Electronic Filter Analysis and Synthesis, Artech House, 1994

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

Представлен в R2018b