Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. %spectrogram(x,window,noverlap,fs)
  2. clear all,clc
  3. fs=1e3,;%czestotliwość próbkowania
  4. T_of_S=1; %czas trwania w sekundach
  5. t=0:1/fs:T_of_S;%wektor czasu
  6. x=chirp(t,20,T_of_S,200);%analizowany_sygnał
  7. lw=0.25;%dlugosc okna w sek
  8. lw_samp=lw*fs;%dlugosc okna w probkach
  9. nakladowanie=0;% podane w %
  10. noverlap=nakladowanie/100*lw_samp; %liczba probek podlegajacych nakladkowaniu
  11. nfft=2^nextpow2(lw_samp);
  12. temp=0;
  13. i=1;
  14. range=lw_samp;
  15. j=range;
  16. s_left=length(x);
  17. max=length(x);
  18. row=1;S=0;
  19. while s_left>=range
  20. sig_temp=x(i:j-1);
  21. s_left=length(x(j:max));
  22. i=j-noverlap;
  23. j=i+range;
  24. whan=hanning(length(sig_temp));
  25. fft_temp=fft(sig_temp'.*whan,nfft);
  26. NS = length(fft_temp);
  27. S=S./length(sig_temp);
  28. S2plot = abs(fft_temp);
  29. df= fs/NS;
  30. fv= 0:df:(fs-df);
  31. S2plotSS = S2plot(1:NS/2+1);
  32. S2plotSS(2:end) = 2* S2plotSS(2:end);
  33. fvSS=fv(1:NS/2+1);
  34. ztemp=S2plotSS;
  35. XX(:,row)=S2plotSS;
  36. for k=1:(lw_samp-noverlap+1)
  37. A(:,(row-1)*(lw_samp-noverlap)+k)=ztemp;
  38. end
  39. row=row+1;
  40. end
  41. A=A';
  42. [F,T]=meshgrid(0:df:fs/2,1/fs:1/fs:length(x)/fs);
  43. h=surface(F,T,A);
  44. set(h,'EdgeColor','none')
  45. axis('tight');
  46. %axis([fvSS(1) fvSS(end) 0 (length(x)-lw_samp)/fs]);
  47. axis([fvSS(1) fvSS(end) 0 length(x)/fs]);
  48. xlabel('Hz'),ylabel('czas');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement