МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
кафедра захисту інформації
/
Лабораторна робота №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 для їх реалізації та дослідження. Порівнявши розрахунок рекурсивних та не рекурсивних фільтрів, я зробив висновок, що для забезпечення певних частот зрізу, достатньо рекурсивного фільтру значно нижчого порядку ніж не рекурсивного, проте, рекурсивний фільтр дещо важчий у реалізації.