Advertisement
Guest User

Untitled

a guest
Oct 19th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.25 KB | None | 0 0
  1. clear; close all; clc;
  2. [y, Fs] = audioread('badDolly.mp4');
  3.  
  4. NFFT = length(y);
  5. f_axis = linspace(-Fs/2,Fs/2,NFFT);
  6. ck = fftshift(fft(y));
  7.  
  8. [h1,w1] = freqz(y(:,1),1,NFFT,Fs);
  9. [h2,w2] = freqz(y(:,2),1,NFFT,Fs);
  10.  
  11. figure(2);
  12. %plot(w1/1e3,db(abs(h1)),w2/1e3,db(abs(h2)))
  13. plot(f_axis/1e3,abs(ck))
  14. xlabel('Frekvens [kHz]');
  15. ylabel('|H(e^{j\omega})|');
  16.  
  17. % Ut i fra figur(2) med FFT, finner dominante frekvenser i:
  18. % 0,3kHz, 0,5kHz, 1kHz
  19. % 300Hz, 500Hz, 1000Hz
  20. % F = f / samplingsfrekvens, cos(2*pi*f/Fs)  = cos(2*pi*F)
  21. r = 0.999;
  22. f_1 = 300/Fs; f_2 = 500/Fs; f_3 = 1000/Fs;
  23. b_1 = [1 (-2*cos(2*pi*f_1)) 1];
  24. b_2 = [1 (-2*cos(2*pi*f_2)) 1];
  25. b_3 = [1 (-2*cos(2*pi*f_3)) 1];
  26.  
  27. a_1 = [1 (-2*r*cos(2*pi*f_1)) r^2];
  28. a_2 = [1 (-2*r*cos(2*pi*f_2)) r^2];
  29. a_3 = [1 (-2*r*cos(2*pi*f_3)) r^2];
  30.  
  31. y_filt = filter(b_1,a_1,y);
  32. y_filt = filter(b_2,a_2,y_filt);
  33. y_filt = filter(b_3,a_3,y_filt);
  34. y_filt = y_filt./max(y_filt(:));
  35.  
  36. % Forskjellen med 0.95,0.99 og 0.999, er at båndbredden
  37. % på filteret minker når radiusen går mot resinatoren.
  38. % e.g, mindre av originalsignalet forsvinner når r øker
  39. f_axis = linspace(-2000,2000,length(y_filt));
  40. plot(f_axis,(abs(fftshift(fft(y_filt)))))
  41. xlabel('Frekvens [Hz]');
  42. ylabel('|H(e^{j\omega})| r = 0.999');
  43.  
  44. sound(y_filt,Fs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement