fdesign.hilbert

Гильбертов объект спецификации фильтров

Синтаксис

d = fdesign.hilbert
d = fdesign.hilbert(specvalue1,specvalue2)
d = fdesign.hilbert(spec)
d = fdesign.hilbert(spec,specvalue1,specvalue2)
d = fdesign.hilbert(...,Fs)
d = fdesign.hilbert(...,MAGUNITS)

Описание

d = fdesign.hilbert создает разработчика фильтра Гильберта по умолчанию d с N, порядком фильтра, набором к 30 и TW, набор ширины перехода к 0.1π радианы/выборка.

d = fdesign.hilbert(specvalue1,specvalue2) создает Гильбертова разработчика фильтра d, принимающий спецификацию по умолчанию 'N,TW'. Вы вход specvalue1 и specvalue2 для N и TW.

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

  • Опция спецификации значения по умолчанию 'N,TW'.

Спецификации фильтра заданы можно следующим образом:

  • Ap — сумма пульсации, позволенной в полосе передачи в децибелах (модули по умолчанию). Также названный Apass.

  • N отфильтруйте порядок.

  • TW — ширина области перехода между полосой пропускания и полосой задерживания.

По умолчанию fdesign.hilbert принимает, что все спецификации частоты обеспечиваются в нормированных единицах частоты. Кроме того, децибелы значение по умолчанию для всех спецификаций значения.

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

d = fdesign.hilbert(spec,specvalue1,specvalue2) инициализирует спецификации разработчика фильтра в spec с specvalue1, specvalue2, и так далее. Чтобы получить описание спецификаций specvalue1 и specvalue2, войти

get(d,'description')

в Командной строке.

d = fdesign.hilbert(...,Fs) добавляет аргумент Fs, заданный в Гц, чтобы задать частоту дискретизации. В этом случае все частоты в спецификациях находятся в Гц также.

d = fdesign.hilbert(...,MAGUNITS) задает модули для любой спецификации значения, которую вы обеспечиваете во входных параметрах. MAGUNITS может быть одним из

  • 'linear' — задайте значение в линейных модулях

  • 'dB' — задайте значение в дБ (децибелы)

  • 'squared' — задайте значение в блоках питания

Когда вы не используете аргумент MAGUNITS, fdesign принимает, что все значения находятся в децибелах. Обратите внимание на то, что fdesign хранит все спецификации значения в децибелах (преобразовывающий в децибелы когда необходимый) независимо от того, как вы задаете значения.

Примеры

свернуть все

Разработайте Гильбертов преобразователь порядка 30 с шириной перехода 0.2π рад/выборка. Используйте минимизацию наименьших квадратов, чтобы получить equiripple КИХ-фильтр линейной фазы. Постройте нулевой фазовый отклик в интервале [–π,π).

d = fdesign.hilbert('N,TW',30,0.2);
Hd = design(d,'equiripple');
zerophase(Hd,'whole')

Импульсный ответ этого фильтра типа 3 ровного порядка антисимметричен.

impz(Hd)

ftype = firtype(Hd)
ftype = 3

Примените фильтр к синусоиде с 100 выборками с частотой π/2 рада/выборки. Правильный для задержки фильтра.

n = 0:99;
x = cos(pi/2*n);
y = filter(Hd,x);

Delay = floor(length(Hd.Numerator)/2);
y = y(Delay+1:end);

Постройте ввод и вывод фильтра и подтвердите аппроксимированный π/2 сдвиг фазы, полученный с Гильбертовым преобразователем.

stem([x(1:end-Delay);y]','filled')
axis([15 25 -1.5 1.5])
grid
legend('Input','Output')

Поскольку частота синусоиды дискретного времени является π/2 радом/выборкой, сдвиг с одной выборкой соответствует сдвигу фазы π/2.

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

x1 = x(1:end-Delay);
xa = x1+1j*y;

hfvt = fvtool(x1,1,xa,1);
legend(hfvt,'Input DFT','Analytic Signal DFT')

Разработайте минимальный заказ преобразователь Гильберта, который имеет частоту дискретизации 1 кГц. Задайте ширину области перехода как 10 Гц и пульсации полосы пропускания как 1 дБ. Отобразите нулевой фазовый отклик фильтра.

fs = 1e3;
d = fdesign.hilbert('TW,Ap',10,1,fs);
hd = design(d,'equiripple');
zerophase(hd,-fs/2:0.1:fs/2,fs)

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

| |

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