MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Специальные фильтры

  В оглавление \ К следующему разделу \ К предыдущему разделу

HILBIIR
Расчет рекурсивного фильтра,
аппроксимирующего преобразование Гильберта

Синтаксис:

hilbiir;
hilbiir(ts);
hilbiir(ts,dly);
hilbiir(ts,dly,bandwidth);
hilbiir(ts,dly,bandwidth,tol);
[num,den] = hilbiir(...);
[num,den,sv] = hilbiir(...);
[a,b,c,d] = hilbiir(...);
[a,b,c,d,sv] = hilbiir(...);

Описание.

Функция hilbiir рассчитывает рекурсивный фильтр, осуществляющий преобразование Гильберта. Результатом работы может являться:

  • График импульсной характеристики фильтра;
  • Описание фильтра в виде коэффициентов полиномов функции передачи либо параметров пространства состояния.

Теоретическая информация:

Идеальный фильтр, осуществляющий преобразование Гильберта, имеет комплексную частотную характеристику H(s) = –j sgn(s), где sgn(.) — знаковая функция (в MATLAB'е она имеет имя sign). Импульсная характеристика фильтра Гильберта имеет вид

Поскольку идеальный фильтр Гильберта является нереализуемым (он не удовлетворяет требованию причинности), функция hilbiir рассчитывает его аппроксимацию, внося групповую задержку dly. Идеальный фильтр Гильберта с такой задержкой имеет импульсную характеристику вида

Выбор значения групповой задержки:

Рассчитываемый фильтр является аппроксимацией. Если вы задаете значение вносимой групповой задержки в явном виде, воспользуйтесь следующими двумя советами:

  • Значение групповой задержки dly должно как минимум в несколько раз превышать величину периода дискретизации ts. Рекомендуется также выбирать соотношение между этими двумя параметрами так, чтобы dly было равно полуцелому числу интервалов ts (то есть rem(dly,ts) = ts/2). Например, можно взять ts равным 2*dly/N, где N — положительное нечетное целое число.
  • В точке t = dly, где импульсная характеристика фильтра Гильберта испытывает разрыв, ее значение может быть интерпретировано как 0, -Inf или Inf. Если один из отсчетов импульсной характеристики попадает в эту точку, функция hilbiir использует нулевое значение. Для улучшения точности результатов фильтрации следует избегать данной ситуации (приведенная выше рекомендация о выборе соотношения между dly и ts гарантирует, что данная точка окажется ровно посередине между отсчетами рассчитанной импульсной характеристики).

Варианты синтаксиса для вывода графика:

Каждый из приведенных в данном разделе вариантов синтаксиса обеспечивает вывод графика импульсной характеристики рассчитанного фильтра и соответствующего идеального фильтра Гильберта.

  • hilbiir

Выводит график импульсной характеристики фильтра Гильберта 4-го порядка с групповой задержкой, равной 1 с. Период дискретизации сигнала считается равным 2/7 с. При синтезе фильтра используется допуск, равный 0.05. Выводится также график импульсной характеристики идеального фильтра Гильберта, имеющего групповую задержку, равную 1 с.

  • hilbiir(ts)

Выводит график импульсной характеристики фильтра Гильберта 4-го порядка с интервалом дискретизации ts секунд и групповой задержкой, равной ts*7/2 секунд. При синтезе фильтра используется допуск, равный 0.05. Выводится также график импульсной характеристики идеального фильтра Гильберта, имеющего интервал дискретизации ts секунд и групповую задержку, равную ts*7/2 секунд.

  • hilbiir(ts,dly)

То же, что и предыдущий вариант синтаксиса, но групповая задержка для рассчитываемого и идеального фильтров равна dly. Рекомендации по поводу выбора значения параметра dly см. выше в разделе “Выбор значения групповой задержки”.

  • hilbiir(ts,dly,bandwidth)

То же, что и предыдущий вариант синтаксиса, но параметр bandwidth задает предполагаемую полосу частот входного сигнала, позволяя фильтру использовать компенсатор для входного сигнала. Если bandwidth = 0 или bandwidth > 1/(2*ts), то функция hilbiir не использует компенсатор.

  • hilbiir(ts,dly,bandwidth,tol)

То же, что и предыдущий вариант синтаксиса, но параметр tol задает допуск, используемый при расчете фильтра. Если tol < 1, значение этого параметра задает допуск, используемый при синтезе фильтра методом разложения по сингулярным числам. Если tol > 1, параметр рассчитываемого фильтра будет равен tol.

Варианты синтаксиса для расчета фильтра:

Каждый из приведенных в данном разделе вариантов синтаксиса дает количественное описание рассчитанного фильтра, но не выводит графиков. Смысл входных параметров тот же, что и раньше (см. выше раздел “Варианты синтаксиса для вывода графика”)

  • [num,den] = hilbiir(...)

Возвращает коэффициенты числителя и знаменателя функции передачи рекурсивного фильтра.

  • [num,den,sv] = hilbiir(...)

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

  • [a,b,c,d] = hilbiir(...)

Возвращает описание рассчитанного фильтра в пространстве состояний. Результат a — матрица, b и c — векторы, d — скаляр.

  • [a,b,c,d,sv] = hilbiir(...)

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

Алгоритм.

Функция hilbiir рассчитывает импульсную характеристику идеального фильтра Гильберта с заданной групповой задержкой. Затем выполняется аппроксимация этой импульсной характеристики методом разложения соответствующей матрицы Ханкеля по особым (сингулярным) числам (см. раздел “Литература”).

Примеры.

В командной строке MATLAB наберите hilbiir или [num,den] = hilbiir, чтобы вывести графики или рассчитать фильтр, используя параметры по умолчанию.

Сопутствующие функции: grpdelay (Signal Processing Toolbox).

Литература.

Kailath, Thomas. Linear Systems. Englewood Cliffs, N.J.: Prentice-Hall, 1980.

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:

Система Orphus

Яндекс.Метрика