[an error occurred while processing this directive]
Вот, пожалуйста, пример как раз такого фильтра (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)
clear;
b1 = [0.00273529641937397 -0.00547030213575517 0.00273529641937397];
a1 = [1 -1.99929858698267 0.999298877685664];
b2 = [0.0800413267673551 -0.160081440778921 0.0800413267673551];
a2 = [1 -1.99953530311578 0.99953651587157];
b3 = [0.233720716476403 -0.467439417466767 0.233720716476403];
a3 = [1 -1.99984448993009 0.999846505416127];
b = conv(conv(b1, b2), b3);
a = conv(conv(a1, a2), a3);
x = [1 zeros(1, 100000)];
y1 = filter(b1, a1, x);
y2 = filter(b2, a2, y1);
y3 = filter(b3, a3, y2);
figure(20);
plot(y3);
grid on;
zoom on;
figure(21);
plot(abs(fft(y3)), 'r');
grid on;
zoom on;
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Другой вопрос, что если Вы вычисления делаете не на плавучке, а, скажем, в 16-ти разрядах. Тогда фильтр легко может стать программно неустойчивым (хотя по теории он устойчив) — homekvn (21.07.2006 16:52 212.185.161.237, пустое)
- А с 32-мя разрядными фиксед поинт коэф-ми и такими же вычислениями уже проблем не возникнет? (-) — vog (21.07.2006 17:04 217.14.192.163, пустое)
- Думаю, вполне хватит, если будет несколько каскадов биквадов. Мне хватало и на пять каскадов, а тут всего три. Но все равно, будьте очень внимательны. Лучше промоделируйте сначала в матлабе или еще где-нибудь. — homekvn (21.07.2006 17:18 212.185.161.237, пустое)
- Да ведь от порядка зависит, от реализации фильтра многое зависит. Каскадирован он, или нет, или, как вариант, не каскадирован, а параллельная реализ. Вот если интересно, несколько цифр из одной работы. Комплексный полосовой чебышевский БИХ фильтр 6 порядка, параллельная реализация, центр на 106 Гц, полуширина 35 Гц, квантование 64 КГц. 32-х р. к-ты. — -=ВН=- (21.07.2006 17:11 193.125.71.140, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание