Advertisement
Guest User

asd

a guest
Dec 14th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 2.13 KB | None | 0 0
  1. wf=wrecfile('test.dta'); % otwarcie pliku
  2.  
  3. segment = wrec_dsgm(wf, numer_segmentu); %struktura zawierajaca naglowek->ciekawe informacje o segmencie
  4.  
  5. zbieranie = []; %inicjacja tablicy gdzie bede zbieral probki do liczenia mocy
  6.  
  7. numer_segmentu = 1;
  8. moc_srednia = 0;
  9. dlugosc_wektora_mocy = 0; % to nie jest dlugosc co ile mocy zostalo uwzglednionych
  10.  
  11. dlugosc_bloku = 160; % bo 160/(8*5*4) =  1
  12. for(probka_startowa = 0:dlugosc_bloku:segment.nsmp-dlugosc_bloku-1)
  13.   blok_probek = wrec_rdsig(wf,numer_segmentu,probka_startowa,dlugosc_bloku,{'#ICP'});
  14.   %plot(blok_probek);
  15.  
  16.   wyjscie_decymacja1 = decimate(blok_probek,8);  %komenda decimate od razu filtruje filtrem czebyszewa wiec nie musze wczesniej filtrowac
  17.   %plot(wyjscie_1decymacja);
  18.  
  19.   %nie musze sprawdzac czy mam wystarczajaco duzo probek bo tak ustawilem dlugosc bloku by miec za kazdym razem wystarczajaco duzo probek
  20.  
  21.   wyjscie_decymacja2 = decimate(blok_probek,5); % filtr jest wbudowany w komende
  22.  
  23.   %znowu nie musze sprawdzac czy uzbieralo mi sie wystarczajaco duzo probek bo tak ustawilem dlugosc bloku by za kazdym razem miec 4 probki
  24.  
  25.   wyjscie_decymacja3 = decimate(blok_probek,4);
  26.  
  27.   zbieranie = [zbieranie; wyjscie_decymacja3];
  28.  
  29.   while(length(zbieranie) >= 60)  %while na wypadek gdyby zebralo sie wiecej niz 90 probek choc wiem, ze w moim przypadku nie jest to mozliwe
  30.           transformata = abs(fft(zbieranie(1:60)));
  31.           moc = transformata(2).^2+transformata(3).^2+transformata(4).^2; %policzylem, ze w tych probkach znajduje sie moc ktora nas interesuje
  32.           moc_srednia = moc_srednia + moc;
  33.           dlugosc_wektora_mocy = dlugosc_wektora_mocy + 1;
  34.          
  35.          zbieranie = zbieranie(31:length(zbieranie));  %wyrzucam polowe probek ktore wykorzystalem
  36.   endwhile
  37.  
  38. end
  39.  
  40. moc_srednia = moc_srednia / dlugosc_wektora_mocy;
  41.  
  42.  
  43.  
  44. %tylko nie wiem co mam zrobic z ta moca?? zsumowac i policzyc srednia - tak zrobie
  45. %nie wiem czy dobrze licze moc gdy fft jest wartoscia zespolona? chyba wystarczy abs policzyc by wykluczyc fazowa charakterystyke
  46. %w jakich jednostack ta moc wychodzi? w jakich jednostkach jest sygnal?
  47.  
  48. wrec_close(wf);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement