Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Звіт
Лабораторна робота №5
«РОЗРОБКА ЦИФРОВОГО НЕРЕКУРСИВНОГО СІХ (FIR) ФІЛЬТРА»
Підготував:
ст.гр. КІ-43
Зозуля Д.І.
Перевірив:
асист.
Грос .В.В.
Львів 2013
Мета: розробити цифровий нерекурсивний СІХ (FIR) фільтр.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Фільтри зі скінченною імпульсною характеристикою (СІХ-фільтри)
широко використовуються в системах цифрової обробки сигналів через їхню
високу швидкодію та лінійну фазову характеристику. Реалізація СІХ-фільтрів на
програмованих логiчних iнтегральних схемах (ПЛІС) має ряд переваг: це висока
продуктивність, малі апаратні витрати, швидке перенастроювання та висока
якість фільтрування завдяки повній адаптації реалізованої структури алгоритму
фільтрації, сумiсна реалiзацiя з iншими блоками обробки в межах системи на
кристалi.
Фільтр зі скінченною імпульсною характеристикою (нерекурсивний
фільтр, СІХ-фільтр) — один з видів електронних фільтрів, характерною
особливістю якого є обмеженість по часу його імпульсної характеристики (з якогось моменту часу вона стає вона стає точно рівною нулеві). Такий фільтр
називають ще нерекурсивним через відсутність зворотного зв'язку. Знаменник
передаточної функції такого фільтру — певна константа.
Обчислення СІХ -фільтра полягає в знаходженні наступної суми добутків:
yn = a1xn +…+ akxn-k+1+… +aKxn-K+1, (1)
де xn - вхідні дані, ak - коефіцієнти імпульсної характеристики, K - довжина
імпульсної характеристики, yn - вихідні результати з індексом n.
Виконання:
Визначення варіанту:
Кількість коефіцієнтів фільтра визначається: N mod 10 + 5
6 mod 10 + 5=6+5=11;
Тестова вхідна послідовність :
1 0…N, 5… 0... N+8… =0123456543210123456789 10 11 12 13 14…
2 N+10…0…N+7 .=16 15 14 13 12 11 10 9876543210123456789 10 11 12 13 .
3 0…N+5, 0…N+5… =0123456789 10 11 0123456789 10 11…
4 N+7…0,N,0…N+7 =13 12 11 10 9876543210 6 0123456789 10 11 12 13
Рис. 1 Схема СІХ фільтра з синхронізацією виводу результату опрацювання
Тест моделює подачу на цифровий фільтр вхідної послідовності №1
….
data_change_process : PROCESS
VARIABLE I : INTEGER;
BEGIN
for i in 0 to 5 loop
WAIT FOR 20 ns;
ZDI_A <= conv_std_logic_vector(conv_integer(ZDI_A) + 1,8);
end loop;
--ZDI_A<=x"05";
for i in 0 to 6 loop
WAIT FOR 20 ns;
ZDI_A <= conv_std_logic_vector(conv_integer(ZDI_A) - 1,8);
end loop;
-- ZDI_A<=x"00";
for i in 0 to 13 loop
ZDI_A <= conv_std_logic_vector(conv_integer(ZDI_A) + 1,8);
WAIT FOR 20 ns;
ZDI_A <= x"00";
end loop;
END PROCESS;
Рис. 2 Часові діаграми моделювання СІХ фільтра №1
Тест моделює подачу на цифровий фільтр вхідної послідовності №2
…
data_change_process : PROCESS
VARIABLE I : INTEGER;
BEGIN
for i in 0 to 16 loop
WAIT FOR 20 ns;
ZDI_A <= conv_std_logic_vector(conv_integer(ZDI_A) - 1,8);
end loop;
--ZDI_A<=x"05";
ZDI_A<=x"00";
for i in 0 to 12 loop
WAIT FOR 20 ns;
ZDI_A <= conv_std_logic_vector(conv_integer(ZDI_A) + 1,8);
end loop;
wait;
END PROCESS;
Рис. 3 Часові діаграми моделювання СІХ фільтра №2
Тест моделює подачу на цифровий фільтр аналога дельта функції. На виході фільтра – його імпульсна характеристика:
…..
clk_process : PROCESS
BEGIN
ZDI_CLK <='0';
WAIT FOR 10 ns;
ZDI_CLK <= '1';
WAIT FOR 10 ns;
END PROCESS;
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
ZDI_CLR <= '0' AFTER 4 NS;
ZDI_CE <= '1' AFTER 3 NS;
WAIT FOR 15 ns;
ZDI_A <= "00000001";
WAIT FOR 16 ns;
ZDI_A <= "00000000";
WAIT; -- will wait forever
END PROCESS;
Рис. 4 Часові діаграми моделювання подачі на цифровий фільтр дельта функції
Висновок: під час виконання даної лабораторної роботи я розробляв цифровий не рекурсивний фільтр з заданим числом коефіцієнтів за допомогою Xilinx ISE WEB-Pack. Створив кілька тестів для перевірки його роботи ,штучно подавав необхідні мені сигнали, та звіряв результати.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!