ЗАСТОСУВАННЯ ХВИЛЬКОВОГО ПЕРЕТВОРЕННЯ ДЛЯ ОБРОБКИ СИГНАЛІВ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Цифрова обробка сигналів та зображень
Група:
ЗІД-12

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» кафедра захисту інформації  Лабораторна робота №3 на тему: «ЗАСТОСУВАННЯ ХВИЛЬКОВОГО ПЕРЕТВОРЕННЯ ДЛЯ ОБРОБКИ СИГНАЛІВ» з курсу «Цифрова обробка сигналів та зображень» Мета роботи: ознайомитися зі змістом хвилькового перетворення, основними можливостями хвилькової обробки реалізованими в програмному пакеті MatLab, отримати навики розрахунку дискретного хвилькового перетворення, декомпозиції сигналу на апроксимуючі та деталізуючі складові, хвилькова очищення сигналів від шумів. Завдання: 1. Ознайомитись з теоретичним матеріалом. 2. Скласти програму в середовищі MatLab згідно завдання. 2.1. Провести очищення сигналу від шуму з використанням хвилькового перетворення відповідно до завдання у табл. 2. Сигнал зберігається у файлі Lab_3_варіант у змінній signal. Варіант Тип вейвлету Рівень роз-кладу Поріг  Тип порогу  Масшта-бування Сигнал  1. Добеші 3-го порядку 3 rigrsure жорсткий Тип 1 Lab_3_1.mat  Лістинг програми: load Lab_3_11; % Завантаження сигналу tn = (0 : length(signal)-1); % вісь часу w_name = 'coif5'; % тип вейвлету Lev = 5; % рівень розкладу type = 'rigrsure'; % поріг [Lo_D, Hi_D, Lo_R, Hi_R] = wfilters(w_name); % розрах-к фільтрів декомпозиції і реконструкції % розрахунок АЧХ фільтрів [h_D, f] = freqz(Lo_D, 1, 0:0.001:1, 2); h1_D = freqz(Hi_D, 1, 0:0.001:1, 2); [h_R, f] = freqz(Lo_R, 1, 0:0.001:1, 2); h1_R = freqz(Hi_R, 1, 0:0.001:1, 2); figure(1); plot(f, abs(h_D), f, abs(h1_D)); grid on; % графік АЧХ фільтрів декомпозиції figure(2); plot(f, abs(h_R), f, abs(h1_R)); grid on; % графік АЧХ фільтрів реконструкції [C, L] = wavedec(signal, Lev, w_name); % хвилькова розклад сигналу cA5 = appcoef(C, L, w_name, Lev); % добування коефіцієнтів апроксимації сА5 [cD5 cD4 cD3 cD2 cD1] = detcoef(C, L, [5 4 3 2 1]); % добування коефіцієнтів деталізації cD5 cD4 сD3, cD2, cD1 % Побудова графіків коефіцієнтів розкладу figure(3); subplot(611); plot(cA5); grid on; xlim([0 L(1)-1]); ylabel('cA5'); subplot(612); plot(cD5); grid on; xlim([0 L(2)-1]); ylabel('cD5'); subplot(613); plot(cD4); grid on; xlim([0 L(3)-1]); ylabel('cD4'); subplot(614); plot(cD3); grid on; xlim([0 L(4)-1]); ylabel('cD3'); subplot(611); plot(cD2); grid on; xlim([0 L(5)-1]); ylabel('cD2'); subplot(612); plot(cD1); grid on; xlim([0 L(6)-1]); ylabel('cD1'); A5 = wrcoef('a', C, L, w_name, 5); % Обчислення апроксимуючої складової А5 D5 = wrcoef('d', C, L, w_name, 5); % Обчислення деталізуючої складової D5 D4 = wrcoef('d', C, L, w_name, 4); % Обчислення деталізуючої складової D4 D3 = wrcoef('d', C, L, w_name, 3); % Обчислення деталізуючої складової D3 D2 = wrcoef('d', C, L, w_name, 2); % Обчислення деталізуючої складової D2 D1 = wrcoef('d', C, L, w_name, 1); % Обчислення деталізуючої складової D1 L_sig = length(signal); % Розмірність сигналу % Побудова графіків сигналу та його часових складових figure(4); subplot(711); plot(signal); grid on; xlim([0 L_sig-1]); ylabel('S(n)'); subplot(712); plot(A5); grid on; xlim([0 L_sig-1]); ylabel('A5'); subplot(713); plot(D5); grid on; xlim([0 L_sig-1]); ylabel('D5'); subplot(714); plot(D4); grid on; xlim([0 L_sig-1]); ylabel('D4'); subplot(715); plot(D3); grid on; xlim([0 L_sig-1]); ylabel('D3'); subplot(716); plot(D2); grid on; xlim([0 L_sig-1]); ylabel('D2'); subplot(717); plot(D1); grid on; xlim([0 L_sig-1]); ylabel('D1'); % Оцінка рівня шуму деталізуючих коефіцієнтів stdc = wnoisest(C, L, Lev); % Обчислення порогу для кожного рівня for ii = 1 : Lev thr(ii) = thselect(detcoef(C, L, ii)/stdc, type); thr (ii) = thr(ii) * stdc; end; % М’яке порогування коефіцієнтів cD1 for ii = 1 : length(cD1) if (abs(cD1(ii)) < thr(1)) cD1(ii) = 0; else cD1(ii) = cD1(ii) - sign(cD1(ii)) * thr(1); end; end; % М’яке порогування коефіцієнтів cD2 for ii = 1 : length(cD2) if (abs(cD2(ii)) < thr(2)) cD2(ii) = 0; else cD2(ii) = cD2(ii) - sign(cD2(ii)) * thr(2); end; end; % М’яке порогування коефіцієнтів cD3 for ii = 1 : length(cD3) if (abs(cD3(ii)) < thr(3)) cD3(ii) = 0; else cD3(ii) = cD3(ii) - sign(cD3(ii)) * thr(3); end; end; % М’яке порогування коефіцієнтів cD4 for ii = 1 : length(cD4) if (abs(cD4(ii)) < thr(4)) cD4(ii) = 0; else cD4(ii) = cD4(ii) - sign(cD4(ii)) * thr(4); end; end; % М’яке порогування коефіцієнтів cD5 for ii = 1 : length(cD5) if (abs(cD5(ii)) < thr(5)) cD5(ii) = 0; else cD5(ii) = cD5(ii) - sign(cD5(ii)) * thr(5); end; end; % Заміна первинних коефіцієнтів cD обчисленими cD = [cD5 cD4 cD3 cD2 cD1]; C(L(1) + 1 : end) = cD; % Побудова графіків коефіцієнтів після порогування figure(5); subplot(611); plot(0:L(1)-1, cA5); grid on; xlim([0 L(1)-1]); ylabel('cA5'); subplot(612); plot(0:L(2)-1, cD5); grid on; xlim([0 L(2)-1]); ylabel('cD5'); subplot(613); plot(0:L(3)-1, cD4); grid on; xlim([0 L(3)-1]); ylabel('cD4'); subplot(614); plot(0:L(4)-1, cD3); grid on; xlim([0 L(4)-1]); ylabel('cD3'); subplot(615); plot(0:L(5)-1, cD2); grid on; xlim([0 L(5)-1]); ylabel('cD2'); subplot(616); plot(0:L(6)-1, cD1); grid on; xlim([0 L(6)-1]); ylabel('cD1'); % Обчислення деталізуючих складових після порогування D5 = wrcoef('d', C, L, w_name, 5); D4 = wrcoef('d', C, L, w_name, 4); D3 = wrcoef('d', C, L, w_name, 3); D2 = wrcoef('d', C, L, w_name, 2); D1 = wrcoef('d', C, L, w_name, 1); % Побудова графіків сигналу та його часових складових після порогування figure(6); subplot(711); plot(tn, signal); grid on; xlim([0 L_sig-1]); ylabel('S(n)'); subplot(712); plot(tn, A5); grid on; xlim([0 L_sig-1]); ylabel('A5'); subplot(713); plot(tn, D5); grid on; xlim([0 L_sig-1]); ylabel('D5'); subplot(714); plot(tn, D4); grid on; xlim([0 L_sig-1]); ylabel('D4'); subplot(715); plot(tn, D3); grid on; xlim([0 L_sig-1]); ylabel('D3'); subplot(716); plot(tn, D2); grid on; xlim([0 L_sig-1]); ylabel('D2'); subplot(717); plot(tn, D1); grid on; xlim([0 L_sig-1]); ylabel('D1'); % Обчислення очищенного від шуму сигналу signal_d = waverec(C, L, w_name); % Побудова графіків сигналу до і після очищення figure(7); subplot(211); plot(tn, signal); grid on; xlim([0 L_sig-1]); ylabel('S(n)'); subplot(212); plot(tn, signal_d); grid on; xlim([0 L_sig-1]); ylabel('Denoised S(n)'); Графік АЧХ фільтрів декомпозиції і реконструкції  Побудова графіків коефіцієнтів розкладу   Побудова графіків сигналу та його часових складових  Побудова графіків коефіцієнтів після порогування  Побудова графіків сигналу та його часових складових після порогування  Побудова графіків сигналу до і після очищення  Висновок: я ознайомилась зі змістом хвилькового перетворення, основними можливостями хвилькової обробки реалізованими в програмному пакеті MatLab, отримала навики розрахунку дискретного хвилькового перетворення, декомпозиції сигналу на апроксимуючі та деталізуючі складові, хвилькова очищення сигналів від шумів.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!