Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. clear all
  2. close all
  3. clc
  4.  
  5. Fs = 6100;
  6. Fn = Fs / 2;
  7. Rp = 3;
  8. Rs = 25;
  9. Wp = [500 2000]/Fn;
  10. Ws = [707 1414]/Fn;
  11. K = 1024;
  12.  
  13. f1=Fs/pi*tan((pi*500)/Fs)
  14. f2=Fs/pi*tan((pi*2000)/Fs)
  15. f3=Fs/pi*tan((pi*707)/Fs)
  16. f4=Fs/pi*tan((pi*1414)/Fs)
  17.  
  18. figure(1)
  19. hold on;
  20. plot([0 500],[25 25]);
  21. plot([500 500],[0 25]);
  22. plot([707 1414],[3 3]);
  23. plot([2000 2000],[0 25]);
  24. plot([2000 Fn],[25 25]);
  25. axis([0 Fn 0 45]);
  26. xlabel('f,Hz');
  27. ylabel('a,dB');
  28. title('Габарит на ЛФ');
  29.  
  30. [N,Wn] = buttord(Wp,Ws,Rp,Rs);
  31. [Nz,Dz] = butter(N,Wn);
  32.  
  33.  
  34. figure(2)
  35. hold on;
  36. plot([0 500],[25 25]);
  37. plot([500 500],[0 25]);
  38. plot([707 1414],[3 3]);
  39. plot([2000 2000],[0 25]);
  40. plot([2000 Fn],[25 25]);
  41. axis([0 Fn 0 45]);
  42.  
  43. [H,w] = freqz(Nz,Dz);
  44. ma = -20*log10(abs(H));
  45. plot(w*Fs/(2*pi),ma,'r-.');
  46. xlabel('f,Hz');
  47. ylabel('a,dB');
  48. title('Габарит на ЛВ и крива на затихване');
  49. legend('Габарит','Затихване');
  50.  
  51.  
  52. figure(3)
  53. [z,p,k] = butter(N,Wn);
  54.  
  55. subplot(211);
  56. zplane(Nz,Dz);
  57. title('ПНД');
  58.  
  59. fi = angle(H);
  60. fi1 = unwrap(fi);
  61. subplot(212)
  62. plot(w*Fs/(2*pi), fi1*180/pi);
  63. title('ФЧХ');
  64. xlabel('Честота (rad/s)');
  65. ylabel('ФЧХ (rad)');
  66.  
  67. figure(4)
  68. [h,t] = impz(Nz,Dz);
  69. stem(t,h,'m');
  70. grid;
  71. title('Импулсна характеристика');
  72. xlabel('Отчети на времето');
  73. ylabel('Амплитуда (volts)');
  74.  
  75.  
  76. figure(5)
  77.  
  78. n = (0:199)/Fs;
  79. x = sin(2*pi*1000*n);
  80. y = filter(Nz,Dz,x);
  81. subplot(221);
  82. plot(n,x);
  83. title('Входен сигнал');
  84. xlabel('Амплитуда (volts)');
  85. ylabel('Отчети на времето');
  86.  
  87. subplot(223);
  88. plot(n,y);
  89. title('Изходен сигнал');
  90. xlabel('Амплитуда (volts)');
  91. ylabel('Отчети на времето');
  92.  
  93. Px = fft(x,K);
  94. px = abs(Px(1:(K/2)));
  95. Py = fft(y,K);
  96. py = abs(Py(1:(K/2)));
  97.  
  98. subplot(222);
  99. f = (0:(length(Px) - 1) / 2);
  100. plot(f,px);
  101. xlabel('Честота (Hz)');
  102. title('Спектър на входен сигнал');
  103.  
  104. subplot(224)
  105. f1 = (0:(length(Py)-1)/2);
  106. plot(f1,py);
  107. xlabel('Честота (Hz)');
  108. title('Спектър на изходен сигнал');
  109.  
  110. b = [0.0177 0 -0.0887 0 0.1774 0 -0.1774 0 0.0887 0 -0.0177];
  111. a = [1.0000 -3.0507 5.0514 -5.9813 5.7213 -4.3294 2.5774 -1.1966 0.4323 -0.1060 0.0151];
  112. [b0,B,A] = dir2cas(b,a)
  113.  
  114.  
  115. figure(6)
  116.  
  117. n1 = (0:199)/Fs;
  118. x1 = sin(2*pi*250*n1);
  119. y1 = filter(Nz,Dz,x1);
  120. subplot(221);
  121. plot(n1,x1);
  122. title('Входен сигнал');
  123. xlabel('Амплитуда (volts)');
  124. ylabel('Отчети на времето');
  125.  
  126. subplot(223);
  127. plot(n1,y1);
  128. title('Изходен сигнал');
  129. xlabel('Амплитуда (volts)');
  130. ylabel('Отчети на времето');
  131.  
  132. Px1 = fft(x1,K);
  133. px1 = abs(Px1(1:(K/2)));
  134. Py1 = fft(y1,K);
  135. py1 = abs(Py1(1:(K/2)));
  136.  
  137. subplot(222);
  138. f2 = (0:(length(Px1) - 1) / 2);
  139. plot(f2,px1);
  140.  
  141. xlabel('Честота (Hz)');
  142. title('Спектър на входен сигнал');
  143. subplot(224)
  144. f3 = (0:(length(Py1)-1)/2);
  145. plot(f3,py1);
  146. xlabel('Честота (Hz)');
  147. title('Спектър на изходен сигнал');
  148.  
  149.  
  150. figure(7)
  151. hold on;
  152.  
  153. %WsNew=373.92;
  154. %WpNew=3450.15;
  155. Wp1 = [511 3233];
  156. Ws1 = [740 1731];
  157.  
  158.  
  159. [N2,Wn2]=buttord(Wp1,Ws1,Rp,Rs,'s')
  160. [Ns,Ds]=butter(N2,Wn2,'s')
  161.  
  162. printsys(Ns,Ds)%принтира Ns и Ds
  163.  
  164.  
  165.  
  166. [Ts,ws]=freqs(Ns,Ds);%изчислява аналоговата предавателна функция
  167. ma1=-20*log10(abs(Ts));%затихването в децибели
  168.  
  169. plot(ws,ma1,'g--'); %крива на затихване на аналогов ЛФ
  170. plot(w*Fs/(2*pi),ma,'r-.');%крива на затихване на цифров ЛФ
  171.  
  172. ylabel('a,dB');
  173. xlabel('f,Hz');
  174. title('Криви на затихването на аналогов ЛФ и цифров ЛФ');
  175. legend('Крива на затихване на аналогов ЛФ','Крива на затихване на цифров ЛФ');
  176.  
  177. plot([0 500],[25 25]);
  178. plot([500 500],[0 25]);
  179. plot([707 1414],[3 3]);
  180. plot([2000 2000],[0 25]);
  181. plot([2000 Fn],[25 25]);
  182. axis([0 Fn 0 45]);
  183. xlabel('f,Hz');
  184. ylabel('a,dB');
  185. title('Габарит на ЛФ');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement