Фильтрация БИФ Батреворта 10го порядка

Обсуждаем цифровые устройства...
Ответить
wanes101
Встал на лапы
Сообщения: 97
Зарегистрирован: Вт мар 01, 2011 10:06:35

Фильтрация БИФ Батреворта 10го порядка

Сообщение wanes101 »

здравствуйте
Коэффициенты рассчитал, вроде понял как по этому алгоритму считать
Изображение
Коэффициенты для фильтра
частота дискретизации 102400, фильтр режекторный с полосой 4000-5000
такие коэффициенты
%a5 a4 a3 ... a0
a=[0.905475 -8.71601 38.0856 -99.4697 171.921 -205.454 171.921 -99.4697 38.0856 -8.71601 0.905475];
%b5 b4 b3 ... b1
b=[0.819867 -8.04842 35.8696 -95.5494 168.446 -205.333 175.271 -103.451 40.4093 -9.43477];

в matlabe написал функцию для вычисления по этой схеме:
function y=filt(x)
N=1024;
[a,b]=get_k();
yi(1:10)=0;
xi(1:11)=0;
y=[];
for(n=1:N)
xi(1:10)=xi(2:11);
xi(11)=x(n);
yi(11)=sum(a.*xi)+sum(-b.*yi);
y(n)=yi(11);
yi=yi(2:11);
end
end

function [a,b]=get_k
%a5 a4 a3 ... a0
a=[0.905475 -8.71601 38.0856 -99.4697 171.921 -205.454 171.921 -99.4697 38.0856 -8.71601 0.905475];
b=[0.819867 -8.04842 35.8696 -95.5494 168.446 -205.333 175.271 -103.451 40.4093 -9.43477];
end

но что то не то, в этом и вопрос.

Входной сигнал пила с частотой 1500, Объем выборки 1024 вот так выглядит
Изображение
На выходе такое

1.0e+07 *

Columns 1 through 12
0 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

Columns 13 through 24

0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000

Columns 25 through 36

0.0000 0.0000 0.0000 0.0000 0.0001 0.0001 0.0002 0.0003 0.0005 0.0007 0.0010 0.0015

Columns 37 through 48

0.0023 0.0037 0.0062 0.0108 0.0187 0.0324 0.0554 0.0933 0.1548 0.2537 0.4124 0.6675

Columns 49 through 50

1.0803 1.7534

и т.д. увеличивается в бесконечность.
Реклама
Ответить

Вернуться в «Цифровая техника»