Wykład 5. Problemy algebry lnowej w Matlabe. Analza sygnałów a) w dzedzne częstotlwośc b) w dzedzne czasu c) częstotlwoścowo-czasowa d) nagrywane analza dźwęku e) Sgnal Processng Toolbox Problemy algebry lnowej w Matlabe Metody rozwązywana układów równań lnowych o właścwej, nadmernej lub nedostatecznej lośc równań. Identyczna lość równań zmennych. Dzelene lewostronne Algebra lnowa stosuje wele róŝnych metod do rozwązana układu równań lnowych np. elmnacj Gaussa, faktoryzacj LU, faktoryzacj Cholesky ego, Cramera n. Matlab automatyczne stosuje metodę najbardzej optymalną dla podanej macerzy, wprowadzając operację dzelena lewostronnego \ Aby być pewnym, Ŝe otrzymane rozwązane będze blske rzeczywstośc moŝna najperw oblczyć funkcję warunku cond(a). JeŜel w wynku ne otrzymamy lczby bardzo duŝej (najlepej jeŝel jest blska ), to macerz A - ma dobre własnośc numeryczne Matlab potraf dobrze rozwązać równane A*XX=b. Inną metodą (mnej polecaną) nŝ dzelene lewostronne jest oblczene macerzy odwrotnej A - = nv(a). >> A=[5 7 4; 8-3; -] A = 5 7 4 8-3 - >> cond(a) ans =.8583 cond Metoda dzelena lewostronnego >> A=[5 7 4; 8-3; -]; Sprawdzene: >> b=[3 ]'; >> wyn=a*xx >> XX=A\b XX = wyn=3 -.65.6875 -.375
(metoda wolnejsza) XX=A - *b >>XX=nv(A)*b XX= -.65.6875 -.375 Metoda macerzy odwrotnej Metoda macerzy pseudoodwrotnej - pnv Metoda kosztowna, stosowana jedyne wówczas, gdy ne moŝna wyznaczyć macerzy odwrotnej. Na ogół w sytuacjach, o których będze mowa późnej. >> XX=pnv(A)*b >> A=[5 7 4; 8-3; -] >> b=[3 ]' >> AX=[b,A(:,),A(:,3)] AX = 3 7 4-3 - >> AY=[A(:,),b,A(:,3)] >> AZ=[A(:,),A(:,),b] Metoda Cramera > wyznacznka=det(a) wyznacznka = 64 >> wyznacznkax=det(ax) wyznacznkax = -4 >> wyznacznkay=det(ay) wyznacznkay = 44 >> wyznacznkaz=det(az) wyznacznkaz = -4 >> X=wyznacznkAX / wyznacznka X = -.65 >> Y=wyznacznkAY / wyznacznka Y =.6875 >> Z=wyznacznkAZ / wyznacznka Z = -.375 Metody rozwązywana układów równań lnowych o nadmernej lośc równań. W takej sytuacj ne ma jednoznacznego rozwązana (prostą wyznaczają dokładne punkty). Potrzeba rozwązana takego problemu pojawa sę wówczas, gdy lość danych pomarowych jest wększa nŝ lość newadomych. Wszystke dane są obarczone błędam (pomarowym) brak podstaw do wskazana, które z nch naleŝy odrzucć. Przykładowo merzymy zaleŝność y(x). Wemy, ze jest ona lnowa, ale ne znamy jej równana. Na podstawe welokrotnych pomarów chcemy wyznaczyć równane prostej obarczonej błędem w mnmalnym stopnu. Mamy węcej zmennych nŝ potrzeba (wystarczyłyby punkty, przy załoŝenu, Ŝe ne są obarczone błędem).
A. Dzelene lewostronne (metoda najmnejszych kwadratów) 9 8 7 6 5 Poszukuje sę rozwązana średnokwadratowego, dla którego A*X-b jest mnmalna. Jest to rozwązane metodą najmnejszych kwadratów. 4 3 3 4 5 6 7 (Zakładamy, Ŝe A*X=b) Rozwązane moŝna uzyskać dwoma metodam: >> A=X\b >> X=[ 3; 4 5 6; 7 8 ; 5 8]; >> b=[366, 84, 35, 54] ; Przykład % Zakładamy, Ŝe b=a*x. Mamy 4 równana 3 newadome % pownno być A=[ 3 ; 4 5 6 ; 7 8 ]; b=[366, 84,35] ; >> A=X\b x= 47.98-73. 4.93 >> e=a*x-b % Oblczamy błąd e= -9.4545.9455. 35.8364 >> norm(e) ans= 5.85 Przykładowe zadane Welkość y jest funkcją lnową x. Ne znamy równana tej funkcj. Aby je wyznaczyć wykonujemy serę pomarów (x,y), obarczonych przypadkowym błędem pomarowym, aby na tej podstawe wyznaczyć równane prostej y=a*x+c. Uzyskujemy układ n równań: y =a*x +c y =a*x +c. y n =a*x n +c W tym układze równań neznane są wartośc a, c. ROZWIĄZANIE Układ równań moŝna zapsać macerzowo jako: functon nadokr(m,m) %Wyznaczane prostej na podstawe nadokreslonego ukladu równan % (np. wyznaczene prostej z welu punktow pomarowych) x=[:.:7]; y=x*m+m; %okreslamy punkty z prostej o rownanu y=m*x+m % oblczamy z punktow wspolczynnk dla prostej ne zaburzonej - porownujemy A=[x',ones(sze(x,),)]; b=y'; dsp('metoda dzelena lewostronnego - prosta ne zaburzona') Q=A\b; m=q(), m=q() dsp('metoda macerzy pseudoodwrotnej - prosta ne zaburzona') Q=pnv(A)*b; mb=q(), mb=q() 3
z=y+randn(,sze(x,)); % zaburzamy prostą szumem Gaussa (symulacja % błędu przypadkowego w pomarach) A=[x',ones(sze(x,),)]; b=z'; dsp('metoda dzelena lewostronnego - prosta zaburzona') Q=A\b; m=q(), m=q() dsp('metoda macerzy pseudoodwrotnej - prosta zaburzona') Q=pnv(A)*b; mb=q(), mb=q() plot(x,z,'o',x,m*x+m,'--r',x,mb*x+mb,':g') legend('punkty','dzelene lewostronne','macerz pseudoodwrotna',) Wynk >> nadokr(,) Metoda dzelena lewostronnego - prosta nezaburzona m =. m =. Metoda macerzy pseudoodwrotnej - prosta nezaburzona mb =. mb =. Metoda dzelena lewostronnego - prosta zaburzona m =.963 m =.784 Metoda macerzy pseudoodwrotnej - prosta zaburzona mb =.963 mb =.784 Metody rozwązywana układów równań lnowych o nedostatecznej lośc równań. W takej sytuacj mamy węcej zmennych nŝ równań. Tak układ równań ne ma rozwązana jednoznacznego. MoŜna jednak próbować DOMNIEMYWAĆ moŝlwe rozwązane, przy pewnych załoŝenach dodatkowych. Rozwązane moŝna uzyskać dwoma metodam: a) Dzelene lewostronne. Znajduje rozwązane, które ma maksymalną lczbę zer w wyznaczanym wektorze X b) Za pomocą macerzy pseudoodwrotnej Funkcja pnv(a) znajduje rozwązane, w którym długość (norma) wyznaczanego wektora X jest mnejsza nŝ w nnych moŝlwych rozwązanach. Jest to tzw. rozwązane o mnmalnej norme ma ono duŝe znaczene praktyczne. Przykład >> A=[ 4 7 ; 5 8 5;3 6 8]; % 4 newadome 3 równana >> b=[366,84,35]'; % metodą dzelena lewostronnego >> X=A\b X = -65.9 99. 68.3 >> norm(x) ans = 56. % metodą macerzy pseudoodwrotnej >> Xn=pnv(A)*b Xn = 3.88-68.988 99. 59.545 >> norm(xn) ans =54.73 4
Sygnał x - - - 4 6 8 Rozkład na harmonczne Analza w dzedzne częstotlwośc (I) Sygnal ( π f t ϕ ) = A sn + Transformata Fourera fft, fft Transformata Fourera: X = fft(x) X = fft(x,n) >> a=[ 3 7 8]; >> f=[ 3 5 ]; >> omega=*p*f; x - - transformata odwrotna x = fft(x) x = fft(x,n) Transformata oblczana dla wektorów o długośc N >> sygnal=a()*sn(omega().*t))+a()*sn(omega().*t))+... a(3)*sn(omega(3).*t))+a(4)*sn(omega(4).*t)); >> plot(t,sygnal) - 4 6 8 fft (dwuwymarowa), fftn (welowymarowa), fftshft (przesuwa zerową częstotlwość w celu wycentrowana wdma). Przykład fft functon [f,ampltuda]=fourer_probkowane (A,B, f_probkowana,f,f) %przykładowe wywołane: [czestotlwosc,ampltuda]=fourer_probkowane (,5,,,5); % A, B - poczatek/konec przedzalu czasu % generacja sygnalu x(t) do badana z prazkam: f f t = A:/f_probkowana:B; x = sn(*p*f*t) + sn(*p*f*t); % badane sygnalu x(t) y = fft(x); Ampltuda = abs(y); T=B-A; f =(:length(y)-)/t; %rysowane sygnalu jego wdma subplot(,,), plot(t,x), xlabel('czas'), ylabel('sygnal'), subplot(,,), plot(f,ampltuda), xlabel('czestotlwosc'), ylabel(' fft '), grd on end %przykładowe wywołane: [czestotlwosc,ampltuda]=fourer_probkowane (,5,,,5); sygnal - -.5.5 3 czas 3 fft 4 6 8 4 6 8 czestotlwosc 5
Analza czasowo-częstotlwoścowa. Falk COEFS = cwt(s,scales,'wname') COEFS = cwt(s,scales,'wname','plot') Przykład: czest_probk=; t = :/czest_probk:(-/czest_probk); %dlugosc - potega czas_dlug=length(t); -.5 x = sn(*p*5*t) + sn(*p*47*t); - 3 4 5 6 7 8 9 x(:floor(czas_dlug/))=x(:floor(czas_dlug/))/; czas [s] plot(t,x) xlabel('czas [s]') ylabel('sn(*p*5*t) + sn(*p*47*t)') fgure coef=cwt(x,:,'db4'); % db4 - Daubeches wavelets, baza. surf(coef) sn(*p*5*t) + sn(*p*47*t).5 - - sn(*p*5*t) + sn(*p*47*t).5 - - -.5-3 4 5 6 7 8 9 czas [s] Nagrywane dźwęku - wavrecord Dźwęk y = wavrecord(n,fs) y = wavrecord(...,ch) y = wavrecord(...,'dtype') n lość próbek, Fs częstotlwość próbkowana [próbek/s], (domyślne Fs = 5 Hz), ch lość kanałów we: -mono (domyślne), -stereo, 'dtype' typ danych: 'double' (domyślne) - 6 btów/próbka, 'sngle - 6 btów/próbka, 'nt6-6 btów/próbka Odtwarzane dźwęku - wavplay wavplay(y,fs) wavplay(...,'mode') mode : async (domyślne) utrzymany dostęp do ln poleceń sync (brak dostępu do ln poleceń w trakce odtwarzana) Przykład: % nagrywamy 6-btowy dźwęk przez 5 s. % Częstość próbkowana Fs=5 Hz., (lość_próbek=czas_nagrana * Fs) Fs = 5; y = wavrecord(5*fs,fs,'nt6'); % y = wavread('flename') % dźwęk moŝe być teŝ wczytany z plku % odtwarzamy dźwęk wavplay(y,fs); Zaps dźwęku do plku Nagrany dźwęk moŝna poddać przeróbce (np. fltracj) tak przetworzony zapsać do plku wavwrte(y,'flename') wavwrte(y,fs,'flename') wavwrte(y,fs,n,'flename') 6
Sgnal Processng Toolbox spectrum.musc sptool Sgnal Processng Toolbox (Fltracja, przetwarzane, wdma) Okno -Flter Desgn Okno Sgnal Browser 7