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(___) без выходных аргументов строит частотную характеристику фильтра.

Примеры

свернуть все

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

H(z)=0.05634(1+z-1)(1-1.0166z-1+z-2)(1-0.683z-1)(1-1.4461z-1+0.7957z-2).

Опишите числитель и знаменатель как полиномиальные свертки. Найдите частотную характеристику в 2 001 точке, охватывающей полный модульный круг.

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 object. The axes object contains an object of type line.

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

H(z)=0.05634(1+z-1)(1-1.0166z-1+z-2)(1-0.683z-1)(1-1.4461z-1+0.7957z-2).

Опишите передаточную функцию в терминах секций второго порядка. Найдите частотную характеристику в 2 001 точке, охватывающей полный модульный круг.

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 object. The axes object contains an object of type line.

Спроектируйте КИХ фильтр lowpass порядка 80 с помощью окна Кайзера с β=8. Задайте нормированную частоту среза 0.5π рад/отсчет. Отобразите величину и фазовые отклики фильтра.

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

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 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 object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) and Phase Response contains an object of type line.

Спроектируйте КИХ-полосовой фильтр с полосой пропускания между 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 objects. Axes object 1 contains 2 objects of type line. These objects represent Response, Passband. Axes object 2 contains 2 objects of type line.

Входные параметры

свернуть все

Коэффициенты передаточной функции в виде векторов. Опишите передаточную функцию в терминах b и a как

H(ejω)=B(ejω)A(ejω)=b (1)+b (2)ejω+b (3)ej2ω++b (M)ej(M1)ω(1)+(2)ejω+(3)ej2ω++(N)ej(N1)ω.

Пример: 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 соответствует коэффициентам второго порядка (biquad) фильтр. i th строка 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] задает третий порядок Фильтр Баттерворта с нормированной частотой на 3 дБ 0.5π рад/отсчет.

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

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

Пример: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) задает третий порядок Фильтр Баттерворта с нормированной частотой на 3 дБ 0.5π рад/отсчет.

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

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

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

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

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

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

свернуть все

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

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

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

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

Алгоритмы

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

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

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

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

Ссылки

[1] Оппенхейм, Алан V, Рональд В. Шафер и Джон Р. Бак. Обработка сигналов дискретного времени. 2-й Эд. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1999.

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

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

| | | | | | | | |

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