/ / Interpretacja S i P w spektrogramie MATLAB - matlab, rysunek matlaba

Interpretacja S i P w spektrogramie MATLAB - matlab, matlab-figure

Starałem się lepiej zrozumieć następujące użycie MATLAB-a spectrogram():

[S,F,T,P] = spectrogram(x,window,noverlap,f,fs)

Założyć x jest realne. Z tego co rozumiem P to szacunek PSD x (odpowiednik użycia pwelch()?) podczas gdy kolumny S są razem z oknami STFT Hamminga x. P wydaje się być proporcjonalny do pierwiastka kwadratowego wielkości S.

Skąd wziął się ten współczynnik proporcjonalności? Jakie są „jednostki” P i S, odpowiednio?

Odpowiedzi:

0 dla odpowiedzi № 1

spojrzałem na spectrogram w dokumentacji MATLAB.

Ale spektrogramy to funkcje 2D, czas i częstotliwość. The S reprezentują DFT próbek wektora czasu T w odniesieniu do częstotliwości na wektorze częstotliwości W.
Ponieważ korzystasz z okna, wynik jest z okienkowych próbek czasu.

The P wektor jest dla PSD (kwadratowa wartość bezwzględna S) na tych samych próbkach okien i częstotliwościach.


0 dla odpowiedzi nr 2

Jak wspomniałeś, S jest STFT z okienkami x, a P jest PSD.

P można obliczyć przez S.

Tutaj możesz znaleźć tło obliczeń. tutaj

Poniższy przykład pokazuje, jak obliczyć P z S.

t = 0:0.001:2;
x = chirp(t,0,1,150); % 2 second chirp signal

nfft=256;

cFactor=0.3974; % Noise gain of hamming window

[S,F,T,P] = spectrogram(x,nfft,100,nfft,1e3); % S is STFT of hamming windowed signal

fbin=F(2)-F(1); %Frequency resolution

nS=(1/(2*(nfft/2+1)))*S; % normalizing by length of S

Pxx=2*(1/fbin)*(1/cFactor)*nS.*conj(nS);  %PSD of AC value

Pxx(1,:)=(1/fbin)*(1/cFactor)*nS(1,:).*conj(nS(1,:)); %PSD of DC value

Tutaj zmienna Pxx będzie taka sama ze zmienną P.

Możesz sprawdzić wynik, korzystając z poniższego wykresu

figure(1)
subplot(2,1,1)
waterfall(F,T,P")
xlabel("frequency(Hz)")
ylabel("time(sec)")

figure(1)
subplot(2,1,2)
waterfall(F,T,real(Pxx)")
xlabel("frequency(Hz)")
ylabel("time(sec)")

Funkcja Pwelch daje także PSD, a metoda obliczeniowa jest taka sama dla spektrogramu, z wyjątkiem uśredniania wszystkich STFT.

Jeśli użyjesz funkcji pwelch w ten sam sposób z górnym przykładem, znajdziesz uśredniony wykres wszystkich segmentów STFT.

Spróbuj poniżej kodu z tym samym sygnałem, aby zobaczyć, jak działa pwelch.

t = 0:0.001:2;
x = chirp(t,0,1,150); % 2 second chirp signal

nfft=256;
[P,F] = pwelch(x,nfft,100,nfft,1e3);

figure(2)
plot(F,P)
xlabel("frequency(Hz)")

Na rysunku (2) zobaczysz średni wykres wykresu wodospadu (1).

Odnośnie jednostki S i P,

S nie ma jednostki, ponieważ DFT nie obsługuje jednostki.

P jest kwadratem wartości skutecznej sygnału czasu na Hz.

Jeśli jednostką sygnału czasowego jest Volt (V), jednostka P to Vrms ^ 2 / Hz.