МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Звіт про виконання
лабораторної роботи №3
з курсу “Цифрова обробка сигналів і зображень”
тема: “Моделювання аналогових та дискретних систем”
Варіант 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, Гц
Сигнал
СФ Баттерворта
[400 1000]
[490 880]
60
2.1
18
4000
S3.mat
Лістинг програми в середовищі Matlab
clc;
clear;
Fs=[400 1000];
Fp=[490 880];
Rs=60;
Rp=2.1;
N_bit=18;
fd=4000;
f_N = fd/2;
Fs_norm = Fs/f_N;
Fp_norm = Fp/f_N;
[n, Wn] = buttord(Fp_norm, Fs_norm, Rp, Rs);
n
fc = Wn * f_N
[b, a] =butter(n, 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.23 0.23 0.44 0.44 1];
M=[0 0 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 S3
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 ([-2000, 2000, 0, 400]);
Результати роботи
/
Рисунок 1. АЧХ фільтра Улле-Волкера
/
Рисунок 2. Похибка квантування при n=18
/
Рисунок 3. АЧХ фільтра при n=29
/
Рисунок 4. Вхідний і вихідний сигнали
/
Рисунок 5. Спектр сигналу, результуючий спектр
Висновок: При побудові фільтра із даними характеристиками виникають значні похибки квантування при порядку фільтра n = 18.