Advertisement
Guest User

Untitled

a guest
May 23rd, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. clc
  2. clear all
  3. close all
  4.  
  5. [y,fs]=audioread('31_samogloski_aaa1.wav');
  6. dt=1/fs;
  7. t=dt*[0:1:(length(y)-1)];
  8.  
  9. subplot(2,1,1)
  10. plot(t,y(:,1)); % sygnał akustyczny
  11. title('wykres sygnału przed filtracją')
  12. subplot(2,1,2);
  13. plot(t,y(:,2)); % sygnał eeg
  14.  
  15. fg1=250;
  16. f=[ 0, 2*fg1/fs, 2*1.1*fg1/fs, 1];
  17. A=[1,1,0,0];
  18.  
  19. %filtracja
  20. B=fir2(1024,f,A);
  21. yfiltr(:,1)=conv(y(:,1),B);
  22. yfiltr(:,2)=conv(y(:,2),B);
  23.  
  24. t=dt*[0:1:(length(yfiltr)-1)];
  25. figure(2)
  26. subplot(2,1,1)
  27. plot(t,yfiltr(:,1));% sygnał akustyczny
  28. title('sygnał po filtracji')
  29. subplot(2,1,2)
  30. plot(t,yfiltr(:,2));% sygnał eeg
  31.  
  32. %poniżej etapy wyznaczania tonu podstawowego metodą analizy przejść przez 0
  33.  
  34. for i=1:1:length(yfiltr);
  35. if yfiltr(i,1) >= 0; %w celu analizy sygnału glotograficznego 1 -> 2
  36. yn(i,1)=1;
  37. else
  38. yn(i,1)=-1;
  39. end
  40. end
  41.  
  42. for i=1:1:(length(yn)-1);
  43. if (yn(i,1) == 1 && yn(i+1,1) == 1)
  44. ys(i,1)= 0;
  45. else if (yn(i,1) == -1 && yn(i+1,1) == -1);
  46. ys(i,1)= 0;
  47. else
  48. ys(i,1)=1;
  49. end
  50. end
  51. end
  52.  
  53. l=0;
  54. for k=1:1:length(ys)
  55. if ys(k)==1
  56. l=l+1;
  57. odleglosc(l)=k;
  58. end
  59. end
  60.  
  61. n=0;
  62. for m=1:2:length(odleglosc)-2
  63. n=n+1;
  64. okres(n)=odleglosc(m+2)-odleglosc(m);
  65. end
  66.  
  67. T=mean(okres);
  68. Tx=T*dt;
  69. f0=(1/Tx);%ton podstawowy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement