Esercizio TF.1

Determinare lo spettro di un'onda quadra con frequenza F = 10 Hz (periodo 0.1 secondi). Usare come frequenza di campionamento Fc = 1 KHz.

SUGGERIMENTO: Questa porzione di codice genera l'onda quadra e la visualizza:

clear;
close all;
 
Fc = 1000; % Frequenza di campionamento (1 KHz)
F = 10; % Frequenza onda quadra (10 Hz)
T = 1/F; % Periodo onda quadra
duty = 50; % Duty cycle percentuale
 
t = (0:1/Fctriste10000-1)/Fc).'; % Asse dei tempi con 10000 campioni (vettore colonna)
x = square(2*pi*F*t,50); % Uso la funzione square di Matlab
 
figure
plot(t, x);
grid on;
xlabel('t [s]')
ylabel('Ampiezza');
title('Onda quadra a media nulla')
axis([0 0.5 -1 1]);

 

Lo spettro risultante dovrà avere una componente alla frequenza f1 = 10 Hz e ai suoi multipli dispari (30, 50, 70, ... Hz) che si attenuereranno progressivamente all'aumentare della frequenza

 

Esercizio TF.2

Un chirp è un segnale nel quale la frequenza varia linearmente con il tempo, crescendo (up-chirp) o decrescendo (down-chirp).

Disegnare un'onda chirpata che da una frequenza istantanea iniziale di 10 Hz passa in 500 campioni ad una frequenza istantanea finale di 500 Hz. Si usi una frequenza di campionamento di 2 KHz.

SUGGERIMENTO: Il seguente m-file risolve l'esercizio. Capire cosa viene visualizzato nelle figure.

 

clear;
close all;
 
Fc = 2000; % Frequenza di campionamento (1 KHz)
F0 = 10; % Frequenza iniziale (10 Hz)
F1 = 500; % Frequenza all'istante finale (500 Hz)
L = 500; % Numero di campioni
t = (0:1/FctristeL-1)/Fc).'; % Asse dei tempi con L campioni (vettore colonna)
t1 = t(length(t)); % Istante finale
 
x = chirp(t,F0,t1,F1);
 
figure
plot(t, x);
grid on;
xlabel('t [s]')
ylabel('Ampiezza');
title('Onda chirpata')
 
figure
pspectrum(x,Fc);
grid on;
title('Spettro di potenza totale del segnale');
 
figure
M = 100; % Risoluzione temporale in secondi
pspectrum(x,Fc,'spectrogram','TimeResolution',M/Fc,'OverlapPercent',99,'Leakage',0.85);
title('Andamento dello spettro di potenza nel tempo');

Nel codice qui sopra riportato y = chirp(t,f0,t1,f1) genera campioni di un segnale sinusoidale con frequenza di scansione lineare negli istanti specificati nel vettore t. La frequenza istantanea all'istante 0 è f0 e la frequenza istantanea all'istante t1 è f1.

pspectrum(x,Fc,'spectrogram','TimeResolution',Tr,'OverlapPercent',99,'Leakage',0.85) calcola e traccia lo spettrogramma del segnale x. Divide il segnale in segmenti in modo tale che la risoluzione temporale sia di Tr secondi. Specifica che tra due calcoli successivi ci sia la sovrapposizione del 99% dei campioni e una dispersione spettrale di 0.85.

 

Esercizio TF.3

yi = gauspuls(t,fcent,bw) restituisce un impulso RF sinusoidale modulato gaussiano di ampiezza unitaria nei tempi indicati nel vettore t, con una frequenza centrale fcent in Hertz e una larghezza di banda frazionaria bw (per una banda frazionaria del 60% è necessario scrivere 0.6)

Tracciare un impulso RF gaussiano con frequenza centrale 50 kHz e larghezza di banda del 60%, campionato a una frequenza di 10 MHz. Disegnarne inoltre lo spettro.

SUGGERIMENTO: Usare la seguente porzione di codice:

 
Fc = 10e6; % Frequenza di campionamento (10 MHz)
Fcent = 50000; % Frequenza iniziale (50 KHz)
L = 1000; % Numero di campioni
bw = 0.6;
t = (-(L-1)/(2*Fc):1/FctristeL-1)/(2*Fc)).'; % Asse dei tempi con L campioni (vettore colonna)
x = gauspuls(t,Fcent,0.6);
Ultime modifiche: martedì, 2 gennaio 2024, 23:28