Материал: Цифровая обработка сигналов. методические указания к выполнению лабораторных работ № 4. Кузьменко Р.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.4. ВЫЧИСЛЕНИЕ РЕАКЦИИ ПО РАЗНОСТНОМУ УРАВНЕНИЮ')

disp('%')

disp('%')

disp('% Для вывода ГРАФИКА РЕАКЦИИ, вычисленной по РАЗНОСТНОМУ УРАВНЕНИЮ,

нажмите<ENTER>') pause

y2 = filter(b,a,x); % РЕАКЦИЯЛДС subplot(4,1,4), stem(n,y2,'fill','MarkerSize',3), grid xlabel('n'), ylabel('y(n)')

title('Output Signal y2(n) — filter (length = N2)') disp('%')

disp('%')

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.5. ВЫЧИСЛЕНИЕ ПАРАМЕТРОВ ПЕРЕДАТОЧНОЙ

ФУНКЦИИ В ВИДЕ ПРОИЗВЕДЕНИЯ ПРОСТЕЙШИХ МНОЖИТЕЛЕЙ') disp('%')

disp('%')

disp('%Для ВЫВОДА нулей (q) и полюсов (p) В АЛГЕБРАИЧЕСКОЙ ФОРМЕ и коэффициента

усиления (K) нажмите <ENTER>') pause

[q,p,K] = tf2zpk(b,a) % НУЛИ (q) И ПОЛЮСЫ (p) В АЛГЕБРАИЧЕСКОЙ ФОРМЕ И

КОЭФФИЦИЕНТ УСИЛЕНИЯ (K) disp('%')

disp('%Для ВЫВОДА нулей (q) в ПОКАЗАТЕЛЬНОЙ ФОРМЕ нажмите

<ENTER>') pause

disp('% rq — РАДИУСЫ, wq — АРГУМЕНТЫ нулей')

rq = abs(q) % РАДИУСЫ КОМПЛЕКСНО СОПРЯЖЕННЫХ НУЛЕЙ

wq = angle(q) % АРГУМЕНТЫ КОМПЛЕКСНО СОПРЯЖЕННЫХ НУЛЕЙ disp('%Для ВЫВОДА полюсов (p) в ПОКАЗАТЕЛЬНОЙ ФОРМЕ нажмите

<ENTER>')

21

pause

disp('% rp — РАДИУСЫ, wp — АРГУМЕНТЫ полюсов')

rp = abs(p) % РАДИУСЫ КОМПЛЕКСНО СОПРЯЖЕННЫХ ПОЛЮСОВ

wp = angle(p) % АРГУМЕНТЫ КОМПЛЕКСНО СОПРЯЖЕННЫХ ПОЛЮСОВ disp('%')

disp('%')

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.6. ВЫЧИСЛЕНИЕ ПАРАМЕТРОВ ПЕРЕДАТОЧНОЙ

ФУНКЦИИ В ВИДЕ ПРОИЗВЕДЕНИЯ МНОЖИТЕЛЕЙ ВТОРОГО ПОРЯДКА') disp('%')

disp('%')

disp('% Для ВЫВОДА матрицы коэффициентов (s) и коэффициента усиления

(G)

нажмите <ENTER>') pause

[s,G] = tf2sos(b,a) % КОЭФФИЦИЕНТЫ (s) И КОЭФФИЦИЕНТ УСИЛЕНИЯ

(G)

disp('%')

disp('%')

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.7. ВЫЧИСЛЕНИЕ ПАРАМЕТРОВ ПЕРЕДАТОЧНОЙ

ФУНКЦИИ В ВИДЕ СУММЫ ПРОСТЫХ ДРОБЕЙ')

disp('%')

disp('%')

disp('% Для ВЫВОДА коэффициентов разложения (r), полюсов (p) и целой части (c)

нажмите <ENTER>') pause

[r,p,c] = residuez(b,a) % КОЭФФИЦИЕНТЫ РАЗЛОЖЕНИЯ (r) и ПОЛЮСЫ (p)

В

АЛГЕБРАИЧЕСКОЙ ФОРМЕ И ЦЕЛАЯ ЧАСТЬ (c) disp('%')

disp('%Для ВЫВОДА КОЭФФИЦИЕНТОВ РАЗЛОЖЕНИЯ (r) в ПОКАЗАТЕЛЬНОЙ ФОРМЕ нажмите

<ENTER>')

22

pause

rr = abs(r) % РАДИУСЫ КОМПЛЕКСНО СОПРЯЖЕННЫХ КОЭФФИЦИЕНТОВ РАЗЛОЖЕНИЯ

(r)

wr = angle(r) % АРГУМЕНТЫ КОМПЛЕКСНО СОПРЯЖЕННЫХ КОЭФФИЦИЕНТОВ

РАЗЛОЖЕНИЯ (r) disp('%')

disp('%')

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.8. ВЫВОД КАРТЫ НУЛЕЙ И ПОЛЮСОВ') disp('%')

disp('%')

disp('% Для ВЫВОДА КАРТЫ НУЛЕЙ И ПОЛЮСОВ нажмите <ENTER>') pause

figure('Name',' Z-plane zero-pole plot','NumberTitle', 'off') zplane(b,a), title('Z-plane zero-pole plot'), grid xlabel('Re'), ylabel('jIm')

disp('%')

disp('%')

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.9.ВЫЧИСЛЕНИЕ АЧХ и ФЧХ В ШКАЛЕ НОРМИРОВАННЫХ ЧАСТОТ')

disp('%')

disp('%')

disp('% Для вывода ГРАФИКОВ АЧХ и ФЧХ в шкале НОРМИРОВАННЫХ частот нажмите

<ENTER>') pause

w = 0:pi/100:pi; % ВЕКТОР НОРМИРОВАННЫХ ЧАСТОТ (РАД)

H_w = freqz(b,a,w); % КОМПЛЕКСНАЯ ЧАСТОТНАЯ ХАРАКТЕРИСТИКА

MAG_w = abs(H_w); % АЧХ PHASE_w = angle(H_w); % ФЧХ

figure('Name','Magnitude and Phase Responses','NumberTitle', 'off') subplot(2,2,1), plot(w,MAG_w), grid, xlabel('w (rad)'), title('MAGNITUDE — |Н(w)|')

23

subplot(2,2,3), plot(w,PHASE_w), grid, xlabel('w (rad)'), title('PHASE — arg [H(w)] (rad)')

disp('%')

disp('%')

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.10. ВЫЧИСЛЕНИЕ АЧХ и ФЧХ В ШКАЛЕ АБСОЛЮТНЫХ ЧАСТОТ')

disp('%')

disp('%')

disp('% Для вывода ГРАФИКОВ АЧХ и ФЧХ в шкале АБСОЛЮТНЫХ частот нажмите

<ENTER>') pause

f = 0:Fs/100:Fs/2; % ВЕКТОР АБСОЛЮТНЫХ ЧАСТОТ (Гц)

H = freqz(b,a,f,Fs); % КОМПЛЕКСНАЯ ЧАСТОТНАЯ ХАРАКТЕРИСТИКА

MAG = abs(H); % АЧХ PHASE = angle(H); % ФЧХ

subplot(2,2,2), plot(f,MAG), grid, xlabel('f (Hz)'), title('MAGNITUDE — |Н(f)|')

subplot(2,2,4), plot(f,PHASE), grid, xlabel('f (Hz)'), title('PHASE — arg [H(f)] (rad)')

disp('%')

disp('%')

disp('% Для продолжения нажмите <ENTER>') pause

disp('%')

disp('%')

disp('% п.11. ОПИСАНИЕ СТРУКТУРЫ РЕКУРСИВНОГО ЗВЕНА') disp('%')

disp('%')

disp('% Для вывода СВОЙСТВ ОБЪЕКТОВ dfilt нажмите <ENTER>') pause

Hd1 = dfilt.df1(b,a) % ПРЯМАЯСТРУКТУРА (Direct-Form I)

Hd2 = dfilt.df2(b,a) % ПРЯМАЯ КАНОНИЧЕСКАЯ СТРУКТУРА (Direct-Form II)

Hd3 = dfilt.df1t(b,a) % ПРЯМАЯ ТРАНСПОНИРОВАННАЯ СТРУКТУРА

(Direct-Form I

Transposed)

Hd4 = dfilt.df2t(b,a) % ПРЯМАЯ КАНОНИЧЕСКАЯ ТРАНСПОНИРОВАННАЯ СТРУКТУРА

24

(Direct-Form I Transposed)

disp('% Дляпродолжениянажмите<ENTER>') pause

disp('%')

disp('%')

disp('% п.12. АНАЛИЗ ВЛИЯНИЯ НУЛЕЙ И ПОЛЮСОВ НА ВИД АЧХ') disp('%')

disp('%')

b(1,:) = [1 0 0]; % КОЭФФИЦИЕНТЫ ЧИСЛИТЕЛЯ — 1-я СТРОКА МАТРИЦЫ

b(2,:) = [1 0 0]; % КОЭФФИЦИЕНТЫ ЧИСЛИТЕЛЯ — 2-я СТРОКА МАТРИЦЫ

b(3,:) = [1 0 0]; % КОЭФФИЦИЕНТЫ ЧИСЛИТЕЛЯ — 3-я СТРОКА МАТРИЦЫ

b(4,:) = [1 1 0]; % КОЭФФИЦИЕНТЫ ЧИСЛИТЕЛЯ — 4-я СТРОКА МАТРИЦЫ

a(1,:) = a; % КОЭФФИЦИЕНТЫ ЗНАМЕНАТЕЛЯ — 1-я СТРОКА МАТРИЦЫ a(2,:)=[1 -a(1,2) a(1,3)]; % КОЭФФИЦИЕНТЫ ЗНАМЕНАТЕЛЯ — 2-я СТРОКА МАТРИЦЫ

a(3,:)=[1 a(1,2) 1.2*a(1,3)]; % КОЭФФИЦИЕНТЫ ЗНАМЕНАТЕЛЯ — 3-я

СТРОКА МАТРИЦЫ

a(4,:)=[1 a(1,2) a(1,3)]; % КОЭФФИЦИЕНТЫ ЗНАМЕНАТЕЛЯ — 4-я СТРОКА МАТРИЦЫ

w = 0:pi/100:pi; % ВЕКТОР НОРМИРОВАННЫХ ЧАСТОТ (РАД) for i=1:4

H3(:,i) = freqz(b(i,:),a(i,:),w); %ЧАСТОТНАЯХАРАКТЕРИСТИКА — i-

йСТОЛБЕЦ

МАТРИЦЫ

MAG3(:,i) = abs(H3(:,i)); MAX(:,i) = max(MAG3(:,i)); % АЧХ — i-йСТОЛБЕЦ МАТРИЦЫ — И МАКСИМУМ АЧХ

MAGN(:,i) = MAG3(:,i)/MAX(:,i); % НОРМИРОВАННАЯ АЧХ — i-й

СТОЛБЕЦ МАТРИЦЫ end

disp('% Для вывода КАРТЫ НУЛЕЙ И ПОЛЮСОВ и НОРМИРОВАННОЙ АЧХ нажмите <ENTER>')

pause

figure('Name','Z-plane zero-pole plots and Normalized Magnitudes','NumberTitle', 'off')

for i = 1:4

subplot(4,2,2*i-1), zplane(b(i,:),a(i,:)), title('Z-plane zero-pole plot'), grid

xlabel('Re'), ylabel('jIm') subplot(4,2,2*i), plot(w,MAGN(:,i)), grid

25

Источник: https://studfile.net/preview/16565253/