clc; close all; clear all; f0_ohranicene = [25, 20, 10, 12.5]; rawText = fileread('data6.dat'); nums = regexp(rawText, '[-+]?\d+', 'match'); data = int16(str2double(nums)); Fs = 200; r = 0.98; % predalokovana SOS matica pre vsetky filtrovane zlozky % 6 lebo koeficienty [b0, b1, b2, a0, a1, a2] sos = zeros(length(f0_ohranicene), 6); for k = 1:length(f0_ohranicene) theta = 2 * pi * (f0_ohranicene(k) / Fs); b = [1, -2*cos(theta), 1]; a = [1, -2*r*cos(theta), r^2]; sos(k, :) = [b, a] end figure; [z, p, k_gain] = sos2zp(sos); figure; zplane(z, p); title('Nuly a póly filtra'); xlabel('Reálna časť'); ylabel('Imaginárna časť'); set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); print('-depsc', 'fig2_semE.eps'); figure; freqz(sos, 4096, Fs); title('Frekvenčná charakteristika SOS filtra'); xlabel('Frekvencia [Hz]'); ylabel('Zosilnenie [dB]'); set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); print('-depsc', 'fig3_semE.eps'); filtered_data = sosfilt(sos, double(data)); figure; plot(filtered_data); title('Filtrovaný signál'); xlabel('Vzorky'); ylabel('Amplitúda'); grid on; set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); set(gcf, 'PaperPosition', [0 0 1.7*6 0.75*4.2]); set(gcf, 'PaperSize', [1.7*6 0.75*4.2]); print('-depsc', 'fig4_semE.eps');