vuoi
o PayPal
tutte le volte che vuoi
-
SNK :9rS, ool4PSO
Vel SNe? 2
2,S. 4o-14
SN : 2438, 1s06U
S
: -n06 -(44): 33 222e 96
: -447, a6 bo 33 4- l- 4, 33 8S1i f4)- 22,Þ3?2 2 S6
A:75,o wate lal lto
rruo°
1+ (tafrc)
" )
(4+ 5,5ss 46Si4?6
Pa: -4o13
&
66
2,
4. +S.S434
3) D t o l Bren d uo t w u s 2 (a-jiat)
(vass al seiHe pesute| d -jla4
d- ji6t
- alt| -43
2,666-4 e
4o
-
4)
a009
(a
:Isel
?, 40-0
SNR L,668-40- 43
SNR Pm
s(t): o oo00 4 S/m(tTi 4244 A348, 4S? 838 t)
4+(2n4244 A34 &, 457838& 75 -5. 4o44)
44
qo-
S.
2,
2,668 40-13 43,747 S4483
SNe
? 2
A, S23}6fl3 -4o-rl 7,20t8 3449 4
SNe 2/668 A- 43 J6
14
8,5481083
i
10/05/24 12.15 C:\Users\Valeria\Documents\...\Esercizio3.m 1 of 2
% Dati di input
s_1 = datafile1;
s_2 = datafile2;
fs = fs;
% Calcolo la durata dei segnali
T_1 = 1 / (fs / length(s_1));
durata_1 = length(s_1) / fs;
T_2 = 1 / (fs / length(s_2));
durata_2 = length(s_2) / fs;
% Visualizza i risultati
disp(['Durata del primo segnale: ', num2str(durata_1), ' secondi']);
disp(['Durata del secondo segnale: ', num2str(durata_2), ' secondi']);
% Calcolo la trasformata di Fourier del primo segnale
s_c=datafile1;
DFT_segnale_1 = fft(s_c);
% Calcolo l'ampiezza della trasformata di Fourier
ampiezza_DFT_segnale_1 = abs(DFT_segnale_1);
sprimo= fftshift(fft(s_c)); % Uso fftshift per rimettere a posto i dati, spostando il
componente a frequenza zero al centro dell'array
% Determino le frequenze corrispondenti agli indici dei massimi
frequenze= (-fs/2):(fs/512):(fs/2 - fs/512);
[ampiezza_max, indici_maxx] = findpeaks(abs(sprimo));
frequenze_max = frequenze(indici_maxx);
% Ordino i picchi in base all'ampiezza per trovare i due più alti
[ampiezza_max, indici_ordinati] = sort(ampiezza_max, 'descend');
frequenze_dominanti = frequenze_max(indici_ordinati(1:2));
% Visualizzo le frequenze dominanti del primo segnale
disp(['Frequenza dominante del primo segnale: ', num2str(frequenze_dominanti(1)), '
Hz']);
disp(['Seconda frequenza dominante del primo segnale: ', num2str(frequenze_dominanti(2)),
' Hz']);
plot(frequenze,abs(fftshift(DFT_segnale_1)));
%%Esercizio2
% Calcolo la trasformata di Fourier del secondo segnale
DFT_segnale_2 = fft(s_2);
% Calcolo l'ampiezza della trasformata di Fourier
ampiezza_DFT_segnale_2 = abs(DFT_segnale_2);
ssecondo= fftshift(fft(s_2));
10/05/24 12.15 C:\Users\Valeria\Documents\...\Esercizio3.m 2 of 2
% Determino le frequenze corrispondenti agli indici dei massimi
frequenze2= (-fs/2):(fs/512):(fs/2 - fs/512);
[ampiezza_maxx, indici_maxx] = findpeaks(abs(ssecondo), 'MinPeakHeight', max(abs
(ssecondo))* 0.3); % Adattare la soglia in base alla situazione
frequenze_maxx = frequenze2(indici_maxx);
% Ordino i picchi in base all'ampiezza per trovare le frequenze dominanti
[ampiezza_maxx, indici_ordinatii] = sort(ampiezza_maxx, 'descend');
frequenze_dominanti2 = frequenze_maxx(indici_ordinatii);
% Numero di caselle disponibili
num_caselle_disponibili = 6;
% Inserisco le frequenze dominanti nelle caselle disponibili
frequenze_inserite = zeros(1, num_caselle_disponibili);
if length(frequenze_dominanti2) >= num_caselle_disponibili
frequenze_inserite = frequenze_dominanti2(1:num_caselle_disponibili);
else frequenze_inserite(1:length(frequenze_dominanti2)) = frequenze_dominanti2;
% Se il numero di frequenze identificate è inferiore al numero di caselle
disponibili, inserisci la frequenza di campionamento nelle caselle rimanenti
frequenze_inserite(length(frequenze_dominanti2)+1:end) = fs * ones(1,
num_caselle_disponibili - length(frequenze_dominanti2));
end
% Visualizza le frequenze inserite
disp('Frequenze identificate nel secondo segnale (in ordine crescente):');
disp(frequenze_inserite);
% Grafico dello spettro delle frequenze
figure;
plot(frequenze2, abs(fftshift(DFT_segnale_2)));
xlabel('Frequenza (Hz)');
ylabel('Ampiezza');
title('Spettro delle frequenze del secondo segnale');
1200 X -2812.5 X 2812.5
Y 1151.52 Y 1151.52
1000
800
600
400
200
0
-8000 -6000 -4000 -2000 0 2000 4000 6000 8000