If time domian data is not gaussian Can we use pwelch function?

Dear al, I am analyzing a time domain signal. When i checked the statistical properties, i found that the data is not following Gaussian trend. Also the kurtosis coefficient (4th moment about mean) is ~ -2.5 and probability density function is skewed.
Can i use pwelch function to analyze the signal or some other method is to be used??
Thanks in advance
Vinod

 Accepted Answer

Yes, the question is more whether the time series is stationary, not whether the process is Gaussian.

More Answers (2)

Dear Mr Wayne King,
Thanks for reply. I had just entered in the field of signal analysis for pressure signals measured in wind tunnel. In fact i was reading the book"Fundamentals of signal processing for sound and Vibration engineers" by Kihong Shin & Joseph K Hammond.
Where in chapter 7 its mentioned that the skewness in the pdf could be due to signal clipping. and one of my data signal showed the skewness.
I checked my signal and the mean for all the 16 blocks is nearly same.
What other checks i can have for stationary checks.
If signal is non-stationary what kind of analysis is required.
Hi Vinod, If the mean of your signal looks fairly constant over time and the variance does as well, then you can assume that your signal is stationary, or at least approximately so. If your signal has a certain kind of trend, e.g. linear, then you can always remove that trend prior to doing the Welch (or any) spectral analysis.
If the signal is nonstationary, then one alternative is to use the short-time Fourier transform (spectrogram.m in MATLAB). The short-time Fourier transform is applicable where the signal can be regarded as "piece-wise" stationary.
For example, this is a stationary signal:
t = 0:0.001:1;
x = cos(2*pi*100*t)+randn(size(t));
plot(t,x)
But this is not because the mean changes over time:
strline = @(t,m,b) m*t+b;
y = x+strline(t,3,0);
plot(t,y)
In this case, you can fit a least-squares line to the data and remove that to create a stationary time series.
The following example is nonstationary due to a change in the variance.
t = 0:0.001:1-0.001;
x = cos(2*pi*100*t);
x(1:500) = x(1:500)+0.2*randn(1,500);
x(501:end) = x(501:end)+randn(1,500);
plot(t,x)

2 Comments

Dear Mr Wayne,
The signal which i have does not show either the stationary mean nor stationary variance. Infact the signal has broadly two values of mean, mean1 & mean2.
If i divide my signal into segments of time frames out of 200millisec data.
mean1 one prevails for 1st 20ms, then mean2 for nest 2ms then again mean1 for nest ~30sec, then mean2 for next ~1sec and so on till 200ms.
In this scenario what is the proper way to use sftf, as i can't define a definite "piece-wise" stationary time step.
Also i would like to know about details of stft process matlab does and How to interpret results ([s,f,t,p]=sftf(...))

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!