Объект спецификации проектирования полосового фильтра
fdesign.bandpass функция возвращает bandpass объект спецификации конструкции фильтра, содержащий спецификации для фильтра, такие как частота полосы пропускания, частота полосы останова, пульсация полосы пропускания и порядок фильтрации. Используйте design для проектирования фильтра из объекта спецификации конструкции фильтра.
Дополнительные параметры управления см. в разделе Процедура проектирования фильтра. Полный рабочий процесс см. в разделе Проектирование фильтра в Fdesign - Обзор процесса.
создает объект спецификации конструкции полосового фильтра со следующими значениями по умолчанию: bandpassSpecs = fdesign.bandpass
Частота первой полосы останова установлена равной 0,35.
Первая частота полосы пропускания установлена равной 0,45.
Вторая частота полосы пропускания установлена равной 0,55.
Частота второй полосы останова установлена равной 0,65.
Ослабление первой полосы останова установлено в 60 дБ.
Пульсация полосы пропускания установлена на 1dB.
Затухание второй полосы останова установлено на 60 дБ.
создает объект спецификации полосового фильтра с определенным порядком фильтра, частотой стоп-полосы, частотой полосы пропускания и другими вариантами спецификации. Укажите параметры, которые необходимо указать в выражении bandpassSpecs = fdesign.bandpass(spec,value1,...,valueN)spec. После выражения укажите значение для каждого параметра. Если значения после spec , функция принимает значения по умолчанию.
обеспечивает частоту дискретизации в Гц фильтруемого сигнала. bandpassSpecs = fdesign.bandpass(___,Fs)Fs должен быть указан как скаляр, задающий другие предоставленные числовые значения. В этом случае все частоты в спецификациях также представлены в Гц.
Технические условия на проектирование fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',.4,.5,.6,.7,60,1,80) проектирует тот же фильтр, что и fdesign.bandstop('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',1600,2000,2400,2800,60,1,80,8000)
предоставляет единицы измерения для заданной величины. bandpassSpecs = fdesign.bandpass(___,magunits)magunits может быть одним из следующих: 'linear', 'dB', или 'squared'. Если этот аргумент опущен, объект предполагает, что единицами измерения являются 'dB'. Параметры величины всегда преобразуются и сохраняются в децибелах независимо от того, как они были заданы. Если Fs предоставляется, magunits должны следовать Fs в списке входных аргументов.
Спроектируйте эквиптный фильтр FIR с ограниченной полосой частот порядка 100 с полосой пропускания [1, 1,4] кГц. Оба значения затухания полосы останова ограничены 60 дБ. Частота дискретизации составляет 10 кГц.
Создать bandpass объект спецификации конструкции фильтра с использованием fdesign.bandpass и укажите эти расчетные параметры.
bandpassSpecs = fdesign.bandpass('N,Fst1,Fp1,Fp2,Fst2,C',100,800,1e3,1.4e3,1.6e3,1e4);Ограничьте две полосы с затуханием полосы 60 дБ.
bandpassSpecs.Stopband1Constrained = true; bandpassSpecs.Astop1 = 60; bandpassSpecs.Stopband2Constrained = true; bandpassSpecs.Astop2 = 60;
Спроектируйте полосовой фильтр с помощью design функция. Результирующим фильтром является dsp.FIRFilter object™ системы. Дополнительные сведения о применении этого фильтра к потоковым данным см. в разделе dsp.FIRFilter.
bandpassFilt = design(bandpassSpecs,'Systemobject',true)bandpassFilt =
dsp.FIRFilter with properties:
Structure: 'Direct form'
NumeratorSource: 'Property'
Numerator: [1x101 double]
InitialConditions: 0
Show all properties
Визуализация частотной характеристики проектируемого фильтра с помощью fvtool.
fvtool(bandpassFilt)

Измерить частотную характеристику фильтра с помощью measure. Пульсация полосы пропускания немного превышает 2 дБ. Поскольку конструкция ограничивает обе стопорные полосы, невозможно ограничить пульсацию полосы пропускания.
measure(bandpassFilt)
ans = Sample Rate : 10 kHz First Stopband Edge : 800 Hz First 6-dB Point : 946.7621 Hz First 3-dB Point : 975.1807 Hz First Passband Edge : 1 kHz Second Passband Edge : 1.4 kHz Second 3-dB Point : 1.4248 kHz Second 6-dB Point : 1.4533 kHz Second Stopband Edge : 1.6 kHz First Stopband Atten. : 60.0614 dB Passband Ripple : 2.1443 dB Second Stopband Atten. : 60.0399 dB First Transition Width : 200 Hz Second Transition Width : 200 Hz
Проектирование полосового фильтра BIR Butterworth. Процедура проектирования фильтра:
Укажите спецификации конструкции фильтра с помощью fdesign функция.
Выберите метод проектирования, предоставленный designmethods функция.
Чтобы определить доступные варианты конструкции на выбор, используйте designoptions функция.
Спроектируйте фильтр с помощью design функция.
Создание объекта спецификации конструкции полосового фильтра по умолчанию с использованием fdesign.bandpass.
bandpassSpecs = fdesign.bandpass
bandpassSpecs =
bandpass with properties:
Response: 'Bandpass'
Specification: 'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2'
Description: {7x1 cell}
NormalizedFrequency: 1
Fstop1: 0.3500
Fpass1: 0.4500
Fpass2: 0.5500
Fstop2: 0.6500
Astop1: 60
Apass: 1
Astop2: 60
Определите доступные методы проектирования с помощью designmethods функция. Для проектирования фильтра Butterworth выберите butter.
designmethods(bandpassSpecs,'Systemobject',true)Design Methods that support System objects for class fdesign.bandpass (Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2): butter cheby1 cheby2 ellip equiripple kaiserwin
При проектировании фильтра можно задать дополнительные варианты конструкции. Просмотр списка параметров с помощью designoptions функция. Функция также показывает варианты конструкции по умолчанию, используемые фильтром.
designoptions(bandpassSpecs,'butter')ans = struct with fields:
FilterStructure: {1x6 cell}
SOSScaleNorm: 'ustring'
SOSScaleOpts: 'fdopts.sosscaling'
MatchExactly: {'passband' 'stopband'}
SystemObject: 'bool'
DefaultFilterStructure: 'df2sos'
DefaultMatchExactly: 'stopband'
DefaultSOSScaleNorm: ''
DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]
DefaultSystemObject: 0
Используйте design для проектирования фильтра. Проход 'butter' и спецификации, задаваемые переменной bandpassSpecs, в качестве входных аргументов. Укажите 'matchexactly' вариант конструкции для 'passband'.
bpFilter = design(bandpassSpecs,'butter','matchexactly','passband','SystemObject',true)
bpFilter =
dsp.BiquadFilter with properties:
Structure: 'Direct form II'
SOSMatrixSource: 'Property'
SOSMatrix: [7x6 double]
ScaleValues: [8x1 double]
InitialConditions: 0
OptimizeUnityScaleValues: true
Show all properties
Визуализация частотной характеристики проектируемого фильтра.
fvtool(bpFilter)

Полосовой фильтр - дискретно-временной синусоидальный сигнал, состоящий из трех синусоид на частотах 1 кГц, 10 кГц и 15 кГц.
Создайте полосовой фильтр FIR Equiripple, сначала создав объект спецификации конструкции полосового фильтра, а затем сконструировав фильтр с использованием этих спецификаций.
Расчетный полосовой фильтр
Создание объекта спецификации конструкции полосового фильтра с помощью fdesign.bandpass.
bandpassSpecs = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2', ... 1/4,3/8,5/8,6/8,60,1,60);
Перечислите доступные методы конструирования для этого объекта.
designmethods(bandpassSpecs)
Design Methods for class fdesign.bandpass (Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2): butter cheby1 cheby2 ellip equiripple kaiserwin
Для проектирования фильтра Equiripple выберите 'equiripple'.
bpFilter = design(bandpassSpecs,'equiripple','Systemobject',true)
bpFilter =
dsp.FIRFilter with properties:
Structure: 'Direct form'
NumeratorSource: 'Property'
Numerator: [1x37 double]
InitialConditions: 0
Show all properties
Визуализация частотной характеристики проектируемого фильтра.
fvtool(bpFilter,'Fs',44100)
Создание синусоидального сигнала
Создайте сигнал, который представляет собой сумму трех синусоид с частотами 1 кГц, 10 кГц и 15 кГц. Инициализируйте анализатор спектра для просмотра исходного сигнала и отфильтрованного сигнала.
Sine1 = dsp.SineWave('Frequency',1e3,'SampleRate',44.1e3,'SamplesPerFrame',4000); Sine2 = dsp.SineWave('Frequency',10e3,'SampleRate',44.1e3,'SamplesPerFrame',4000); Sine3 = dsp.SineWave('Frequency',15e3,'SampleRate',44.1e3,'SamplesPerFrame',4000); SpecAna = dsp.SpectrumAnalyzer('PlotAsTwoSidedSpectrum',false, ... 'SampleRate',Sine1.SampleRate, ... 'NumInputPorts',2,... 'ShowLegend',true, ... 'YLimits',[-240,45]); SpecAna.ChannelNames = {'Original noisy signal','Bandpass filtered signal'};
Синусоидальный сигнал фильтра
Фильтрация синусоидального сигнала с помощью разработанного полосового фильтра. Просмотрите исходный сигнал и отфильтрованный сигнал в анализаторе спектра. Тональный сигнал на частоте 1 кГц отфильтровывается и ослабляется. Тональный сигнал на частоте 10 кГц не изменяется, и тональный сигнал на частоте 15 кГц слегка ослабляется, поскольку он появляется в переходной полосе фильтра.
for i = 1 : 1000 x = Sine1()+Sine2()+Sine3(); y = bpFilter(x); SpecAna(x,y); end release(SpecAna)

spec - Технические условия'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2' (по умолчанию) | 'N,F3dB1,F3dB2' | 'N,F3dB1,F3dB2,Ap' | ...Выражение спецификации, указанное как один из следующих векторов символов:
'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2' (по умолчанию)
'N,F3dB1,F3dB2'
'N,F3dB1,F3dB2,Ap'
'N,F3dB1,F3dB2,Ast'
'N,F3dB1,F3dB2,Ast1,Ap,Ast2'
'N,F3dB1,F3dB2,BWp'
'N,F3dB1,F3dB2,BWst'
'N,Fc1,Fc2'
'N,Fc1,Fc2,Ast1,Ap,Ast2'
'N,Fp1,Fp2,Ap'
'N,Fp1,Fp2,Ast1,Ap,Ast2'
'N,Fst1,Fp1,Fp2,Fst2'
'N,Fst1,Fp1,Fp2,Fst2,C'
'N,Fst1,Fp1,Fp2,Fst2,Ap'
'N,Fst1,Fst2,Ast'
'Nb,Na,Fst1,Fp1,Fp2,Fst2'
В этой таблице описывается каждый параметр, который может отображаться в выражении.
| Вариант спецификации | Описание |
|---|---|
Ap | Допустимое количество пульсации в полосе пропускания, указанное как Apass в дБ. |
Ast | Затухание полосы останова (дБ), указанное с помощью Astop. |
Ast1 | Затухание в первой полосе останова (дБ), указанное с помощью Astop1. |
Ast2 | Затухание во втором стоп-диапазоне (дБ), указанное с помощью Astop2. |
BWp | Полоса пропускания полосы пропускания фильтра, указанная как BWpass в нормированных частотных единицах. |
BWst | Ширина частоты между двумя частотами стоп-полосы, заданная как BWstop в нормированных частотных единицах. |
F3dB1 | Частота точки 3 дБ ниже значения полосы пропускания для первого отсечения, заданного в нормированных единицах частоты. Применяется к фильтрам IIR. |
F3dB2 | Частота точки 3 дБ ниже значения полосы пропускания для второго среза, заданного в нормированных единицах частоты. Применяется к фильтрам IIR. |
Fc1 | Первая частота отсечки (нормированные единицы частоты), заданная с помощью Fcutoff1. Применяется к фильтрам FIR. |
Fc2 | Вторая частота отсечки (нормированные единицы частоты), заданная с помощью Fcutoff1. Применяется к фильтрам FIR. |
Fp1 | Частота на краю начала полосы пропускания, указанная как Fpass1 в нормированных частотных единицах. |
Fp2 | Частота на краю конца полосы пропускания, указанная как Fpass2 в нормированных частотных единицах. |
Fst1 | Частота на краю конца первой стоп-полосы, указанная как Fstop1 в нормированных частотных единицах. |
Fst2 | Частота на краю начала второй стоп-полосы, указанная как Fstop2 в нормированных частотных единицах. |
N | Порядок фильтров для фильтров FIR. Или и числитель, и знаменатель для фильтров IIR, когда Na и Nb не предоставляются. Указано с помощью FilterOrder. |
Nb | Порядок нумераторов для фильтров БИХ, указанный с помощью NumOrder собственность. |
Na | Порядок знаменателя для фильтров БИХ, указанный с помощью DenOrder собственность. |
C | Флаг ограниченной области данных. Это позволяет задать пульсацию полосы пропускания или затухание полосы останова для конструкций фиксированного порядка в одной или двух из трех полос. Дополнительные сведения см. в разделе |
Графически характеристики фильтра выглядят аналогично показанным на этом рисунке.

Области между значениями спецификации, например Fst1 и Fp1 - переходные области, в которых отклик фильтра явно не определен.
Методы конструирования, доступные для конструирования фильтра, зависят от выражения спецификации. Эти методы можно получить с помощью designmethods функция. В этой таблице перечислены все выражения спецификации, поддерживаемые fdesign.bandpass и имеющиеся соответствующие методы проектирования.
| Выражение спецификации | Поддерживаемые методы проектирования |
|---|---|
'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2' | butter, cheby1, cheby2, ellip, equiripple, kaiserwin |
'N,F3dB1,F3dB2' | butter |
'N,F3dB1,F3dB2,Ap' | cheby1 |
'N,F3dB1,F3dB2,Ast' | cheby2, ellip |
'N,F3dB1,F3dB2,Ast1,Ap,Ast2' | ellip |
'N,F3dB1,F3dB2,BWp' | cheby1 |
'N,F3dB1,F3dB2,BWst' | cheby2 |
'N,Fc1,Fc2' | window |
'N,Fc1,Fc2,Ast1,Ap,Ast2' | fircls |
'N,Fp1,Fp2,Ap' | cheby1 |
'N,Fp1,Fp2,Ast1,Ap,Ast2' | ellip |
'N,Fst1,Fp1,Fp2,Fst2' | iirlpnorm, equiripple, firls |
'N,Fst1,Fp1,Fp2,Fst2,C' | equiripple |
'N,Fst1,Fp1,Fp2,Fst2,Ap' | ellip |
'N,Fst1,Fst2,Ast' | cheby2 |
'Nb,Na,Fst1,Fp1,Fp2,Fst2' | iirlpnorm |
Чтобы создать фильтр, вызовите design функция с одним из этих методов проектирования в качестве входных данных. Вы можете выбрать тип ответа фильтра, передав его 'FIR' или 'IIR' в design функция. Дополнительные сведения см. в разделе design. Войти help(bandpassSpecs,'method') в командной строке MATLAB ® для получения подробной справки по вариантам конструкции для данного метода конструирования.
value1,...,valueN - Значения технических условийЗначения спецификации, указанные как список значений, разделенных запятыми. Укажите значение для каждого параметра в spec в том же порядке, в котором параметры отображаются в выражении.
Пример: bandpassSpecs = fdesign.bandpass('N,Fc1,Fc2,Ast1,Ap,Ast2',n,fc1,fc2,ast1,ap,ast2)
Приведенные ниже входные аргументы содержат дополнительные сведения для каждого параметра в выражении.
n - Порядок фильтрацииПорядок фильтров для фильтров FIR, заданный как положительное целое число. В случае конструкции фильтра БИХ, если nb и na не предоставляются, это значение интерпретируется как порядок числителя и порядок знаменателя.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
nb - Порядок нумераторов для фильтров БИХПорядок числителя для фильтров IIR, заданный как неотрицательное целое число.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
na - Порядок знаменателей для фильтров БИХПорядок знаменателя для фильтров БИХ, заданный как положительное целое число.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
c - Флаг ограниченной полосыЭто позволяет задать пульсацию полосы пропускания или затухание полосы останова для конструкций фиксированного порядка в одной или двух из трех полос.
В спецификации 'N,Fst1,Fp1,Fp2,Fst2,C', нельзя одновременно задавать ограничения для всех трех областей (две полосы останова и одна полоса пропускания). Ограничения можно задать в одной или двух областях данных.
Рассмотрим следующую спецификацию полосовой конструкции, в которой оба упора ограничены значением по умолчанию 60 дБ.
Пример: spec = fdesign.bandpass('N,Fst1,Fp1,Fp2,Fst2,C',100,800,1e3,1.4e3,1.6e3,1e4); spec.Stopband1Constrained=true; spec.Stopband2Constrained=true;
ap - Пульсация полосы пропусканияПульсация полосы пропускания, заданная как положительный скаляр в дБ. Если magunits является 'linear' или 'squared', пульсация полосы пропускания преобразуется и сохраняется в дБ функцией независимо от того, как она была указана.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
ast - Затухание полосы остановаЗатухание полосы останова, указанное как положительный скаляр в дБ. Если magunits является 'linear' или 'squared'затухание полосы останова преобразуется и сохраняется в дБ функцией независимо от того, как она была задана.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
ast1 - Затухание первой полосы остановаЗатухание в первой полосе останова, определяемой как положительный скаляр в дБ. Если magunits является 'linear' или 'squared', первое затухание полосы останова преобразуется и сохраняется в дБ функцией независимо от того, как она была задана.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
ast2 - Затухание второй полосы остановаЗатухание во второй полосе останова, определяемой как положительный скаляр в дБ. Если magunits является 'linear' или 'squared'второе затухание полосы останова преобразуется и сохраняется в дБ функцией независимо от того, как она была задана.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
F3dB1 - Первая частота 3 дБПервая частота 3 дБ, заданная как положительный скаляр в нормированных частотных единицах.
Это частота точки 3 дБ ниже значения полосы пропускания для первого отсечения. Этот входной аргумент применяется только к фильтрам IIR.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
F3dB2 - Вторая частота 3 дБВторая частота 3 дБ, заданная как положительный скаляр в нормированных частотных единицах.
Это частота точки 3 дБ ниже значения полосы пропускания для второго отсечения. Этот входной аргумент применяется только к фильтрам IIR.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
fc1 - Первая частота отсечкиПервая частота отсечки, заданная как положительный скаляр в нормированных частотных единицах.
Этот входной аргумент применяется только к фильтрам FIR.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
fc2 - Вторая частота отсечкиВторая частота отсечки, заданная как положительный скаляр в нормированных частотных единицах.
Этот входной аргумент применяется только к фильтрам FIR.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
fst1 - Первая частота полосы остановаПервая частота полосы останова, заданная как положительный скаляр в нормированных частотных единицах.
Это частота на краю конца первой полосы останова.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
fst2 - Вторая частота полосы остановаВторая частота полосы останова, заданная как положительный скаляр в нормированных частотных единицах.
Это частота на краю начала второй полосы останова.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
fp1 - Первая частота полосы пропусканияПервая частота полосы пропускания, заданная как положительный скаляр в нормированных частотных единицах.
Это частота на краю начала первой полосы пропускания.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
fp2 - Вторая частота полосы пропусканияВторая частота полосы пропускания, заданная как положительный скаляр в нормированных частотных единицах.
Это частота на краю конца полосы пропускания.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
bwst - Ширина частот между частотами стоп-полосыШирина частоты между двумя частотами стоп-полосы, заданная как положительный скаляр в нормированных единицах частоты.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Fs - Частота выборкиЧастота дискретизации фильтруемого сигнала, заданная как скаляр в Гц. Укажите частоту дискретизации как скаляр, задающий другие предоставленные числовые значения. Когда Fs предоставляется, Fs принимается в Гц, как и все другие значения частоты. Обратите внимание, что изменять строку спецификации не требуется.
В следующей конструкции строка спецификации имеет значение 'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2'и частота дискретизации установлена равной 8000 Гц.
bandpassSpecs = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',1600,2000,2400,2800,60,1,80,8000); filt = design(bandpassSpecs,'Systemobject',true);
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
magunits - Единицы измерения величины'dB' (по умолчанию) | 'linear' | 'squared'Единицы измерения величины, указанные как 'dB', 'linear', или 'squared'. Если этот аргумент опущен, объект принимает единицы величины, которые должны быть 'dB'. Обратите внимание, что параметры величины всегда преобразуются и сохраняются в дБ независимо от того, как они были заданы. Если Fs является одним из входных аргументов, magunits должен быть указан после Fs в списке входных аргументов.
bandpassSpecs - Объект спецификации проектирования полосового фильтраbandpass объектОбъект спецификации конструкции полосового фильтра, возвращаемый как bandpass объект. Поля объекта зависят от spec входной символьный вектор.
Рассмотрим пример, где spec аргумент имеет значение 'N,Fc1,Fc2', и соответствующие значения устанавливаются как 10, 0.6, и 0.8соответственно. bandpass объект спецификации конструкции фильтра заполняется следующими полями:

fdesign | fdesign.bandstop | fdesign.highpass | fdesign.lowpass
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.