exponenta event banner

freqz

Частотная характеристика цифрового фильтра

Описание

пример

[h,w] = freqz(b,a,n) возвращает значение n-вектор частотной характеристики точки h и соответствующий вектор угловой частоты w для цифрового фильтра с коэффициентами передаточной функции, хранящимися в b и a.

пример

[h,w] = freqz(sos,n) возвращает значение n-точная комплексная частотная характеристика, соответствующая матрице сечений второго порядка sos.

пример

[h,w] = freqz(d,n) возвращает значение n-точка комплексного частотного отклика для цифрового фильтра d.

[h,w] = freqz(___,n,'whole') возвращает частотную характеристику при n выборочные точки вокруг всей единичной окружности.

[h,f] = freqz(___,n,fs) возвращает вектор частотной характеристики h и соответствующий физический частотный вектор f для цифрового фильтра, предназначенного для фильтрации сигналов, дискретизированных со скоростью fs.

[h,f] = freqz(___,n,'whole',fs) возвращает вектор частоты в n точки в диапазоне от 0 до fs.

h = freqz(___,w) возвращает вектор частотной характеристики h оценивается на нормированных частотах, подаваемых в w.

h = freqz(___,f,fs) возвращает вектор частотной характеристики h оценивается на физических частотах, поставляемых в f.

пример

freqz(___) без выходных аргументов строит график частотной характеристики фильтра.

Примеры

свернуть все

Вычислите и отобразите амплитудную характеристику фильтра нижних частот БИХ третьего порядка, описанную следующей передаточной функцией:

H (z) = 0,05634 (1 + z-1) (1-1 0166z-1 + z-2) (1-0 683z-1) (1-1 .4461z-1 + 0 .7957z-2).

Выражайте числитель и знаменатель как многочленовые свертки. Найдите частотную характеристику в точках 2001, охватывающих всю единичную окружность.

b0 = 0.05634;
b1 = [1  1];
b2 = [1 -1.0166 1];
a1 = [1 -0.683];
a2 = [1 -1.4461 0.7957];

b = b0*conv(b1,b2);
a = conv(a1,a2);

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

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

plot(w/pi,20*log10(abs(h)))
ax = gca;
ax.YLim = [-100 20];
ax.XTick = 0:.5:2;
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')

Figure contains an axes. The axes contains an object of type line.

Вычислите и отобразите амплитудную характеристику фильтра нижних частот БИХ третьего порядка, описанную следующей передаточной функцией:

H (z) = 0,05634 (1 + z-1) (1-1 0166z-1 + z-2) (1-0 683z-1) (1-1 .4461z-1 + 0 .7957z-2).

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

b0 = 0.05634;
b1 = [1  1];
b2 = [1 -1.0166 1];
a1 = [1 -0.683];
a2 = [1 -1.4461 0.7957];

sos1 = [b0*[b1 0] [a1 0]];
sos2 = [b2 a2];

[h,w] = freqz([sos1;sos2],'whole',2001);

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

plot(w/pi,20*log10(abs(h)))
ax = gca;
ax.YLim = [-100 20];
ax.XTick = 0:.5:2;
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')

Figure contains an axes. The axes contains an object of type line.

Сконструировать фильтр нижних частот FIR порядка 80 с использованием окна Кайзера с β = 8. Задайте нормированную частоту отсечения 0,5δ рад/образец. Отображение величины и фазовых характеристик фильтра.

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

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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

d = designfilt('lowpassfir','FilterOrder',80, ...
               'CutoffFrequency',0.5,'Window',{'kaiser',8});
freqz(d)

Figure Filter Visualization Tool - Magnitude Response (dB) and Phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) and Phase Response contains an object of type line.

Сконструировать полосовой фильтр FIR с полосой пропускания от 0,35δ до 0,8δ рад/образец и 3 дБ пульсации. Первый стоп-диапазон находится в диапазоне от 0 до 0,1δ рад/образец и имеет ослабление 40 дБ. Второй стоп-диапазон переходит от 0,9δ рад/образец к частоте Найквиста и имеет ослабление 30 дБ. Вычислите частотную характеристику. Постройте график его величины как в линейных единицах, так и в децибелах. Выделите полосу пропускания.

sf1 = 0.1;
pf1 = 0.35;
pf2 = 0.8;
sf2 = 0.9;
pb = linspace(pf1,pf2,1e3)*pi;

bp = designfilt('bandpassfir', ...
    'StopbandAttenuation1',40, 'StopbandFrequency1',sf1,...
    'PassbandFrequency1',pf1,'PassbandRipple',3,'PassbandFrequency2',pf2, ...
    'StopbandFrequency2',sf2,'StopbandAttenuation2',30);

[h,w] = freqz(bp,1024);
hpb = freqz(bp,pb);

subplot(2,1,1)
plot(w/pi,abs(h),pb/pi,abs(hpb),'.-')
axis([0 1 -1 2])
legend('Response','Passband','Location','South')
ylabel('Magnitude')

subplot(2,1,2)
plot(w/pi,db(h),pb/pi,db(hpb),'.-')
axis([0 1 -60 10])
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Response, Passband. Axes 2 contains 2 objects of type line.

Входные аргументы

свернуть все

Коэффициенты передаточной функции, указанные как векторы. Выразить передаточную функцию с точки зрения b и a как

H (ejω) =B (ejω) (ejω) =b (1) +b (2) e−jω + b (3) e−j2ω + + b (M) e−j (M−1) ωa (1) +a (2) e−jω + (3) e−j2ω + ⋯ + (N) e−j (N−1) ω.

Пример: b = [1 3 3 1]/6 и a = [3 0 1 0]/3 укажите фильтр Баттерворта третьего порядка с нормированной частотой 3 дБ 0,5δ рад/выборка.

Типы данных: double | single
Поддержка комплексного номера: Да

Число точек вычисления, указанное в виде положительного целого скаляра не менее 2. Когда n отсутствует, по умолчанию - 512. Для получения наилучших результатов установите n до значения, большего, чем порядок фильтра.

Коэффициенты сечения второго порядка, заданные как матрица. sos является K-by-6 матрицей, где число сечений, K, должно быть больше или равно 2. Если число сечений меньше 2, функция обрабатывает входные данные как числительный вектор. Каждая строка sos соответствует коэффициентам фильтра второго порядка (биквад). I-й ряд sos соответствует [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)].

Пример: s = [2 4 2 6 0 2;3 3 0 6 0 0] задает фильтр Butterworth третьего порядка с нормализованной частотой 3 дБ 0,5δ рад/выборка.

Типы данных: double | single
Поддержка комплексного номера: Да

Цифровой фильтр, указанный как digitalFilter объект. Использовать designfilt формируют цифровой фильтр на основе характеристик частотного отклика.

Пример: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) задает фильтр Butterworth третьего порядка с нормализованной частотой 3 дБ 0,5δ рад/выборка.

Частота выборки, заданная как положительный скаляр. Если единица времени - секунды, fs выражается в герцах.

Типы данных: double

Угловые частоты, определенные как вектор и выраженные в рад/выборке. w должен иметь по крайней мере два элемента, поскольку в противном случае функция интерпретирует его как n. w = λ соответствует частоте Найквиста.

Частоты, заданные как вектор. f должен иметь по крайней мере два элемента, поскольку в противном случае функция интерпретирует его как n. Если единица времени - секунды, f выражается в герцах.

Типы данных: double

Выходные аргументы

свернуть все

Частотный отклик, возвращаемый как вектор. При указании n, то h имеет длину n. Если не указать n, или укажите n как пустой вектор, то h имеет длину 512.

Если вход в freqz - единичная точность, функция вычисляет частотную характеристику, используя арифметику с единичной точностью. Продукция h - единичная точность.

Угловые частоты, возвращаемые в виде вектора. w имеет значения в диапазоне от 0 до δ. При указании 'whole' во входных данных значения в w диапазон от 0 до . При указании n, w имеет длину n. Если не указать n, или укажите n в качестве пустого вектора, w имеет длину 512.

Частоты, возвращаемые в виде вектора, выраженного в герцах. f имеет значения в диапазоне от 0 до fs/ 2 Гц. При указании'whole' во входных данных значения в f диапазон от 0 до fs Гц. При указании n, f имеет длину n. Если не указать n, или укажите n в качестве пустого вектора, f имеет длину 512.

Алгоритмы

Частотная характеристика цифрового фильтра может быть интерпретирована как передаточная функция, оцениваемая при z = ejλ [1].

freqz определяет передаточную функцию из заданного (вещественного или комплексного) числителя и многочлена-знаменателя и возвращает комплексный частотный отклик H (ejλ) цифрового фильтра. Частотная характеристика оценивается в выборочных точках, определяемых используемым синтаксисом.

freqz обычно использует алгоритм FFT для вычисления частотной характеристики всякий раз, когда вектор частот не подается в качестве входного аргумента. Он вычисляет частотную характеристику как отношение преобразованных числительных и знаменательных коэффициентов, дополненных нулями до требуемой длины.

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

Ссылки

[1] Оппенгейм, Алан В., Рональд В. Шефер и Джон Р. Бак. Дискретно-временная обработка сигналов. 2-я эд. река Верхнее Седло, Нью-Джерси: Прентис Холл, 1999.

Расширенные возможности

.
Представлен до R2006a