МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
кафедра захисту інформації
/
Лабораторна робота №5
на тему: «Дискретне перетворення Фур’є та його застосування для спектрального аналізу сигналів»
з курсу «РОЗРАХУНОК ТА ДОСЛІДЖЕННЯ
РЕКУРСИВНИХ ЦИФРОВИХ ФІЛЬТРІВ»
Варіант №8
Львів – 2014
Мета роботи – отримати навики розрахунку параметрів і характеристик рекурсивних цифрових фільтрів, а також навчитися застосовувати засоби програмного пакету Simulink MatLab для їх реалізації та дослідження.
ЗАВДАННЯ
1. Ознайомитись із теоретичними відомостями.
2. Розрахувати перші 5 коефіцієнтів нерекурсивного фільтра згідно заданого варіанту при відсутності накладання вікна.
3. Скласти програму в середовищі MatLab згідно завдання.
3.1. Розрахувати мінімально необхідний порядок вказаного типу фільтра для забезпечення поставлених вимог. Знайти коефіцієнти фільтра. Побудувати АЧХ розрахованого фільтра. Оцінити вплив N-бітного квантування коефіцієнтів фільтра на його характеристики при прямій реалізації та каскадній на основі біквадратних ланок. Провести фільтрацію заданого сигналу, що зберігається у файлі Lab_2_варіант у змінній signal.
№
Тип фільтру
Fs,
Гц
Fp,
Гц
Rs,
дБ
Rp, дБ
N,
біт
Fd,
Гц
Сигнал
8.
РФ Чебишева 1-го роду
[300 500]
[270 530]
70
1.4
14
2000
Lab_2_8.mat
Текст програми
Fs=[300 500]; % задаємо частоти смуг затримки
Fp=[270 530]; % задаємо частоти смуг пропускання
Rs=70; % пульсації (придушення) в смузі затримки
Rp=1.4; % пульсації в смузі пропускання
N_bit=14; % кількість біт для представлення дробової частини коефіцієнтів
fd=2000; % частота дискретизації
f_N = fd/2; % частота Найквіста
Fs_norm = Fs/f_N; % нормовані частоти смуги затримки
Fp_norm = Fp/f_N; % нормовані частоти смуг пропускання
[n, Wn] = cheb1ord(Fp_norm, Fs_norm, Rp, Rs); % визначаємо мінімальний порядок фільтра n та
% частоти зрізу Wn
n % виводимо порядок фільтра
fc = Wn * f_N % виводимо частоти зрізу
[b, a] = cheby1(n, Rp,Wn, 'stop'); % знаходимо коефіцієнти чисельника та
% знаменника фільтра
b = b(:); % перетворюємо вектор рядок у стовпець
a = a(:);
b % виводимо коефіцієнти чисельника
a % виводимо коефіцієнти знаменника
f = 0 : 1 : f_N; % задаємо вектор частот для розрахунку АЧХ
h = freqz(b, a, f, fd); % розраховуємо комплексний коефіцієнт передачі
figure(11); plot(f, abs(h)); grid on;
title('АЧХ рекурсивного фільтра');% будуємо графік АЧХ
bq = round(2^N_bit * b) / 2^N_bit; % квантуємо коефіцієнти чисельника
aq = round(2^N_bit * a)/ 2^N_bit; % квантуємо коефіцієнти знаменника
hq = freqz(bq, aq, f, fd); % розраховуємо комплексний коефіцієнт передачі
% квантованого фільтра
figure(12);
plot(f, abs(h), f, abs(hq)); grid on; legend('1', '2'); % будуємо графік АЧХ фільтру до і після квантування
title('графік АЧХ фільтру до і після квантування');
sos = tf2sos(b, a); % переходимо від прямої до каскадної форми фільтру
sosq = round(2^N_bit * sos) / 2^N_bit; % квантуємо коефіцієнти біквадратних ланок
[bs, as] = sos2tf(sos); % повертаємось до прямої форми представлення
hs = freqz(bs, as, f, fd); % розраховуємо комплексний коефіцієнт передачі
figure(13); plot(f, abs(hs)); grid on; % будуємо графік АЧХ
title('графік АЧХ фільтру з каскадною формою представлення із завкругленими коефіцієнтами передачі');
load Lab_3_8 % завантажуємо сигнал
signal_f1 = filter(b, a, signal); % проводимо фільтрацію сигналу
figure(13);
title('Графік сигналу до і після фільтрації');
subplot(311);
plot((0 : length(signal)-1) / fd, signal); grid on; % будуємо графік первинного сигналу
subplot(312);
plot((0 : length(signal)-1) / fd, signal_f1); grid on; % графік сигналу на виході НЦФ без вікна
b20=1-2*(fc(2)-fc(1))/fd;
k=1:5;
b20(k+1)=-sin(2*pi*k*fc(2)/fd)/(pi*k)+sin(2*pi*k*fc(1)/fd)/(pi*k);
b20
Результати виконання програми
Графік АЧХ рекурсивного РФ фільтра Чебишева 1-го роду
/
АЧХ фільтра 1- без квантування коефіцієнтів
2- з квантуванням
/
АЧХ фільтра побудованого каскадною формою
/
Графіки сигналу до та після фільтрування рекурсивним фільтром Чебишева 1-го роду
Висновок
При виконанні даної лабораторної роботи я отримав навики розрахунку параметрів і характеристик рекурсивних цифрових фільтрів, а також навчився застосовувати засоби програмного пакету Simulink MatLab для їх реалізації та дослідження. Порівнявши розрахунок рекурсивних та не рекурсивних фільтрів, я зробив висновок, що для забезпечення певних частот зрізу, достатньо рекурсивного фільтру значно нижчого порядку ніж не рекурсивного, проте, рекурсивний фільтр дещо важчий у реалізації.