Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 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. figure(6)
  115. hold on;
  116.  
  117. %WsNew=373.92;
  118. %WpNew=3450.15;
  119. Wp1 = [511 3233];
  120. Ws1 = [740 1731];
  121.  
  122.  
  123. [N2,Wn2]=buttord(Wp1,Ws1,Rp,Rs,'s')
  124. [Ns,Ds]=butter(N2,Wn2,'s')
  125.  
  126. printsys(Ns,Ds)%принтира Ns и Ds
  127.  
  128.  
  129.  
  130. [Ts,ws]=freqs(Ns,Ds);%изчислява аналоговата предавателна функция
  131. ma1=-20*log10(abs(Ts));%затихването в децибели
  132.  
  133. plot(ws,ma1,'g--'); %крива на затихване на аналогов ЛФ
  134. plot(w*Fs/(2*pi),ma,'r-.');%крива на затихване на цифров ЛФ
  135.  
  136. ylabel('a,dB');
  137. xlabel('f,Hz');
  138. title('Криви на затихването на аналогов ЛФ и цифров ЛФ');
  139. legend('Крива на затихване на аналогов ЛФ','Крива на затихване на цифров ЛФ');
  140.  
  141. plot([0 500],[25 25]);
  142. plot([500 500],[0 25]);
  143. plot([707 1414],[3 3]);
  144. plot([2000 2000],[0 25]);
  145. plot([2000 Fn],[25 25]);
  146. axis([0 Fn 0 45]);
  147. xlabel('f,Hz');
  148. ylabel('a,dB');
  149. title('Габарит на ЛФ');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement