ВЕЙВЛЕТ-ОБРОБКА СИГНАЛІВ У СЕРЕДОВИЩІ MATLAB

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

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

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

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Обробка сигналів

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»  ЗВІТ до лабораторної роботи №3 з курсу: «Цифрові методи обробки сигналів і зображень» на тему: «ВЕЙВЛЕТ-ОБРОБКА СИГНАЛІВ У СЕРЕДОВИЩІ MATLAB» Мета роботи – ознайомитися з основними можливостями вейвлет-обробки реалізованими в середовищі MatLab, отримати навики розрахунку дискретного вейвлет-перетворення, декомпозиції сигналу на апроксимуючі і деталізуючи складові, вейвлет-очищення сигналів від шумів в середовищі MatLab. ЗАВДАННЯ 1. Ознайомитись з теоретичним матеріалом. 2. Скласти програму в середовищі MatLab згідно завдання. 2.1. Провести очищення сигналу від шуму з використанням вейвлет-процедури відповідно до завдання у Табл. 2. Сигнал зберігається у файлі Lab_3_варіант у змінній signal. Табл. 1. № Тип вейвлету Рівень розкладу Поріг Тип порогу Масштабування Сигнал  1. Добеші 3-го порядку 3 rigrsure жорсткий Тип 1 Lab_3_1.mat   РЕЗУЛЬТАТИ ВИКОНАННЯ РОБОТИ Лістинг програми: >> load C:\Lab_3_1;% Завантаження сигналу >> tn = (0 : length(signal)-1); % вісь часу >> w_name = 'db3'; % тип вейвлету >> Lev = 3;% рівень розкладу >> 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);% вейвлет-розклад сигналу >> cA3 = appcoef(C, L, w_name, Lev);% добування коефіцієнтів апроксимації сА3 >> [cD3 cD2 cD1] = detcoef(C, L, [3 2 1]);% добування коефіцієнтів деталізації сD3, cD2, cD1 >> % Побудова графіків коефіцієнтів розкладу >> figure(3); subplot(411); plot(cA3); grid on; xlim([0 L(1)-1]); ylabel('cA3'); >> subplot(412); plot(cD3); grid on; xlim([0 L(2)-1]); ylabel('cD3'); >> subplot(413); plot(cD2); grid on; xlim([0 L(3)-1]); ylabel('cD2'); >> A3 = wrcoef('a', C, L, w_name, 3); % Обчислення апроксимуючої складової А3 >> 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(511); plot(signal); grid on; xlim([0 L_sig-1]); ylabel('S(n)'); >> subplot(512); plot(A3); grid on; xlim([0 L_sig-1]); ylabel('A3'); >> subplot(513); plot(D3); grid on; xlim([0 L_sig-1]); ylabel('D3'); >> subplot(514); plot(D2); grid on; xlim([0 L_sig-1]); ylabel('D2'); >> subplot(515); 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(3)) cD1(ii) = 0; else cD1(ii) = cD1(ii); end; end; >> % Жорстке порогування коефіцієнтів cD2 >> for ii = 1 : length(cD2) if (abs(cD2(ii)) < thr(2)) cD2(ii) = 0; else cD2(ii) = cD2(ii); end; end; >> % Жорстке порогування коефіцієнтів cD3 >> for ii = 1 : length(cD3) if (abs(cD3(ii)) < thr(1)) cD3(ii) = 0; else cD3(ii) = cD3(ii); end; end; >> % Заміна первинних коефіцієнтів cD обчисленими >> cD = [cD3 cD2 cD1]; >> C(L(1) + 1 : end) = cD; >> % Побудова графіків коефіцієнтів після порогування >> figure(5); subplot(411); plot(0:L(1)-1, cA3); grid on; xlim([0 L(1)-1]); ylabel('cA3'); >> subplot(412); plot(0:L(2)-1, cD3); grid on; xlim([0 L(2)-1]); ylabel('cD3'); >> subplot(413); plot(0:L(3)-1, cD2); grid on; xlim([0 L(3)-1]); ylabel('cD2'); >> subplot(414); plot(0:L(4)-1, cD1); grid on; xlim([0 L(4)-1]); ylabel('cD1'); >> % Обчислення деталізуючих складових після порогування >> 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(511); plot(tn, signal); grid on; xlim([0 L_sig-1]); ylabel('S(n)'); >> subplot(512); plot(tn, A3); grid on; xlim([0 L_sig-1]); ylabel('A3'); >> subplot(513); plot(tn, D3); grid on; xlim([0 L_sig-1]); ylabel('D3'); >> subplot(514); plot(tn, D2); grid on; xlim([0 L_sig-1]); ylabel('D2'); >> subplot(515); 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)'); Графіки до порогування / Рис.1 АЧХ фільтрів декомпозиції / Рис.2 АЧХ фільтрів реконструкції / Рис.3 Коефіціенти розкладу / Рис.4 Сигнал та його часові складові Графіки після жорсткого порогування / Рис.5 Коефіціенти розкладу після порогування / Рис.6 Сигнал та його часові складові після порогування / Рис.7 Сигнал до і після очищення Висновок: на даній лабораторній роботі я ознайомився з основними можливостями вейвлет-обробки реалізованими в середовищі MatLab, отримав навики розрахунку дискретного вейвлет-перетворення, декомпозиції сигналу на апроксимуючі і деталізуючі складові, вейвлет-очищення сигналів від шумів в середовищі MatLab.
Антиботан аватар за замовчуванням

15.06.2014 01:06-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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