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)')

Вычислите и отобразите ответ величины БИХ третьего порядка фильтр 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)')

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

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

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

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

Спроектируйте КИХ-полосовой фильтр с полосой пропускания между 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)')

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

свернуть все

Коэффициенты передаточной функции в виде векторов. Выразите передаточную функцию в терминах 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 к значению, больше, чем порядок фильтра.

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

Коэффициенты секции второго порядка в виде матрицы. 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