diff --git a/semestralka2/analyza_b.m b/semestralka2/analyza_b.m new file mode 100644 index 0000000..4389f83 --- /dev/null +++ b/semestralka2/analyza_b.m @@ -0,0 +1,114 @@ +clc; +close all; +clear all; + +[y, Fs] = audioread('sem2.wav'); +t = (0:length(y)-1) / Fs; + +figure; %1 +plot(t, y); +xlabel('Time'); +ylabel('Amplitude'); +title('Waveform sem2.wav'); +grid on; + +[y1, Fs1] = audioread('flac.wav'); +[y2, Fs2] = audioread('flac2.wav'); + +t1 = (0:length(y1)-1) / Fs1; +t2 = (0:length(y2)-1) / Fs2; + +figure; %2 +plot(t1, y1); +xlabel('Time [s]'); +ylabel('Amplitude'); +title('Waveform flac.wav'); +grid on; + +figure; %3 +plot(t2, y2); +xlabel('Time [s]'); +ylabel('Amplitude'); +title('Waveform flac2.wav'); +grid on; + +N1 = length(y1); +N2 = length(y2); + +X1 = fft(y1); +X2 = fft(y2); + +freq_shift1 = (-N1/2 : N1/2 - 1) * (Fs1 / N1); +freq_shift2 = (-N2/2 : N2/2 - 1) * (Fs2 / N2); + +figure; %4 +subplot(2,1,1); +plot(freq_shift1, real(fftshift(X1)), 'b'); +title('Reálna časť posunutého spektra flac.wav'); +xlabel('Frekvencia [Hz]'); +ylabel('Reálna hodnota'); +grid on; +subplot(2,1,2); +plot(freq_shift1, imag(fftshift(X1)), 'r'); +title('Imaginárna časť posunutého spektra flac.wav'); +xlabel('Frekvencia [Hz]'); +ylabel('Imaginárna hodnota'); +grid on; +set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); + +figure; %5 +subplot(2,1,1); +plot(freq_shift2, real(fftshift(X2)), 'b'); +title('Reálna časť posunutého spektra flac2.wav'); +xlabel('Frekvencia [Hz]'); +ylabel('Reálna hodnota'); +grid on; +subplot(2,1,2); +plot(freq_shift2, imag(fftshift(X2)), 'r'); +title('Imaginárna časť posunutého spektra flac2.wav'); +xlabel('Frekvencia [Hz]'); +ylabel('Imaginárna hodnota'); +grid on; +set(gcf, 'Color', 'none'); set(gca, 'Color', 'none'); + +% === Najdenie špičiek len v prvej polovici spektra === +halfN1 = floor(N1/2); +halfN2 = floor(N2/2); + +magX1 = abs(X1(1:halfN1)); +magX2 = abs(X2(1:halfN2)); +realX2 = real(X2(1:halfN2)); +imagX2 = imag(X2(1:halfN2)); + +freq1 = (0:halfN1-1)*(Fs1/N1); +freq2 = (0:halfN2-1)*(Fs2/N2); + +% ---- flac.wav (10 peaks from magnitude) ---- +[pks1, locs1] = findpeaks(magX1, 'NPeaks', 10, 'SortStr', 'descend'); +f0_1 = freq1(locs1); +f0_1(f0_1 < 2) = []; % ignore DC and very low freq + +% ---- flac2.wav (4 peaks from real, 6 peaks from imag) ---- +[pks2r, locs2r] = findpeaks(abs(realX2), 'NPeaks', 4, 'SortStr', 'descend'); +f0_2r = freq2(locs2r); +f0_2r(f0_2r < 2) = []; + +[pks2i, locs2i] = findpeaks(abs(imagX2), 'NPeaks', 6, 'SortStr', 'descend'); +f0_2i = freq2(locs2i); +f0_2i(f0_2i < 2) = []; + +% ---- Výpis výsledkov ---- +disp('Najvýraznejšie frekvenčné zložky flac.wav (10, len 1/2 spektra):'); +disp(f0_1'); + +disp('Najvýraznejšie frekvenčné zložky flac2.wav - reálna časť (4, len 1/2 spektra):'); +disp(f0_2r'); + +disp('Najvýraznejšie frekvenčné zložky flac2.wav - imaginárna časť (6, len 1/2 spektra):'); +disp(f0_2i'); + + + + +% // NOTCH FILTER +