Forum
>>
Programmazione Python
>>
Calcolo scientifico
>>
signal.welch
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Hammiah90 |
2016-08-05 09:58:26 - signal.welch
|
Ciao,
sto trascrivendo un semplice codice che calcola la PSD di un segnale scritto in Matlab, in Python. Per il calcolo della PSD utilizzo il comando welch incluso in scipy.signal. Il problema è che il risultato della psd che mi tira fuori è ndarray, mentre le frequenze associate no (ovviamente!). Se vado a plottare mi dice che "x e y must have the same first dimension". Sbaglio qualcosa? Allego i due codici, quello di partenza scritto in Matlab(funzionante) e quello che sto scrivendo in Python. Matlab % tic load('Track_147.mat') P=p/0.001614; P=P(1:100000); Fs=150000; x=length(P); winlenght=(2^; [Pxx,fxx]=pwelch(P,winlenght,winlenght/2,winlenght,Fs); figure(1) loglog(fxx,Pxx); title('PSD') % toc Python import scipy.io from scipy import signal import matplotlib.pyplot as plt import numpy as np import time t_iniziale=time.time() f = scipy.io.loadmat('track_147.mat') P= f['p'] P=P/0.001614 x=P[0:100000] fs=15e4 nperseg=256 [fxx,Pxx]=signal.welch(x, fs,window='hanning', nperseg=256 ,noverlap= None, nfft=256, detrend='linear', return_onesided=True, scaling='density') Px=Pxx[54,:] plt.semilogy(fxx, Px) t_finale=time.time() print "impiegati", str(t_finale-t_iniziale) |
Pagina: 1
Esegui il login per scrivere una risposta.