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

MATLAB\MATLAB

В.Г.Потемкин "Справочник по MATLAB"
Математические функции

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

Базовые функции

FREQZ
Расчет комплексной частотной характеристики дискретной системы по ее функции передачи, заданной в z-области

Синтаксис:

[h,w]= freqz(b,a,l)
h = freqz(b,a,w)
[h,w] = freqz(b,a,l,'whole')
[h,f] = freqz(b,a,l,fs)
h = freqz(b,a,f,fs)
[h,f] = freqz(b,a,l,'whole',fs)
[h,f,s] = freqz(...)
freqz(b,a,...)
freqz(Hd)

Описание:

[h,w] = freqz(b,a,l)

Возвращает вектор значений комплексной частотной характеристики h и соответствующий вектор круговых частот w для дискретной системы, функция передачи которой задана вещественными или комплексными векторами b и a коэффициентов полиномов числителя и знаменателя, соответственно. Оба возвращаемых вектора h и w имеют длину l. Вектор круговых частот w содержит значения, равномерно распределенные в диапазоне от 0 до p радиан на отсчет. Если входной параметр l не задан или задан в виде пустой матрицы [], по умолчанию рассчитывается 512 частотных точек.

h = freqz(b,a,w)

Возвращает вектор значений комплексной частотной характеристики h, вычисленных на частотах, заданных (в радианах на отсчет) вектором w. Длина вектора w может быть произвольной.

[h,w] = freqz(b,a,l,'whole')

Использует l частотных точек, равномерно распределенных вдоль полной единичной окружности на комплексной z-плоскости. Возвращаемый вектор частот w имеет длину l и содержит значения, равномерно распределенные в диапазоне от 0 до 2p радиан на отсчет.

[h,f] = freqz(b,a,l,fs)

Возвращает вектор значений комплексной частотной характеристики h и вектор соответствующих значений частот f для дискретной системы, функция передачи которой задана вещественными или комплексными векторами b и a коэффициентов полиномов числителя и знаменателя, соответственно. Оба возвращаемых вектора h и f имеют длину l. В данном варианте синтаксиса значения частот определяются исходя из частоты дискретизации, заданной (в герцах) входным параметром fs. Возвращаемый вектор частот f также содержит значения частот в герцах, лежащие в диапазоне от 0 до fs/2 Гц.

h = freqz(b,a,f,fs)

Возвращает вектор значений комплексной частотной характеристики h, вычисленных на частотах, заданных (в герцах) вектором f. Длина вектора f может быть произвольной.

[h,f] = freqz(b,a,l,'whole',fs)

Использует l частотных точек, равномерно распределенных вдоль полной единичной окружности на комплексной z-плоскости. Возвращаемый вектор частот f имеет длину l и содержит значения, равномерно распределенные в диапазоне от 0 до fs Гц.

[h,f,s] = freqz(b,a,l,'whole',fs)

Возвращает дополнительный строковый результат s, указывающий единицы измерения частот в векторе f. Возвращаемая строка обозначает герцы и имеет значение 'Hz'.

freqz(b,a,...)

При отсутствии выходных параметров функция выводит в текущем графическом окне графики амплитудно-частотной и фазочастотной характеристик. ФЧХ выводится с устранением скачков фазы на 360° .

freqz(Hd)

Вызывает функцию fvtool для просмотра характеристик дискретной системы, заданной объектом Hd класса dfilt.

Замечание:

Поскольку функция freqz использует для вычисления частотной характеристики алгоритм БПФ, целесообразно выбирать третий входной параметр l равным степени двойки. За более подробной информацией обратитесь к странице с описанием функции fft.

Примеры:

Построим графики АЧХ и ФЧХ нерекурсивного дискретного фильтра:

b = fir1(80,0.5,kaiser(81,8));
freqz(b,1);

Тот же пример с использованием объекта дискретного фильтра (класс dfilt) и отображением результатов в среде визуализации фильтров (Filter Visualization Tool, функция fvtool) выглядит следующим образом:

b = fir1(80,0.5,kaiser(81,8));
Hd = dfilt.df1(b);
freqz(Hd);

Алгоритм:

Частотная характеристика дискретного фильтра может интерпретироваться [1] как функция передачи, вычисленная вдоль единичной окружности на комплексной z-плоскости: ejw . Функция передачи дискретной системы представляет собой дробно-рациональную функцию, которая может быть приведена к следующему виду:

.

Функция freqz рассчитывает функцию передачи по заданным вещественным или комплексным коэффициентам полиномов числителя и знаменателя и возвращает комплексный коэффициент передачи дискретной системы H(ejw ). Расчет коэффициента передачи производится в частотных точках, выбор которых определяется использованным вариантом вызова функции.

Если вектор частот для расчета коэффициента передачи не задан явно, функция freqz использует алгоритм БПФ. Векторы коэффициентов полиномов числителя и знаменателя дополняются нулями до нужного размера, вычисляется их БПФ, после чего БПФ числителя поэлементно делится на БПФ знаменателя.

Если вектор частот явно задается при вызове, функция freqz производит расчет значений полиномов числителя и знаменателя в заданных точках по методу Горнера [1], а затем поэлементно делит вектор значений числителя на вектор значений знаменателя.

Сопутствующие функции: abs, angle, fft, filter, freqs, impz, invfreqs, logspace

Литература:

[1] Oppenheim, A.V., and R.W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, 1989, pp. 203-205. Имеется русский перевод одного из предыдущих изданий — Оппенгейм А. В., Шафер Р. В. Цифровая обработка сигналов: Пер. с англ. / Под ред. С. Я. Шаца. — М.: Связь, 1979.

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

 


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

Система Orphus

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