Compare commits
2 Commits
9bf8347b79
...
d94c92eead
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d94c92eead | ||
|
|
f9f5e27f45 |
72
semestralka2/analyza.m
Normal file
72
semestralka2/analyza.m
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
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');
|
||||||
114
semestralka2/analyza_b.m
Normal file
114
semestralka2/analyza_b.m
Normal file
@@ -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
|
||||||
|
|
||||||
Reference in New Issue
Block a user