Advertisement
thedavjoe

podstawowe8

Jan 27th, 2020
2,688
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scilab 3.55 KB | None | 0 0
  1. clear()
  2. clc()
  3. xdel(winsid()) //zamkniecie okien
  4.  
  5. fs=1024; //czestotliwosc probkowania
  6. N=1024; //liczba probek
  7. dt=1/fs; //odstep probkowania
  8. T=N*dt; //czas obserwacji sygnalu
  9. t=0:dt:T-dt; //wekot czasu
  10. df=fs/N;
  11. f=0:df:(fs-df);
  12.  
  13. //parametry syganlow
  14. A1=20;
  15. f1=8;
  16. A2=10;
  17. f2=32;
  18. A3=5;
  19. f3=128;
  20.  
  21.  
  22.  
  23. //Parametry filtru dolnoprzepustowego:
  24. order=6; //rząd filtru
  25. fcutoff=60; //częstotliwość graniczna [Hz]
  26. fcutoffn=(2*fcutoff)/fs; //znormalizowana częstotliwość graniczna [π rad/próbkę]
  27.  
  28. //Sygnał modulujący
  29. x1=A1*sin(2*%pi*f1*t);
  30. x2=A2*sin(2*%pi*f2*t);
  31. x3=A3*sin(2*%pi*f3*t);
  32. x=x1+x2+x3;
  33. X=fft(x);
  34. fig0=scf();
  35. subplot(311);
  36. plot(t,x);
  37. xlabel('Czas');
  38. ylabel('Amplituda');
  39. title('Sygnał modulujący (informacyjny)');
  40. xgrid;
  41.  
  42. subplot(312);
  43. plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(X(N/2+1:N)), abs(X(1:N/2))]/N); //przeskalowanie osi
  44. xlabel('Częstotliwość');
  45. ylabel('Amplituda');
  46. title('Widmo amplitudowe dwustronne');
  47. xgrid;
  48.  
  49. subplot(313);
  50. plot(f(1:32),abs(X(1:32))/fs);
  51. xlabel('Częstotliwość');
  52. ylabel('Amplituda');
  53. title('Fragment widma amplitudowego dwustronnego');
  54. xgrid;
  55.  
  56. //Sygnał modulowany
  57. y=60*cos(2*%pi*f3*4*t);
  58. Y=fft(y);
  59. fig1=scf();
  60. subplot(311);
  61. plot(t,y);
  62. xlabel('Czas');
  63. ylabel('Amplituda');
  64. title('Sygnał modulowany (nośny)');
  65. xgrid;
  66.  
  67. subplot(312);
  68. plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(Y(N/2+1:N)), abs(Y(1:N/2))]/N);
  69. xlabel('Częstotliwość');
  70. ylabel('Amplituda');
  71. title('Widmo amplitudowe dwustronne');
  72. xgrid;
  73.  
  74. subplot(313);
  75. plot(f(48:80),abs(Y(48:80))/fs);
  76. xlabel('Częstotliwość');
  77. ylabel('Amplituda');
  78. title('Fragment widma amplitudowego dwustronnego');
  79. xgrid;
  80.  
  81. //DWUWSTĘGOWA MODULACJA SYGNAŁU
  82. z=x.*y; // sygnał zmodulowany
  83. Z=fft(z);
  84. fig2=scf();
  85.  
  86. subplot(311);
  87. plot(t,z);
  88. xlabel('Czas');
  89. ylabel('Amplituda');
  90. title('Sygnał zmodulowany');
  91. xgrid;
  92.  
  93. subplot(312);
  94. plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(Z(N/2+1:N)), abs(Z(1:N/2))]/N);
  95. xlabel('Częstotliwość');
  96. ylabel('Amplituda');
  97. title('Widmo amplitudowe dwustronne');
  98. xgrid;
  99.  
  100. subplot(313);
  101. plot(f(40:100),abs(Z(40:100))/fs);
  102. xlabel('Częstotliwość');
  103. ylabel('Amplituda');
  104. title('Fragment widma amplitudowego dwustronnego');
  105. xgrid;
  106.  
  107. //DEMODULACJA SYGNAŁU
  108. demod=z.*y; //sygnał zdemodulowany
  109.  
  110. //projektowanie filtru
  111. hz=iir(order,'lp','butt',[fcutoffn/2,0],[.1 .1]); //filtr dolnoprzepustowy Butterwortha
  112. // Odpowiedź częstotliwościowa filtru
  113. [frq,repf]=repfreq(hz,0:0.001:0.5);
  114.  
  115. fig3=scf();
  116. subplot(211);
  117. plot(t,demod);
  118. xlabel('Czas');
  119. ylabel('Amplituda');
  120. title('Sygnał po demodulacji przed filtracją');
  121. xgrid;
  122.  
  123. subplot(212);
  124. plot2d(fs*frq,abs(repf),rect=[0,0,fs/2,max(abs(repf))]);
  125. xlabel('Częstotliwość [Hz]');
  126. ylabel('Amplituda');
  127. title('Charakterystyka częstotliwościowa filtru dolnopasmowego');
  128. xgrid;
  129.  
  130. //filtracja
  131. demodfiltered = flts(demod,hz); //sygnał po demodulacji i filtracji
  132. demodfiltered=2*demodfiltered/(A2^2);
  133. fig4=scf();
  134. subplot(311);
  135. plot(t,demodfiltered);
  136. xlabel('Czas');
  137. ylabel('Amplituda');
  138. title('Sygnał po demodulacji i filtracji');
  139. xgrid;
  140.  
  141. D=fft(demodfiltered);
  142. subplot(312);
  143. plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(D(N/2+1:N)), abs(D(1:N/2))]/N);
  144. xlabel('Częstotliwość');
  145. ylabel('Amplituda');
  146. title('Widmo amplitudowe dwustronne sygnału po demodulacji');
  147. xgrid;
  148.  
  149. subplot(313);
  150. plot(f(1:32),abs(D(1:32))/fs);
  151. xlabel('Częstotliwość');
  152. ylabel('Amplituda');
  153. title('Fragment widma amplitudowego dwustronnego');
  154. xgrid;
  155.  
  156. fig5=scf();
  157. plot(t,x,'r'), plot(t,demodfiltered,'b');
  158. xlabel('Czas');
  159. ylabel('Amplituda');
  160. title('Sygnał modulujący i zdemodulowany');
  161. xgrid;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement