Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. close all;
  2. clear all;
  3. clc;
  4.  
  5. t=1;
  6. fs = 1e3;
  7. fc=200;
  8.  
  9. load('lab08_am.mat');
  10. x = s2;
  11. % DEMODULACJA AMPLITUDY
  12.  
  13. % generacja współczynników transformatora Hilberta
  14. % z nałożonym oknem Blackamana
  15.  
  16. M=20; % polowa dlugosci filtru
  17. N=2*M+1;
  18. n=-M:M;
  19. %n=1:M;
  20. h=(2/pi)*sin(pi*n/2).^2./n; %połowa odpowiedzi impulsowej
  21. %h = [ -h(M:-1:1) 0 h(1:M) ]; %cała odpowiedz impulsowa
  22. h = (1-cos(pi.*n)) ./ (pi.*n); h(M+1)=0;
  23. %okno
  24. w=blackman(N);
  25. w=w';
  26. hw=h.*w;
  27.  
  28.  
  29. f=0:1:fs/2;
  30. H=freqz(h,1,f,fs);
  31. plot(f,20*log10(abs(H))); pause
  32.  
  33. % Zastosowanie filtra Hilberta i filtra różniczkującego
  34.  
  35. Nx=1000;
  36. % fx=20;
  37. fpr=fs;
  38. n=0:Nx-1;
  39.  
  40. y=conv(x,hw);
  41.  
  42. % filtracja sygnału x(n) za pomocą odp. impulsowej hw(n); otrzymujemy Nx+
  43. yp=y(N:Nx);
  44. % odcięcie stanów przejściowych (po N−1 próbek) z przodu i z tyłu sygnału y(
  45. xp=x(M+1:Nx-M); % odcięcie tych próbek z x(n), dla których nie ma poprawnych odpowiedników
  46.  
  47. m=sqrt(xp.^2+yp.^2);
  48.  
  49. NFFT=2^nextpow2(fs);
  50. Y=fft(m,NFFT)/fs;
  51. f=fs/2*linspace(0,1,NFFT/2+1);
  52. figure(1); grid;
  53. plot(f,2*abs(Y(1:NFFT/2+1)))
  54.  
  55.  
  56. f1=5;
  57. f2=50;
  58. f3=60;
  59.  
  60. A1=0.8;
  61. A2=0.2;
  62. A3=0.3;
  63.  
  64. t=0:1/fs:1-1/fs;
  65. xr=1+A1*cos(2*pi*f1*t)+A2*cos(2*pi*f2*t)+A3*cos(2*pi*f3*t);
  66. xr=xr(M+1:1000-M);
  67. figure(2)
  68. hold on;
  69. plot(m);
  70. plot(xr,'k');
  71.  
  72. figure(3)
  73. hold on
  74. plot(yp,'b-');
  75. plot(xp,'r- ');
  76. hold off;
  77.  
  78. figure(4)
  79. plot(m-xr)
  80. [A1 A2 A3]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement