clc; close all; clear all; % semestralka rawText = fileread('data6.dat'); nums = regexp(rawText, '[-+]?\d+', 'match'); data = int16(str2double(nums)); X = DFT_priama(double(data)); n = length(X); Fs = 200; freq = (0:n-1)*Fs/n; figure; plot(double(data)); figure; plot(freq, X) %3 figure; magX = abs(X); plot(freq, magX) %4 % freq shift pre -Fs/2 po Fs/2 freq_shift = (-n/2:n/2-1)*(Fs/n); figure; subplot(2,1,1); plot(freq_shift, real(fftshift(X))); title('Reálna časť posunutého spektra'); xlabel('Frekvencia [Hz]'); ylabel('Reálna hodnota'); subplot(2,1,2); plot(freq_shift, imag(fftshift(X)), 'r'); title('Imaginárna časť posunutého spektra'); xlabel('Frekvencia [Hz]'); ylabel('Imaginárna hodnota'); set(gcf, 'PaperPosition', [0 0 1.7*6 0.75*4.2]); set(gcf, 'PaperSize', [1.7*6 0.75*4.2]); set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); print('-depsc', 'fig_im_real_semC.eps'); %5 figure; plot(freq, imag(X), 'r'); %6 figure; plot(freq, real(X)); %7 figure; % fazove spektrum plot(freq, angle(X)) [pks, locs] = findpeaks(magX, 'NPeaks', 10, 'SortStr', 'descend'); f0 = freq(locs) f0b = f0(f0 < 100); % nyquistov teorem f0_ohranicene = f0b f0_ohranicene(f0_ohranicene < 2) = []; r = 0.975; b = 1; a = 1; for k = 1:length(f0_ohranicene) theta = 2*pi*(f0_ohranicene(k)/Fs); b = conv(b, [1, -2*cos(theta), 1]); a = conv(a, [1, -2*r*cos(theta), r^2]); end figure; zplane(b, a); title('Nuly a póly filtra'); xlabel('Reálna časť'); ylabel('Imaginárna časť'); set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); print('-depsc', 'fig1_semC.eps'); figure; freqz(b, a); title('Frekvenčná charakteristika (1)'); xlabel('Frekvencia [Hz]'); ylabel('Zosilnenie [dB]'); set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); print('-depsc', 'fig2_semC.eps'); figure; freqz(b, a); title('Frekvenčná charakteristika (2)'); xlabel('Frekvencia [Hz]'); ylabel('Zosilnenie [dB]'); set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); print('-depsc', 'fig3_semC.eps'); filtered_data = filter(b, a, 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_semC.eps');