Частотная характеристика

Цифровая область

freqz использует основанный на БПФ алгоритм, чтобы вычислить частотную характеристику Z-преобразования цифрового фильтра. А именно, оператор

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

возвращает частотную характеристику комплекса p-точки, H (e j ω), цифрового фильтра.

H(ejω)=b(1)+b(2)ejω+...+b(n+1)ejωna(1)+a(2)ejω+...+a(m+1)ejωm

В его самой простой форме freqz принимает векторы коэффициентов фильтра b и a и целочисленный p, задающий число точек, в котором можно вычислить частотную характеристику. freqz возвращает комплексную частотную характеристику в векторном h и фактические точки частоты в векторном w в rad/s.

freqz может принять другие параметры, такие как частота дискретизации или вектор произвольных точек частоты. Пример ниже находок частотная характеристика с 256 точками для 12-го порядка Чебышевский Тип я фильтрую. Вызов freqz задает частоту дискретизации fs 1 000 Гц:

[b,a] = cheby1(12,0.5,200/500);
[h,f] = freqz(b,a,256,1000);

Поскольку список параметров включает частоту дискретизации, freqz возвращает векторный f, который содержит 256 точек частоты между 0 и fs/2, используемый в вычислении частотной характеристики.

Примечание

Этот тулбокс использует соглашение, что модульная частота является частотой Найквиста, заданной как половина частоты дискретизации. Параметр частоты среза для всех основных функций проекта фильтра нормирован частотой Найквиста. Для системы с частотой дискретизации на 1 000 Гц, например, 300 Гц являются 300/500 = 0.6. Чтобы преобразовать нормированную частоту в угловую частоту вокруг модульного круга, умножьтесь π. Чтобы преобразовать нормированную частоту назад в герц, умножьте наполовину демонстрационную частоту.

Если вы вызываете freqz без выходных аргументов, он строит и значение по сравнению с частотой и фазу по сравнению с частотой. Например, девятый порядок Баттерворт lowpass фильтр с частотой среза 400 Гц, на основе частоты дискретизации на 2 000 Гц,

[b,a] = butter(9,400/1000);

Вычислить комплексную частотную характеристику с 256 точками для этого фильтра и построить значение и фазу с freqz, использованием

freqz(b,a,256,2000)

freqz может также принять вектор произвольных точек частоты для использования в вычислении частотной характеристики. Например,

w = linspace(0,pi);
h = freqz(b,a,w);

вычисляет комплексную частотную характеристику в точках частоты в w для фильтра, заданного векторами b и a. Точки частоты могут колебаться от 0 до 2π. Чтобы задать вектор частоты, который колеблется от нуля до вашей частоты дискретизации, включайте и вектор частоты и значение частоты дискретизации в списке параметров.

Эти примеры показывают, как вычислить и отобразить цифровые частотные характеристики.

Частотная характеристика от передаточной функции

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

Частотная характеристика КИХ-полосового фильтра

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

Ответ значения фильтра Highpass

Разработайте 3-й порядок highpass Фильтр Баттерворта, имеющий нормированную частоту на 3 дБ 0.5π рад/выборка. Вычислите его частотную характеристику. Выразите ответ значения в децибелах и постройте его.

[b,a] = butter(3,0.5,'high');
[h,w] = freqz(b,a);

dB = mag2db(abs(h));

plot(w/pi,dB)
xlabel('\omega / \pi')
ylabel('Magnitude (dB)')
ylim([-82 5])

Повторите вычисление с помощью fvtool.

fvtool(b,a)

Аналоговая область

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

Сравнение аналогового БИХ фильтры Lowpass

Разработайте аналог 5-го порядка Баттерворт lowpass фильтр с частотой среза 2 ГГц. Умножьтесь 2π преобразовывать частоту в радианы в секунду. Вычислите частотную характеристику фильтра в 4 096 точках.

n = 5;
f = 2e9;

[zb,pb,kb] = butter(n,2*pi*f,'s');
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,4096);

Разработайте 5-й порядок Чебышевский Тип, который я фильтрую с той же частотой ребра и 3 дБ пульсации полосы пропускания. Вычислите его частотную характеристику.

[z1,p1,k1] = cheby1(n,3,2*pi*f,'s');
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,4096);

Разработайте 5-й порядок фильтр Типа II Чебышева с той же частотой ребра и 30 дБ затухания полосы задерживания. Вычислите его частотную характеристику.

[z2,p2,k2] = cheby2(n,30,2*pi*f,'s');
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,4096);

Разработайте 5-й порядок эллиптический фильтр с той же частотой ребра, 3 дБ пульсации полосы пропускания и 30 дБ затухания полосы задерживания. Вычислите его частотную характеристику.

[ze,pe,ke] = ellip(n,3,30,2*pi*f,'s');
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,4096);

Постройте затухание в децибелах. Выразите частоту в гигагерце. Сравните фильтры.

plot(wb/(2e9*pi),mag2db(abs(hb)))
hold on
plot(w1/(2e9*pi),mag2db(abs(h1)))
plot(w2/(2e9*pi),mag2db(abs(h2)))
plot(we/(2e9*pi),mag2db(abs(he)))
axis([0 4 -40 5])
grid
xlabel('Frequency (GHz)')
ylabel('Attenuation (dB)')
legend('butter','cheby1','cheby2','ellip')

У Баттерворта и Чебышевских фильтров Типа II есть плоские полосы пропускания и широкие полосы перехода. Чебышевский Тип I и эллиптические фильтры прокручиваются прочь быстрее, но имеют пульсацию полосы пропускания. Вход частоты к Чебышевской функции проекта Типа II устанавливает начало полосы задерживания, а не конец полосы пропускания.