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

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

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

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

Рік:
2012
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Цифрова обробка сигналів та зображень
Група:
ЗІД-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:52

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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