МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Звіт
до лабораторної роботи №3
з курсу “Цифрова обробка сигналів і зображень”
тема: “Розрахунок та дослідження рекурсивних цифрових фільтрів”
Варіант 14
Львів 2011
Мета роботи: отримати навики розрахунку параметрів і характеристик рекурсивних цифрових фільтрів, а також навчитися застосовувати засоби програмного пакету 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, Гц
Сигнал
ФВЧ Кауера
2000
2400
85
2.1
10
15000
S14.mat
Лістинг програми в середовищі Matlab
clc;
clear;
Fs=[2000];
Fp=[2400];
Rs=85;
Rp=2.1;
N_bit=10;
fd=15000;
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, 'high');
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.293 0.293 1];
M=[0 0 1 1];
[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 S14
t=0:1:300;
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, 150]);
Результати роботи
Рисунок 1. АЧХ фільтра Кауера
Рисунок 2. Похибка квантування при n=10
Рисунок 3. АЧХ фільтра при n=9
Рисунок 4. Вхідний і вихідний сигнали
Рисунок 5. Спектр сигналу, результуючий спектр
Висновок:
Під час виконання роботи було проведено ознайомлення із принципами розрахунку параметрів і характеристик рекурсивних цифрових фільтрів.
При побудові фільтра із даними характеристиками виникають значні похибки квантування при порядку фільтра n = 10.