%-------------------------------------------------------------------------- % Výuková podpora přemětu Modulované signály %-------------------------------------------------------------------------- % Program FILTRY - FREKVENČNÍ CHARAKTERISTIKY %-------------------------------------------------------------------------- % % Výpočet a grafické vykreslení amplitudových frekvenčních charakteristik % následujících filtrů (matematické aproximace analogových filtrů): % % 1. Butterworthův filtr % 2. Čebyševův filtr % 3. Besselův filtr % % VŠB - Technická univerzita Ostrava % Fakulta elektrotechniky a informatiky % Katedra měřicí a řídicí techniky % 17.listopadu 15 % Ostrava - Poruba % 708 33 % % Vypracoval Zdeněk Macháček 2010 %-------------------------------------------------------------------------- %-------------------------------------------------------------------------- % Vyčištění všech proměnných paměti a uzavření všech grafických oken clear all; close all; f=0.01:0.001:100; % vypočtené a zobrazované frekvenční spektrum fb=10; % kritická frekvence filtru %-------------------------------------------------------------------------- % 1. Butterworthův filtr %-------------------------------------------------------------------------- HFbut1=20*log(1./(sqrt(1.+(f/fb).^2))); % výpočet |H(f)| pro filtr 1.řádu HFbut2=20*log(1./(sqrt(1.+(f/fb).^4))); % výpočet |H(f)| pro filtr 2.řádu HFbut3=20*log(1./(sqrt(1.+(f/fb).^6))); % výpočet |H(f)| pro filtr 3.řádu HFbut4=20*log(1./(sqrt(1.+(f/fb).^8))); % výpočet |H(f)| pro filtr 4.řádu % GRAF - vykreslení amplitudových frekvenčních charakteristik figure; semilogx(f, HFbut1, 'r'); title('Amplitudova frekvencni charakteristika |H(f)| Butterworthova filtru'); xlabel('f[Hz]'); ylabel('|H(f)| [dB]'); grid on; hold on; semilogx(f, HFbut2, 'b'); semilogx(f, HFbut3, 'g'); semilogx(f, HFbut4, 'y'); legend('filtr 1.rádu','filtr 2.rádu','filtr 3.rádu','filtr 4.rádu','Location','SouthWest'); hold off; %-------------------------------------------------------------------------- % 2. Čebyševův filtr %-------------------------------------------------------------------------- C1=(f/fb); % výpočet koeficientu C pro filtr 1.řádu C2=2.*((f/fb).^2)-1; % výpočet koeficientu C pro filtr 2.řádu C3=4.*((f/fb).^3)-3.*(f/fb); % výpočet koeficientu C pro filtr 3.řádu C4=8.*((f/fb).^4)-10.*((f/fb).^2)+1; % výpočet koeficientu C pro filtr 4.řádu HFcebC1=20*log(1./(sqrt(1+(C1.^2)))); % výpočet |H(f)| pro filtr 1.řádu HFcebC2=20*log(1./(sqrt(1+(C2.^2)))); % výpočet |H(f)| pro filtr 2.řádu HFcebC3=20*log(1./(sqrt(1+(C3.^2)))); % výpočet |H(f)| pro filtr 3.řádu HFcebC4=20*log(1./(sqrt(1+(C4.^2)))); % výpočet |H(f)| pro filtr 4.řádu % GRAF - vykreslení amplitudových frekvenčních charakteristik figure; semilogx(f, HFcebC1, 'r'); title('Amplitudova frekvencni charakteristika |H(f)| Cebysevova filtru'); xlabel('f[Hz]'); ylabel('|H(f)| [dB]'); grid on; hold on; semilogx(f, HFcebC2, 'b'); semilogx(f, HFcebC3, 'g'); semilogx(f, HFcebC4, 'y'); legend('filtr 1.rádu','filtr 2.rádu','filtr 3.rádu','filtr 4.rádu','Location','SouthWest'); hold off; %-------------------------------------------------------------------------- % 3. Besselův filtr %-------------------------------------------------------------------------- B1=1+j.*(f/fb); % výpočet koeficientu B pro filtr 1.řádu B2=3+j*3.*(f/fb)-((f/fb).^2); % výpočet koeficientu B pro filtr 2.řádu B3=15+j.*(15.*(f/fb)-(f/fb).^3)-6.*(f/fb).^2; % výpočet koeficientu B pro filtr 3.řádu HFbes1=20*log(abs(1./(B1))); % výpočet |H(f)| pro filtr 1.řádu HFbes2=20*log(abs(3./(B2))); % výpočet |H(f)| pro filtr 2.řádu HFbes3=20*log(abs(15./(B3))); % výpočet |H(f)| pro filtr 3.řádu % GRAF - vykreslení amplitudových frekvenčních charakteristik figure; semilogx(f, HFbes1, 'r'); title('Amplitudova frekvencni charakteristika |H(f)| Besselova filtru'); xlabel('f[Hz]'); ylabel('|H(f)| [dB]'); grid on; hold on; semilogx(f, HFbes2, 'b'); semilogx(f, HFbes3, 'g'); legend('filtr 1.rádu','filtr 2.rádu','filtr 3.rádu','filtr 4.rádu','Location','SouthWest'); hold off;