Contenu principal

Estimation spectrale avec la méthode de Welch

Créez un signal composé de trois sinusoïdes bruitées et d’un chirp échantillonné à 200 kHz pendant 0,1 seconde. Les fréquences des sinusoïdes sont de 1 kHz, 10 kHz et 20 kHz. Les sinusoïdes ont des amplitudes et des niveaux de bruit différents. Le chirp non bruité a une fréquence de départ de 20 kHz qui augmente de manière linéaire jusqu’à 30 kHz pendant l’échantillonnage.

Fs = 200e3; 
Fc = [1 10 20]'*1e3; 
Ns = 0.1*Fs;

t = (0:Ns-1)/Fs;
x = [1 1/10 10]*sin(2*pi*Fc*t)+[1/200 1/2000 1/20]*randn(3,Ns);
x = x+chirp(t,20e3,t(end),30e3);

Calculez l’estimation de Welch de la PSD ainsi que les spectres des valeurs maximales et des valeurs minimales du signal. Tracez les résultats.

[pxx,f] = pwelch(x,[],[],[],Fs);
pmax = pwelch(x,[],[],[],Fs,'maxhold');
pmin = pwelch(x,[],[],[],Fs,'minhold');

plot(f/1000,pow2db(pxx))
hold on
plot(f/1000,pow2db([pmax pmin]),':')
hold off
xlabel('Frequency (kHz)')
ylabel('PSD (dB/Hz)')
legend('pwelch','maxhold','minhold')
grid

Figure contains an axes object. The axes object with xlabel Frequency (kHz), ylabel PSD (dB/Hz) contains 3 objects of type line. These objects represent pwelch, maxhold, minhold.

Répétez la procédure, cette fois en calculant les estimations du spectre de puissance centré.

[pxx,f] = pwelch(x,[],[],[],Fs,'centered','power');
pmax = pwelch(x,[],[],[],Fs,'maxhold','centered','power');
pmin = pwelch(x,[],[],[],Fs,'minhold','centered','power');

plot(f/1000,pow2db(pxx))
hold on
plot(f/1000,pow2db([pmax pmin]),':')
hold off
xlabel('Frequency (kHz)')
ylabel('Power (dB)')
legend('pwelch','maxhold','minhold')
title('Centered Power Spectrum Estimates')
grid

Figure contains an axes object. The axes object with title Centered Power Spectrum Estimates, xlabel Frequency (kHz), ylabel Power (dB) contains 3 objects of type line. These objects represent pwelch, maxhold, minhold.

Voir aussi

| |