Зертханалық жұмыс №7
СИГНАЛДАРДЫҢ ВЕЙВЛЕТТІК АНАЛИЗІ
Жұмыстың мақсаты: сигналдардың вейвлеттік анализінің негізін оқып білу және Matlab ортасында оны жүзеге асырудың дағдыларын алу.
1 - мысал
clear; clc % Workspace тазартуы және Command Window
[phi,psi,x]=wavefun('dmey'); % Мейер вейвлетін құру
subplot(121); plot(x,psi); % Мейер вейвлетінің визуализациясы
title ('Мейер вейвлеті') % графикке атау жасау
[phi,psi,x]=wavefun('haar'); % Хаар вейвлетін құру
subplot(122); plot(x,psi) % Хаар вейвлетінің визуализациясы
title ('Хаар вейвлеті') % графикке атау жасау
2-мысал
clear; clc
t = 0:0.000001:0.0004; % Уақыттық интервал
A= 1.5; % Сигнал амплитудасы
w = 10000; % Жиілік
phi = 0; % Бастапқы фаза
s = A*cos(2*pi*w*t+phi); % Гармоникалық сигнал
axis([0 0.0004 -3 3]); % Координат ӛстері бойынша
% шекті мәндерді беру
grid on; % Графикке тор түсіру
subplot(2,1,1) ;
plot(t,s); % Гармоникалық сигнал визуализациясы
title('Гармоникалық сигнал')
xlabel('t'); ylabel('s');
% Вейвлет-спектрограмма құру
subplot(2,1,2);
c = cwt(s, 1:2:32, 'mexh', 'abs1vl', ‘lvl’);
title('Гармоникалық сигналдың вейвлет-спектрограммасы');
xlabel('Уақыттық жылжу, b');
ylabel('Уақыттық масштаб, a');
3 мысал
clear; clc;
t = 0:0.000001:0.0004; A = 1.5; w = 10000; phi = 0;
An=0.8;% Шуыл амплитудасы
s = A*cos(2*pi*w*t+phi)+An*randn(size(t));
axis([0 0.0004 -3 3]); grid on;
subplot(211) ;plot(t,s);
title('Шуылды гармоникалық сигнал')
xlabel('t'); ylabel('s');
% Шуылды гармоикалық сигналдың
% вейвлет-спектрограммасын құру
subplot(212);
c = cwt(s, 1:2:32, 'mexh', 'abs1vl', ‘lvl’);
title('Шуылды гармоникалық сигналдың вейвлет-спектрограммасы');
xlabel('Уақыттық жылжу, b');
ylabel('Уақыттық масштаб, a');
4-мысал
load mtlb; % Тестілік дыбысты файлды жүктеу
v=mtlb(1:4000); % Сигналды ӛңдеу үшін 1-ден 4000-ға
% дейін санау нӛмерін таңдау
lv = length(v); % Дыбысты сигналдың отсчетынан тұратын
% массив элементтерінің санын анықтау
subplot(211); plot(v); % Дыбысты сигналды
% жүзеге асыру визуализациясы
title('Дыбысты сигналды жүзеге асыру'); % Графикке
% атау жасау
set(gca,'Xlim',[0 3500]);
% set функциясы графикалық объекттердің қасиеттерін
% беру үшін қолданылады
% gca функциясы (get current axes)ағымдағы ӛстерге
% кӛрсеткіш алу үшін қолданылады
% [0 3500] жазуы абсциссаның максималды және
% минималды мәндерін анықтайды
[c,l] = wavedec(v,5,'sym2');
% wavedec функциясы вейвлет базисі (бұл жағдайда Симлет
% вейвлеті) бойынша v векторымен берілген деректерді
% кӛпдеңгейлі дискретті жіктеу процедурасын жүзеге асырады
% 5 – бастапқы деректерді жіктеудің максималды деңгейінің нӛмері
cfd = zeros(5,lv); % 5 х 1v ӛлшемді
% массивтің нӛлдерін қалыптастыру
subplot(212)
ccfs = cwt(v,1:128,'sym4','plot'); % Дыбысты сигналдың
% вейвлет-спектрограммасын құру
title('Дыбысты сигналдың вейвлет-спектрограммасы')
colormap(pink(64)); % Вейвлет-спектрограмма түстер
% палитрасын беру
ylabel('Scale а')
5-мысал
clear; clc;
% t торында сигналдың анықтау облысы
t = 1:256;
phi1=pi/3; phi2=pi/4; % сигнал құраушыларының
% бастапқы фазалары
A1=1.2; A2=1.6; % сигнал құраушыларының амплитудалары
% Сигналдың сипаты:
s = A1*sin(0.05*pi*t+phi1)+A2*sin(0.02*pi*t+phi2);
% Сигнал визуализациясы:
subplot(211); plot(t,s);
title('Сигналды жүзеге асыру')
% Масштабтаушы айнымалы мәнінің векторы
scales = [1: 10, 25: 35];
% Спектрдің үшӛлшемді визуализациясымен континуал түрлендіру
subplot(212);
c=cwt (s, scales, 'morl', '3Dplot');
6-мысал
clear;
clc;
load noismima; % Тестілік сигналды жіктеу
x = noismima; % x массивіне сигнал есептеулерін енгізу
wname = 'db4'; % Вейвлет таңдау (бұл жағдайда Добеши
% вейвлеті)
lev = 5; % Декомпозиция деңгейін беру
[c,l] = wavedec(x,lev,wname); % Сигнал декомпозициясы
alpha = 2; % Ереже бойынша, alpha параметрі сығу үшін 1,5
% және шуылды жою үшін 3,0 тең деп есептеледі
m = 2*l(1); % Шекті баптау параметрі
[thr,nkeep] = wdcbm(c,l,alpha,m); % Орнатылған деңгейге
% қатысты шекті беру
[xd,cxd,lxd,perf0,perfl2]=… =… …wdencmp('lvd',c,l,wname,lev,thr,'h');% Сигналдың
% вейвлет-қалпына келуі
subplot(211);
plot(x); % Бастапқы сигнал визуализациясы
title('Бастапқы сигнал');
axis([0,500,-10,10]); % Абсцисс және ординат ӛстері
% бойынша шектер
subplot(212);
plot(xd); % Сығылған және тазаланған сигнал визуализациясы
title('Сығылған және тазаланған сигнал');
axis([0,500,-10,10]);
1 Тапсырма
2 тапсырма
3 тапсырма
5 тапсырма
Достарыңызбен бөлісу: |