МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
Звіт
до лабораторноїроботи №3
з курсу «Цифрова обробка сигналів»
Моделювання аналогових та дискретних систем
Мета роботи: отримати навики розрахунку параметрів і характеристик рекурсивних цифрових фільтрів, а також навчитися застосовувати засоби програмного пакету MatLab для їх дослідження.
Завдання до лабораторної роботи
1. Ознайомитись із теоретичними відомостями.
Розрахувати мінімально необхідний порядок РЦФ для забезпечення поставлених у таблиці 1 вимог, знайти коефіцієнти ПФ H(z) фільтра та побудувати графіки його АЧХ і ФЧХ, користуючись відповідними процедурами MatLab.
3. Виконати альтернативне обчислення коефіцієнтів передатної функції H * (z )
цифрового фільтра рекурсивного із заданими вище параметрами використовуючи процедуру ‘yulewalk’ пакету MatLab тапорівняти графіки частотних арактеристик H (θ ) , H * (θ ) спроектованих за даними методами.
4. Оцінити вплив 12-бітного квантування коефіцієнтів ПФ H (z ) фільтра (п.2) на його характеристики при реалізаціях прямій та каскадній на основі біквадратних ланок.
Провести фільтрацію заданого сигналу, що зберігається у файлі SваріантN у змінній signal.
Табл. 1
Тип фільтру
Fs, Гц
Fp, Гц
Rs, дБ
Rp, дБ
N, біт
Fd, Гц
Сигнал
РФ Кауера
[3000 5000]
[2700 5300]
85
1.1
8
25000
S16.mat
Лістинг програми в середовищі Matlab
clc;
clear;
Fs=[3000 5000];
Fp=[2700 5300];
Rs=85;
Rp=1.1;
N_bit=8;
fd=25000;
f_N = fd/2;
Fs_norm = Fs/f_N;
Fp_norm = Fp/f_N;
[n, Wn] = ellipord(Fp_norm, Fs_norm, Rp, Rs);
n
fc = Wn * f_N
[b, a] =ellip(n, Rp,Rs, Wn);
b = b(:);
a = a(:);
b
a
f = 0 : 1 : f_N;
h = freqz(b, a, f, fd);
figure(1);
subplot(2,1,1);
plot(f, abs(h)); grid on;
F=[0 0.32 0.32 1];
M=[1 1 0 0];
[by,ay]=yulewalk(2*n,F,M);
hy=freqz (by,ay,f,fd);
subplot(2,1,2);
plot(f, abs(hy)); grid on;
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(2);
plot(f, abs(h), f, abs(hq)); grid on;
sos = tf2sos(b, a);
sosq = round(2^N_bit * sos) / 2^N_bit;
[bs, as] = sos2tf(sosq);
hs = freqz(bs, as, f, fd);
figure(3);
plot(f, abs(hs)); grid on;
load S16
t=0:1:1000;
signal_f1 = filter(b, a, signal);
figure(4);
plot (t,signal,'b',t,signal_f1,'r');
N=length(signal);
df=fd/N;
F0=(N-1)*df;
f=(-F0/2):df:F0/2;
x1=fft(signal);
xx1=fftshift (x1);
xx1=abs(xx1);
figure(5);
subplot(2,1,1);
stem (f,xx1);
x2=fft(signal_f1);
xx2=fftshift (x2);
xx2=abs(xx2);
subplot(2,1,2);
stem (f,xx2); axis ([-8000, 8000, 0, 500]);
Результати роботи
Рисунок 1. АЧХ фільтра Улле-Волкера
Рисунок 2. Похибка квантування
Рисунок 3. АЧХ фільтра
Рисунок 4. Вхідний і вихідний сигналиРисунок 5. Спект сигналу, результуючий спект.
Висноков: на цій лабораторній роботі я навчився рохраховувати параметри і характеристики рекурсивних цифрових фільтрів.