Cieslin

Lab2Matlab

Apr 3rd, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.97 KB | None | 0 0
  1. %ZADANIE-1
  2. clear;
  3. N=3100; A=2   ; fx=31  ; fp=3100   ;   %Parametry sygnału
  4. dt=1/fp;                        %Okres próbkowania
  5. t=dt*(0:N-1);                   %Wektor chwil próbkowania
  6. x=A*sin(2*pi*fx*t);             %Sygnał
  7. plot(t,x,'m'); grid; title('Sygnał x(t)'); xlabel('czas [s]'); pause
  8.  
  9. % Oblicz wartości parametrów sygnału
  10.  
  11. x_sred1=mean(x), x_sred2=sum(x)/N   %wartość średnia
  12. x_max=max(x)                        %wartość max
  13. x_min=min(x)                        %wartość min
  14. x_std1=std(x), x_std2=sqrt(sum((x-mean(x)).^2)/(N-1)) %odchylenie standardowe
  15. x_e=dt*sum(x.^2)                    %energia
  16. x_moc=(1/N)*sum(x.^2)               %moc średnia
  17. x_sku=sqrt(x_moc)                   %wartość skuteczna
  18.  
  19. % Oblicz i narysuj funkcję autokorelacji R1, R2, R3 sygnału x(n)
  20.  
  21. R1=xcorr(x);                    %nieunormowana
  22. R2=xcorr(x,'biased');           %unormowaną przez długość /N
  23. R3=xcorr(x,'unbiased');         %unormowaną przez /(N-abs(k))
  24. tR=[-fliplr(t) t(2:N)]; plot(tR,R1); grid; title('Autokorelacja'); pause
  25.  
  26. %Teraz R3
  27. %for k=0:N
  28. %    R(k+1)=sum( x(1:N-k).*x(1+k:N))/(N-k);
  29. %end
  30. %R=[fliplr(R) R(2:N-1)];
  31. %plot(tR,R);grid;pause
  32.  
  33. % Narysuj część rzeczywistą, urojoną i moduł tych współczynników
  34. X=fft(x);           %szybka dyskretna transformacja Fouriera
  35. df=1/(N*dt);        %częstotliwość podstawowa f0=df=1/T=1/(N*dt)
  36. f=df*(0:N-1);       %kolejne częstotliwości
  37. subplot(311);plot(f,real(X)); grid; title('Re'); xlabel('Hz'); pause
  38. subplot(312);plot(f,imag(X)); grid; title('Im'); xlabel('Hz'); pause
  39. subplot(313);plot(f,abs(X)); grid; title('abs'); xlabel('Hz'); pause
  40. clf;
  41. plot(f(1:N/2+1),abs(X(1:N/2+1))/(N/2)); grid; title('Po skalowaniu'); pause
  42.  
  43. % Synteza sygnału na podstawie współczynników jego szeregu Fouriera i
  44. % porównanie z oryginałem
  45. xs=ifft(X);
  46. plot(t,real(x-xs)); grid; title('Różnica'); pause
  47.  
  48. %Zadanie-2
  49. s1=rand(1,N); s2=randn(1,N);
  50. s= s2;  %wybór szumu
  51. R=xcorr(s,'unbiased');
  52. plot(tR,R); grid; title('Autokorelacja szumu'); pause
  53. C=xcov(s);
  54. plot(tR,C); grid; title('Autokowariancja szumu'); pause
  55. Hs=hist(s,100); %podzielić oś [xmin,xmax] na 100 podprzedziałów
  56. plot(Hs); title('Histogram szumu'); pause
  57. S=fft(s);
  58. plot(f, abs(S)); grid; title('Widmo szumu'); xlabel('f [Hz]'); pause
  59. [Pss, fss]= psd(s,N/10,fp); %uśrednione widma odcinków sygnału o dł N/10
  60. plot(fss,Pss); grid; title('Widmo uśrednione'); xlabel('f [Hz]'); pause
  61.  
  62. %Zadanie-3
  63.  
  64. s = s2 + x;
  65. plot(t,s, 'm'); grid; title('Suma sygnalow 1 i 2'); pause
  66. R=xcorr(s, 'unbiased');
  67. plot(tR,R); grid; title('Autokorelacja sygnalow 1 i 2'); pause
  68. C=xcov(s);
  69. plot(tR,C); grid; title('Autokowariancja sygnalow 1 i 2'); pause
  70. Hs=hist(s,100);
  71. plot(Hs); title('Histogram sygnalow 1 i 2'); pause
  72.  
  73. %Zadanie-4
  74.  
  75.  
  76. s=s2 + x + (2*x);
  77. plot(t,s, 'm'); grid; title('Suma sygnalow z dodatkowa sinusoida'); pause
  78. R=xcorr(s, 'unbiased');
  79. plot(tR,R); grid; title('Autokorelacja sygnalow z dodatkowa sinusoida'); pause
  80. C=xcov(s);
  81. plot(tR,C); grid; title('Autokowariancja sygnalow z dodatkowa sinusoida'); pause
  82. Hs=hist(s,100);
  83. plot(Hs); title('Histogram sygnalow z dodatkowa sinusoida'); pause
  84.  
  85. %Zadanie-5
  86.  
  87. ampl=hamming(N)';    %przykładowa funkcja modulująca amplitudę
  88. y1=ampl.*x;
  89. plot(t,y1); grid; title('Sygnał z modulacją amplitudy'); pause
  90. ampl=exp(-10*t);        %eksponencjalna funkcja obwiedni amplitudy
  91. y2=ampl.*x;
  92. plot(t,y2); grid; title('Sygnał z modulacją amplitudy'); pause
  93.  
  94. %Zadanie-6
  95.  
  96. fx=  31; alfa=10   %wybierz, zaczynając od małych wartości; potem obserwuj
  97. y3=sin(2*pi*(fx*t+0.5*alfa*t.^2));
  98. plot(t,y3); grid; title('Sygnał z liniową modulacją częstotliwości'); pause
  99.  
  100. fx=  31; fm=  10; df=  10;         % częstotliwości - nośna, modulująca, głębokość modulacji
  101. y4=sin(2*pi*(fx*t+df*sin(2*pi*fm*t)/(2*pi*fm)));
  102. plot(t,y4); grid; title('Sygnał z sinusoidalną modulacją częstotliwości'); pause
  103.  
  104. %Zadanie-7
  105.  
  106. y5=[y1 y4];
  107. plot(y5); grid; title('sygnał sklejony'); pause
  108.  
  109. %Zadanie-8
Add Comment
Please, Sign In to add comment