Застосування хвильового перетворення для обробки сигналів

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» кафедра захисту інформації / Звіт про виконання лабораторної роботи №3 на тему: «Застосування хвильового перетворення для обробки сигналів» з курсу «Цифрова обробка сигналів та зображень» Мета роботи: ознайомитися зі змістом хвилькового перетворення, основними можливостями хвилькової обробки реалізованими в програмному пакеті MatLab, отримати навики розрахунку дискретного хвилькового перетворення, декомпозиції сигналу на апроксимуючі та деталізуючі складові, хвилькова очищення сигналів від шумів. Завдання: 1. Ознайомитись з теоретичним матеріалом. 2. Скласти програму в середовищі MatLab згідно завдання. 2.1. Провести очищення сигналу від шуму з використанням хвилькового перетворення відповідно до завдання у табл. 1. табл.1 № Тип вейвлету Рівень розкладу Поріг Тип порогу Масштабування Сигнал  20 (4) Добеші 4-го порядку 5 minimax жорсткий Тип 1 Lab_3_4.mat   Лістинг програми: >> tn=(0:length(signal)-1); % вісь часу >> w_name= 'db4'; % тип вейвлету >> Lev= 5; % рівень розкладу >> type= 'minimaxi'; % поріг >> [L0_D, Hi_D, L0_R, Hi_R]=wfilters(w_name); % розрах-к фільтрів декомпозиції і реконструкції % розрахунок АЧХ фільтрів >> [h_D, f]=freqz(L0_D, 1, 0:0.001:1, 2); >> h1_D=freqz(Hi_D, 1, 0:0.001:1, 2); >> [h_R, f]=freqz(L0_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(615); plot(cD2); grid on; xlim([0 L(4)-1]); ylabel('cD2'); >> subplot(616); 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(515); plot(D1); grid on; xlim([0 L_sig-1]); ylabel('D1'); % Оцінка рівня шуму деталізуючих коефіцієнтів >> stdc=wnoisest(C, L, 1); % Обчислення порогу для кожного рівня >> 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) cD1(ii)=0; end; end; % Жорстке порогування коефіцієнтів cD2 >> for ii=1:length(cD2) if (abs(cD2(ii))<thr) cD2(ii)=0; end; end; % Жорстке порогування коефіцієнтів cD3 >> for ii=1:length(cD3) if (abs(cD3(ii))<thr) cD3(ii)=0; end; end; % Жорстке порогування коефіцієнтів cD4 >> for ii=1:length(cD4) if (abs(cD4(ii))<thr) cD4(ii)=0; end; end; % Жорстке порогування коефіцієнтів cD5 >> for ii=1:length(cD5) if (abs(cD5(ii))<thr) cD5(ii)=0; 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, здійснив очищення сигналу від шуму, а саме: здійснив декомпозицію сигналу на апроксимуючі та деталізуючі коефіцієнти, здійснив порогову обробку деталізуючих коефіцієнтів та реконструкцію сигналу. В результаті, я отримав графік, на якому зображено сигнал із шумом та очищений від шуму сигнал (figure 7).
Антиботан аватар за замовчуванням

10.01.2012 16:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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