The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 16th, 2024, 1:34pm
Pages: 1
Send Topic Print
how to estimate the PSD of a complex signal in MATLAB (Read 12286 times)
Mahyar
New Member
*
Offline



Posts: 7

how to estimate the PSD of a complex signal in MATLAB
May 19th, 2009, 9:10am
 
Hi
I have a complex bandlimited single sideband signal but I don't know how to estimate the PSD of a complex signal in MATLAB.
Thanks,
M
Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re:  how to estimate the PSD of a complex signal in MATLAB
Reply #1 - May 22nd, 2009, 4:45am
 
Mahyar wrote on May 19th, 2009, 9:10am:
I have a complex bandlimited single sideband signal but I don't know how to estimate the PSD of a complex signal in MATLAB.
I don't know what you mean by "a complex bandlimited single sideband signal".

But if you mean complex envelope signal such as i[n]+j*q[n] , use fft() or fftshift() functions which are available as standard function of MATLAB.
Here you should apply some window function(e.g. Blackman, Kaiser, Hamming, Hanning, etc.) to i[n]+j*q[n].

See the following.
http://www.designers-guide.org/Forum/YaBB.pl?num=1216663909/4#4

Here I calculate spectrum of complex signal if_out=real(if_i_out[0])+j*real(if_q_out[0])
by using Agilent ADS post processing functions.
Spectrum is calculated as Out_Spectrum=dBm(fs(2*if_out,,,,,"Kaiser")).
"fs()" is a function for FFT in Agilent ADS post processing environment.
So if you use MATLAB, you should change "fs()" to "fft()".

Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
HdrChopper
Community Fellow
*****
Offline



Posts: 493

Re:  how to estimate the PSD of a complex signal in MATLAB
Reply #2 - May 22nd, 2009, 5:37pm
 
Hi,,

There are several PSD estimators in Matlab, like Pburg, PMCONV, PMYULEAR and more.

One of those should work for your requirements.

Regards
Tosei
Back to top
 
 

Keep it simple
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re:  how to estimate the PSD of a complex signal in MATLAB
Reply #3 - May 22nd, 2009, 8:16pm
 
Mathematically PSD is a Spectrum of auto-correlation function.

HdrChopper wrote on May 22nd, 2009, 5:37pm:
There are several PSD estimators in Matlab, like Pburg, PMCONV, PMYULEAR and more.
These pmconv(), pbrug() and pyulear() require Signal Processing Toolbox.
These give true PSD which is a Spectrum of auto-correlation function.

Strictly speaking, abs(fft(x))**2 is not PSD, as you say.

However Spectrum of actual vector signal analyzer is simple fft(x) not a Spectrum of auto-correlation function, although I can do post processing to evaluate true PSD from {i[n]+j*q[n]}.
http://www.designers-guide.org/Forum/YaBB.pl?num=1195226387

Generally a simple fft(x) is enough useful.
http://en.wikipedia.org/wiki/Parseval%27s_theorem
http://en.wikipedia.org/wiki/Spectral_density
Back to top
 
« Last Edit: May 23rd, 2009, 5:20am by pancho_hideboo »  
View Profile WWW Top+Secret Top+Secret   IP Logged
HdrChopper
Community Fellow
*****
Offline



Posts: 493

Re:  how to estimate the PSD of a complex signal in MATLAB
Reply #4 - May 23rd, 2009, 8:34pm
 
[quote author=pancho_hideboo link=1242749411/0#3

Generally a simple fft(x) is enough useful.
[/quote]

Hi Pancho,

I mostly agree with you. However if you are also processing noise applying just a simple fft(x) will not give you accurate results. It will work ok if your signal is deterministic though.

Tosei
Back to top
 
 

Keep it simple
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re:  how to estimate the PSD of a complex signal in MATLAB
Reply #5 - May 23rd, 2009, 11:32pm
 
HdrChopper wrote on May 23rd, 2009, 8:34pm:
However if you are also processing noise applying just a simple fft(x) will not give you accurate results.
It will work ok if your signal is deterministic though.
It is true theoretically.
But I don't think so from practical point of view.

A simple abs(fft(x))2 is a approximation of true PSD, here approximation point is lack of ensemble averaging.
I think a simple abs(fft(x))2 is enough useful even for random signal(stochastic signal).

I can get following well known PSD value in Transient Noise Analysis even with simple abs(fft(x))2.
PSD=k*T=-173.8[dBm/Hz], k=1.38*10-23[J/K], T=300[K]

In the following, band limited white gaussian noises are added in system and I evaluate ACPR by using simple abs(fft(x))2.
http://www.designers-guide.org/Forum/YaBB.pl?num=1190971685/7#7

Do you truely evaluate PSD based on a Spectrum of auto-correlation function for results of Transient Noise Analysis ?, although it might be dependent on purpose of PSD.
In audio signal analysis, PSD based on a Spectrum of auto-correlation function is used exclusively.

Even if we use Spectrum of auto-correlation function as PSD for practical finite length time sequence {x[n]}, it is also no more than approximation of true PSD.
Back to top
 
« Last Edit: May 24th, 2009, 10:41pm by pancho_hideboo »  
View Profile WWW Top+Secret Top+Secret   IP Logged
RFICDUDE
Community Fellow
*****
Offline



Posts: 323

Re:  how to estimate the PSD of a complex signal in MATLAB
Reply #6 - May 25th, 2009, 7:01am
 
Pancho is correct.
A simple abs(FFT)^2 is the power spectrum of a particular realization of a signal. The FFT will yield an accurate estimate of ACPR and EVM even though the spectrum looks noisy.

The only reason a fft looks noisy is because
1. you are looking at a signal over several or many symbols with random phase
2. you are looking at signal where several independent symbols or orthogonal channels are added together (multichannel CDMA or OFDM)

PSD techniques average out the random variation to yield an estimate of what the so called "true" or average spectral density is for a given signal. If the signal is wide sense stationary, then the average PSD (using sliding window averages such as the periodogram or Welch method) are a good (to within a confidence level) estimate of the spectral occupancy of a given signal.

Personally, I like looking at averaged PSDs just because it is a little easier to compare differences between different signals. It is difficult to compare noisy looking spectrums even if the calculated numbers for ACPR and EVM are the same.
Back to top
 
 
View Profile   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.