Advertisement
Guest User

mordziatyv3

a guest
May 21st, 2018
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.32 KB | None | 0 0
  1. %filtr butterwortha srodkowoprzepustowy
  2. %fgr1=1000Hz, fgr2=1500Hz
  3. %Częstotlwiośc próbkowania fs=8000Hz
  4. %nie przesadź z rzędem (do 20?)
  5. %butter
  6. %przy użyciu filtru wyfiltrować sume 2 sinusów f1=500Hz,
  7. %f2=1250 i szumu przy użyciu funkcji filter
  8. %wykreślic moduł funkcji transmitancji filtru, widmo przed i po filtracji
  9. clear all; clf;
  10. n=10;
  11. fgr1=1000;
  12. fgr2=1500;
  13. fs=8000;
  14. w1=fgr1/(fs/2);
  15. w2=fgr2/(fs/2);
  16. Wn=[w1 w2];
  17. [b,a]=butter(n,Wn);
  18.  
  19. f1=500;
  20. f2=1250;
  21.  
  22. dt=1/fs;
  23. t=0:dt:(fs-1)*dt;
  24. x1=sin(2*pi*f1*t);
  25. x2=sin(2*pi*f2*t);
  26. szum=randn(1,length(x1));
  27. x=x1+x2+szum;
  28. X=filter(b,a,x);
  29.  
  30. figure(1)
  31. H=freqz(b,a);
  32. Habs=abs(H);
  33. Hmax=max(Habs);
  34. HdB=20*log10(Habs/Hmax);
  35. df=0.5*fs/length(Habs);
  36. f=0:df:0.5*fs-df;
  37. subplot(321)
  38. plot(f,Habs); grid on;
  39. title('|H(f)|-skala liniowa')
  40. subplot(322)
  41. plot(f,HdB);grid on;
  42. ylabel('[dB]')
  43. title('|H(f)|-skala logarytmiczna')
  44. %przed
  45. x11=fft(x);
  46. x1_modul=abs(x11);
  47. %po
  48. x12=fft(X);
  49. x2_modul=abs(x12);
  50.  
  51. T=1;
  52. N=T*fs;
  53. dff=fs/N;
  54. f3=0:dff:(N-1)*dff;
  55. subplot(323)
  56. stem(f3,x1_modul,'.'); grid on
  57. xlabel('czestotliwość [Hz]')
  58. title(['widmo amplitudowe przed filtracja, fs=', num2str(fs), ' [Hz]'])
  59. subplot(325)
  60. stem(f3,x2_modul,'.'); grid on
  61. xlabel('czestotliwość [Hz]')
  62. title(['widmo amplitudowe po filtracj, fs=', num2str(fs), ' [Hz]'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement