fdesign.arbmag

Произвольный объект спецификации фильтров величины ответа

Синтаксис

D= fdesign.arbmag
D= fdesign.arbmag(SPEC)
D = fdesign.arbmag(SPEC,specvalue1,specvalue2,...)
D = fdesign.arbmag(specvalue1,specvalue2,specvalue3)
D = fdesign.arbmag(...,Fs)

Описание

D= fdesign.arbmag создает произвольный объект спецификации фильтров величины D.

D= fdesign.arbmag(SPEC) инициализирует Specification свойство к SPEC. Входной параметр SPEC должна быть одна из записей, показанных в следующей таблице. Записи спецификации не являются чувствительными к регистру.

Примечание

Записи спецификации, отмеченные звездочкой, требуют программного обеспечения DSP System Toolbox™.

  • 'N,F,A' — Один проект полосы (значение по умолчанию)

  • 'F,A,R' — Один минимальный порядок полосы проектирует *

  • 'N,B,F,A' — Многополосный проект

  • 'N,B,F,A,C' — Ограниченный многополосный проект *

  • 'B,F,A,R' — Многополосный проект минимального порядка *

  • 'Nb,Na,F,A' — Один проект полосы *

  • 'Nb,Na,B,F,A' — Многополосный проект *

SPEC записи определяются следующим образом:

  • A — Амплитудный вектор. Значения в A задайте амплитуду фильтра в точках частоты, которые что вы задаете в f, вектор частоты. Если вы используете A, необходимо использовать F также. Амплитудные значения должны быть действительными. Для проектов комплексных чисел используйте fdesign.arbmagnphase.

  • B — Количество полос в многополосном фильтре

  • C — Ограниченный флаг полосы. Это позволяет вам ограничить неравномерность в полосе пропускания в своем многополосном проекте. Вы не можете ограничить неравномерность в полосе пропускания во всех полосах одновременно.

  • F — Вектор частоты. Значения частоты в заданном в F укажите на местоположения, где вы обеспечиваете определенные амплитуды ответа фильтра. Когда вы обеспечиваете F, необходимо также обеспечить A.

  • N — Порядок фильтра для КИХ-фильтров и числителя и знаменателя заказывает для БИХ-фильтров.

  • Nb — Порядок числителя для БИХ-фильтров

  • Na — Порядок знаменателя для БИХ фильтрует проекты

  • R — Пульсация

По умолчанию этот метод принимает, что все спецификации частоты предоставляются в нормированной частоте.

Определение частоты и амплитудных векторов

F и A входные параметры, которые вы используете, чтобы задать желаемый ответ фильтра. Каждое значение частоты вы задаете в F должен иметь соответствующее значение ответа в A. Следующая таблица показывает как F и A связаны.

Задайте вектор частоты F как [0 0.25 0.3 0.4 0.5 0.6 0.7 0.75 1.0]

Задайте вектор отклика A как [1 1 0 0 0 0 0 1 1]

Эти спецификации соединяют F и A как показано здесь:

F (нормированная частота)

(Ответ, желаемый в F)

0

1

0.25

1

0.3

0

0.4

0

0.5

0

0.6

0

0.7

0

0.75

1

1.0

1

Различные спецификации могут иметь различные методы разработки в наличии. Используйте designmethods получить список методов разработки, доступных для данной спецификации и объекта спецификации фильтров.

Используйте designopts получить список проектных решений, доступных для объекта спецификации фильтров и данного метода разработки. Введите help(D,METHOD) получить подробную справку на доступных проектных решениях для данного метода разработки.

D = fdesign.arbmag(SPEC,specvalue1,specvalue2,...) инициализирует спецификации с specvalue1, specvalue2. Используйте get(D,'Description') для описаний различных спецификаций specvalue1, specvalue2... specvalueN.

D = fdesign.arbmag(specvalue1,specvalue2,specvalue3) использует спецификацию по умолчанию 'N,F,A', установка порядка фильтра, отфильтруйте вектор частоты и амплитудный вектор к значениям specvalue1, specvalue2, и specvalue3.

D = fdesign.arbmag(...,Fs) задает частоту дискретизации в Гц. Все другие спецификации частоты также приняты, чтобы быть в Гц, когда вы задаете Fs.

Примеры

свернуть все

Используйте fdesign.arbmag спроектировать три ленточных фильтра.

  • Задайте вектор частоты F = [0 0.25 0.3 0.4 0.5 0.6 0.7 0.75 1.0].

  • Задайте вектор отклика A = [1 1 0 0 0 0 0 1 1].

N = 150;
B = 3;
F = [0 .25 .3 .4 .5 .6 .7 .75 1];
A = [1 1 0 0 0 0 0 1 1];
A1 = A(1:2);
A2 = A(3:7);
A3 = A(8:end);
F1 = F(1:2);
F2 = F(3:7);
F3 = F(8:end);
d = fdesign.arbmag('N,B,F,A',N,B,F1,A1,F2,A2,F3,A3);
Hd = design(d);
fvtool(Hd)

Ответ с двумя полосами пропускания - один примерно между 0 и 0.25 и второе между 0,75 и 1 - следует из отображения между F и A.

Используйте fdesign.arbmag спроектировать одну полосу equiripple фильтр.

Задайте 100 точек частоты.

n = 120;
f = linspace(0,1,100);

as = ones(1,100)-f*0.2;
absorb = [ones(1,30),1-0.6*bohmanwin(10)',ones(1,5), ...
    1-0.5*bohmanwin(8)',ones(1,47)];
a = as.*absorb;

d = fdesign.arbmag('N,F,A',n,f,a);
hd1 = design(d,'equiripple');

Спроектируйте минимальную фазу equiripple фильтр. Визуализируйте полюса и нули двух фильтров.

hd2 = design(d,'equiripple','MinPhase',true);

hfvt = fvtool(hd1,hd2,'Analysis','polezero');
legend(hfvt,'Equiripple Filter','Minimum-phase Equiripple Filter')

Используйте fdesign.arbmag спроектировать многополосный фильтр минимального порядка.

Поместите метки в 0.25π и 0.55π рад/выборка.

d = fdesign.arbmag('B,F,A,R');
d.NBands = 5;
d.B1Frequencies = [0 0.2];
d.B1Amplitudes = [1 1];
d.B1Ripple = 0.25;
d.B2Frequencies = 0.25;
d.B2Amplitudes = 0;
d.B3Frequencies = [0.3 0.5];
d.B3Amplitudes = [1 1];
d.B3Ripple = 0.25;
d.B4Frequencies = 0.55;
d.B4Amplitudes = 0;
d.B5Frequencies = [0.6 1];
d.B5Amplitudes = [1 1];
d.B5Ripple = 0.25;
Hd = design(d,'equiripple');

Визуализируйте частотную характеристику получившегося фильтра.

fvtool(Hd)

Используйте fdesign.arbmag спроектировать многополосный ограниченный КИХ-фильтр.

Обеспечьте частотную характеристику в 0.15π рад/выборка к 0 дБ.

d = fdesign.arbmag('N,B,F,A,C',82,2);
d.B1Frequencies = [0 0.06 0.1];
d.B1Amplitudes = [0 0 0];
d.B2Frequencies = [0.15 1];
d.B2Amplitudes = [1 1];

Спроектируйте фильтр без ограничений.

Hd1 = design(d,'equiripple','B2ForcedFrequencyPoints',0.15);

Добавьте ограничение в первую полосу, которая увеличит затухание.

d.B1Constrained = true;
d.B1Ripple = 0.001;
Hd2 = design(d,'equiripple','B2ForcedFrequencyPoints',0.15);

Визуализируйте частотную характеристику.

hfvt = fvtool(Hd1,Hd2);
legend(hfvt,'Original Design','Design with Constrained Stopband Ripple')

Смотрите также

| |

Представленный в R2009a