Professional Documents
Culture Documents
DSP6 10
DSP6 10
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №6
Варіант № 10
Львів 2023
Мета роботи – отримати навики розрахунку параметрів і характеристик
рекурсивних цифрових фільтрів, а також навчитися застосовувати засоби
програмного пакету MatLab для їх реалізації та дослідження.
ЗАВДАННЯ
1. Ознайомитись із теоретичними відомостями.
2. Розрахувати мінімально необхідний порядок РЦФ для забезпечення
поставлених у табл. 1 вимог, знайти коефіцієнти ПФ H z фільтра та
побудувати графіки його АЧХ і ФЧХ, користуючись відповідними
процедурами MatLab.
3. Оцінити вплив N-бітного квантування коефіцієнтів фільтра на його
характеристики при прямій реалізації та каскадній на основі біквадратних
ланок. З метою порівняння побудувати на одному графіку АЧХ рекурсивного
фільтра у прямій формі реалізації та на основі ланок 2-го порядку.
4. За допомогою функції MatLab filter провести фільтрацію сигналу типу
“білий шум”, що генерується у змінній signal. Вивести графіки часового і
частотного представлення сигналів на вході на виході рекурсивного фільтра.
ХІД РОБОТИ
Код до програми
clc,clear all,close all, % очищення ерану командного рядка, всіх змінних та закриття всіх
вікон
%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Fstop=[650]; % граничні частоти смуг пропускання
Fpass=[700]; % граничні частоти смуг затримки
Astop=60; % рівень заглушення в смузі затримки
Apass=15; % максимальний допустимий рівень втрат в смузі пропускання
N_bit=12; % кількість бітів для квантування коефіцієнтів фільтра
Fs=5000; % частота дискретизації сигналу
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f_N = Fs/2; % половину частоти дискретизації
Fs_norm = Fstop/f_N; % нормалізована частота зупинки
Fp_norm = Fpass/f_N; % нормалізована частота передачі
[n, Wn] = cheb2ord(Fp_norm, Fs_norm, Apass, Astop); % порядок n та нормалізована частота
Wn
n %
fc = Wn * f_N % центральна частота фільтра
[b, a] = cheby2(n,Astop,Wn, 'high'); % коефіцієнти фільтра Chebyshev Type II для високих
частот
b=b' %
a=a' %
f = 0 :1: f_N; % від 0 до f_N з кроком 1
h = freqz(b, a, f,Fs); % комплексна частотна характеристику фільтра
bq = round(2^N_bit*b)/2^N_bit; % квантовані коефіцієнти фільтра
aq = round(2^N_bit*a)/2^N_bit; % квантовані коефіцієнти фільтра
hq = freqz(bq, aq, f, Fs); % комплексна частотна характеристика фільтра з квантованими
коефіцієнтами
figure(1); %
subplot (211);
plot(f, abs(h),f,abs(hq),'r--'); grid on; % амплітудні характеристики фільтра до квантування
xlabel('Частота, Гц'); ylabel('H'); legend ('до квантування','після квантування');
title('Амплітудно-частотна характеристика');
subplot (212);
plot (f,180*unwrap(angle(h))/pi,f,180*unwrap(angle(hq))/pi,'r--'); grid on; % будує
графіки фазо-частотних характеристик фільтра до квантування
xlabel('Частота, Гц'); ylabel('\Phi, град');
title('Фазо-частотна характеристика');
[sos,g] = tf2sos(b, a); % переходимо від прямої до каскадної форми фільтру на основі ланок
2-го порядку
sosq = round(2^N_bit * sos) / 2^N_bit; % квантуємо коефіцієнти біквадратних ланок
[bs, as] = sos2tf(sosq,g); % повертаємось до прямої форми представлення
hs = freqz(bs, as, f, Fs); % розраховуємо комплексний коефіцієнт передачі
subplot(212);
stem((0 : length(signal)-1) /Fs, signal_r); grid on; % графік сигналу на виході НЦФ без вікна
title ('Cигнал на виході РЦФ з дійсними коефіцієнтами');
% subplot(313);
% stem((0 : length(signal)-1) /fd, signal_q); grid on; % графік сигналу на виході НЦФ без
вікна
% title ('Cигнал на виході РЦФ з квантованими коефіцієнтами');