Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. clear variables;
  2. close all;
  3.  
  4. [s,Fs] = audioread('ProtestMonoBruit.wav');
  5.  
  6. figure(1);
  7. N = length(s);
  8. Ts = 1/Fs;
  9. temps = 0:Ts:(N-1)*Ts;
  10. plot(temps,s);
  11.  
  12. % sound(s,Fs);
  13.  
  14. figure(2);
  15. temps2 = temps(60*Fs:70*Fs);
  16. s2 = s(60*Fs:70*Fs);
  17. [R,lags] = xcorr(s2,200,'biased');
  18. plot(lags,R);
  19.  
  20. figure(3);
  21. M = 20;
  22. origine = ceil(length(R)/2);
  23. B = zeros(1,M+1);
  24. B(1) = 1;
  25. V_gamma = R(origine:origine+M);
  26. M_gamma = toeplitz(V_gamma);
  27. Minv_gamma = pinv(M_gamma);
  28. Phi = Minv_gamma*B';
  29. sigma = sqrt(1/Phi(1));
  30. H = -sigma^2*Phi;
  31. H(1) = 0;
  32. bar(H);
  33.  
  34. figure(4);
  35. s2_estime = [];
  36. for n = M+1:100000;
  37. s2_lags = s2(n:-1:n-M);
  38. s2_estime = [s2_estime,H'*s2_lags];
  39. end
  40. subplot(211);
  41. temps2_decale = temps2(M+1:100000);
  42. s2_decale = s2(M+1:100000)';
  43. plot(temps2_decale,s2_estime,'r',temps2_decale,s2_decale);
  44.  
  45.  
  46. subplot(212);
  47. erreur = abs(s2_decale-s2_estime);
  48. plot(temps2_decale,erreur);
  49.  
  50. figure(5);
  51. seuil = 0.03;
  52. s2_bis = s2;
  53. for l = find(abs(erreur) > seuil)
  54. s2_bis(l) = median(s2(l-10:l+10));
  55. end
  56. plot(temps2,s2_bis,'r',temps2,s2);
  57.  
  58. figure(6);
  59. subplot(211);
  60. plot(temps2,s2);
  61. subplot(212);
  62. erreur2 = abs(s2_bis-s2);
  63. plot(temps2,erreur2);
  64. axis([60 63 0 0.1]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement