The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
May 29th, 2020, 12:18am
Pages: 1
Send Topic Print
PSD from envelope following analysis (Read 6734 times)
aaron_do
Senior Fellow
******
Offline



Posts: 1398

PSD from envelope following analysis
Jan 21st, 2010, 4:58am
 
Hi all,


I ran an envelope following analysis on a MSK signal and it showed a peak voltage of 0.316V. Since this is  a constant envelope signal, I expect the power of the signal to be about 0.316^2/100 = 1mW. However, when I plotted the PSD and integrate over the entire bandwidth, I get a power of about 1.7mW.
Actually, since this is a modulated signal, I actually expect the signal to be even smaller. It should be approximately 0.316^2/(50*PAPR) I think. Can someone please shed some light on where i've made my mistake?


thanks,
Aaron
Back to top
 
 

there is no energy in matter other than that received from the environment - Nikola Tesla
View Profile   IP Logged
aaron_do
Senior Fellow
******
Offline



Posts: 1398

Re: PSD from envelope following analysis
Reply #1 - Jan 21st, 2010, 6:24am
 
by the way, when I ran the envelope following analysis on a simple PA, the PSD showed no change in shape from input to output. I don't think the PA is that linear so is there something I should know about the simulation setup which i'm not doing?

thanks,
Aaron

Back to top
 
 

there is no energy in matter other than that received from the environment - Nikola Tesla
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: PSD from envelope following analysis
Reply #2 - Jan 21st, 2010, 7:04am
 
aaron_do wrote on Jan 21st, 2010, 4:58am:
I ran an envelope following analysis on a MSK signal and it showed a peak voltage of 0.316V.
Since this is  a constant envelope signal, I expect the power of the signal to be about 0.316^2/100 = 1mW.
However, when I plotted the PSD and integrate over the entire bandwidth, I get a power of about 1.7mW.
I assume that you are using Cadence Spectre and Post Processing of Cadence.
Is it right ?
Always describe vendor's name which you use as simulator and post processing.

When I have spare time, I will confirm power using Post Processing Environment of Cadence.
If results of Cadence Post Processing are not correct as you say, I will confirm power using RF golden standard Post Processing such as Agilent ADS for results of Cadence Spectre.

aaron_do wrote on Jan 21st, 2010, 4:58am:
Actually, since this is a modulated signal, I actually expect the signal to be even smaller.
It should be approximately 0.316^2/(50*PAPR) I think.
It is slightly different.

Assume vRF(t)=Real[Venv(t)*exp(j*ω*t)], Venv(t)=I(t)+j*Q(t)

Instantaneous RF Power delivered to Load Rload is pRF(t)=vRF(t)2/Rload
Instantaneous Envelope Power delivered to Load Rload is penv(t)=|Venv(t)|2/(2*Rload)

PEP(Peak Envelope Power)=Max[|Venv(t)|]2/(2*Rload)

Averaged RF Power=Average[pRF(t)]=RMS[vRF(t)]2/Rload
Here there are two options for averaging, Averaging regarding Carrier and Averaging regarding Envelope.
If RF signal is repeated burst wave, frame averaging can be also defined.

RMS[vRF(t)]2=|Venv(t)|2/2 for Averaging regarding Carrier not Envelope.

RF Power averaged regarding Carrier is =|Venv(t)|2/(2*Rload)
This is no more than Instantaneous Envelope Power delivered to Load Rload, penv(t).

RMS[vRF(t)]2=RMS[|Venv(t)|]2/2 for Averaging regarding Envelope.

RF Power averaged regarding Envelope is =RMS[|Venv(t)|]2/(2*Rload)

PAPR=PEP/RMS[|Venv(t)|]2/(2*Rload)

So Average[pRF(t)] which is averaged regarding Envelope is
Average[pRF(t)]=RMS[|Venv(t)|]2/(2*Rload)=PEP/PAPR=Max[|Venv(t)|]2/(2*Rload*PAPR)

In your case, it is "0.3162/(2*50*PAPR)" not "0.3162/(50*PAPR)".

aaron_do wrote on Jan 21st, 2010, 6:24am:
by the way, when I ran the envelope following analysis on a simple PA,
the PSD showed no change in shape from input to output.
I don't think the PA is that linear so is there something I should know about the simulation setup which i'm not doing?
There is no specification for ACPR in "IEEE 802.15.4 standard".
But a specification for spurious emission exists in "IEEE 802.15.4 standard".

For ZigBee Application, we are not permitted to consume much current in PA, so clear ACPR degradation can be observed.
Although I have not confirmed it by using Cadence Spectre in detail, generally clear ACPR degradation can be observed even if you use Cadence Spectre.

For detail analysis purpose, I'm using Agilent GoldenGate and ADSsim with including noise effects.
Back to top
 
« Last Edit: Jan 22nd, 2010, 5:12am by pancho_hideboo »  
View Profile WWW Top+Secret Top+Secret   IP Logged
aaron_do
Senior Fellow
******
Offline



Posts: 1398

Re: PSD from envelope following analysis
Reply #3 - Jan 21st, 2010, 8:25pm
 
I think I may be running the simulation wrongly. This is my first time using envelope following analysis so I may have made a beginner's mistake. Here are my settings:

engine: Shooting
Fund Frequency = 2.45G
stop time = 500u
number of harmonics = 1
Accuracy Defaults: moderate

Also, when I plot the power versus time of the zeroth harmonic (at the supply), it is not much greater than the power versus time of the first harmonic (at the load). I don't think the PA is that efficient so i'm definately doing something wrong. Any help is appreciated.

thanks,
Aaron
Back to top
 
 

there is no energy in matter other than that received from the environment - Nikola Tesla
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: PSD from envelope following analysis
Reply #4 - Jan 22nd, 2010, 1:04am
 
aaron_do wrote on Jan 21st, 2010, 4:58am:
I ran an envelope following analysis on a MSK signal and it showed a peak voltage of 0.316V.
Since this is  a constant envelope signal, I expect the power of the signal to be about 0.316^2/100 = 1mW.
However, when I plotted the PSD and integrate over the entire bandwidth, I get a power of about 1.7mW.
I can get almost 0dBm as an integration of psdbb().
So there is no problem regarding an implementation of psdbb() in Cadence ADE Post Processing.

In Agilent ADS(RFDE) Post Processing Environment, generally I use following three functions for evaluation of Channel Power.
http://edocs.soco.agilent.com/display/ads2009/spec+power%28%29
http://edocs.soco.agilent.com/display/ads2009/channel+power+vi%28%29
http://edocs.soco.agilent.com/display/ads2009/channel+power+vr%28%29
http://edocs.soco.agilent.com/display/ads2009/peak+to+avg+pwr%28%29#peaktoavgpwr...

In the following, I use "spec_power()" to evaluate ACPR.
http://www.designers-guide.org/Forum/YaBB.pl?num=1190971685/7#7

Attached figure is an input MSK signal for DUT such as Power Amplifier.
Power evaluated as an integration of psdbb() is 0.97mWatt(=-0.15dBm).
So PAPR=0.15dB

I confirmed four windows, "Blackman", "Rectangular", "Hamming" and "Hanning".
There is no difference between them.

"test_aaron.ocn" Quote:
ocnWaveformTool( 'wavescan )

awvSetOptionValue( 'displayGrids t )
awvSetOptionValue( "cursorPrecision" 9 )
awvSetOptionValue( "displayAxesBy125" t )

date = getCurrentTime()
M_PI = acos( -1.0 )
M_TWO_PI = 2.0 * acos( -1.0 )
j = complex( 0.0, 1.0 )

psf_dir = "~/AHO/simulation/test_ZigBee_RF_Signal/spectre/schematic/psf"
openResults( psf_dir )

Rload = 50.0 ; [Ohm]

tstart = 0.0
tstop = 0.3m
delta_f = 1.0/(tstop-tstart)
fn = 20M
binw = 0.01M
if( binw < delta_f then binw=delta_f )
num_bin = floor( binw/delta_f + 0.5 )
winsz = floor( log10(2*fn/(num_bin*delta_f)) / log10(2) + 0.5 )
winsz = 2 ** winsz
ndata = num_bin * winsz
win_name = "Blackman"
;win_name = "Rectangular"
;win_name = "Hamming"
;win_name = "Hanning"
fmin = -5M
fmax = 5M
; Calculated Power Spectral Density Parameters:
fprintf( stderr, "Tstart for Time Interval = %g[usec]\n", tstart/1.0u )
fprintf( stderr, "Tstop for Time Interval = %g[usec]\n", tstop/1.0u )
fprintf( stderr, "Nyquist half-bandwidth = %g[MHz]\n", fn/1.0M )
fprintf( stderr, "Frequency bin width = %g[MHz]\n", binw/1.0M )
fprintf( stderr, "Max. plotting frequency = %g[MHz]\n", fmax/1.0M )
fprintf( stderr, "Min. plotting frequency = %g[MHz]\n", fmin/1.0M )

fprintf( stderr, "Number of Samples = %d\n", ndata )
fprintf( stderr, "Window Name = %s\n", win_name )
fprintf( stderr, "Window Size = %d\n", winsz )
fprintf( stderr, "Number of Bins = %d\n", num_bin )

RFsig = v( "/RFsig", ?result "envlp_td" )
RFsig_1st_Env = harmonic( v( "/RFsig", ?result "envlp_fd" ), 1 )

Inst_Env_Pwr = mag(RFsig_1st_Env)**2 / (2*Rload)

RFsig_1st = psdbb( real(RFsig_1st_Env), imag(RFsig_1st_Env),
                  tstart, tstop, ndata,
                  ?windowName win_name, ?windowSize winsz,
                  ?detrending "None" )


RFsig_1st_PSD = RFsig_1st / (2*Rload)


wid = newWindow()
addTitle( strcat("Test of psdbb(), ", date) )
bid = currentSubwindow(1)
addSubwindowTitle( "RF Signal with Carrier" )
plot( RFsig, ?expr '( "RFsig" ) )
xLimit(list(0.0, 5u))
;awvSetXAxisLabel( wid, "time", ?subwindow bid )
awvSetYAxisLabel( wid, 1, "RFsig", ?subwindow bid )

addSubwindow()
bid = currentSubwindow(2)
addSubwindowTitle( "Isig and Qsig" )
plot( real(RFsig_1st_Env) ?expr '( "Isig" ) )
plot( imag(RFsig_1st_Env) ?expr '( "Qsig" ) )
xLimit(list(0.0, 5u))
awvSetYAxisLabel( wid, 1, "Isig , Qsig", ?subwindow bid )

addSubwindow()
bid = currentSubwindow(3)
addSubwindowTitle( "Envelope Power" )
plot( dBm(Inst_Env_Pwr) ?expr '( "Inst_Env_Pwr" ) )
xLimit(list(0.0, 5u))
awvSetYAxisLabel( wid, 1, "Envelope Power", ?subwindow bid )

addSubwindow()
bid = currentSubwindow(4)
addSubwindowTitle( "Power Spectrum Density" )
plot( dBm(RFsig_1st_PSD) ?expr '( "RFsig_1st_PSD" ) )
xLimit(list(fmin, fmax))
awvSetXAxisLabel( wid, "freq [Hz]", ?subwindow bid )
awvSetYAxisLabel( wid, 1, "PSD [dBm/Hz]", ?subwindow bid )


f1 = -fn
f2 = fn
Pwr = integ( RFsig_1st_PSD, f1, f2 )
fprintf( stderr, "Power = %.2fmWatt(=%.2fdBm)\n",Pwr/1m, dBm(Pwr) )

/*
\i load "test_aaron.ocn"
\e Tstart for Time Interval = 0[usec]
\e Tstop for Time Interval = 300[usec]
\e Nyquist half-bandwidth = 20[MHz]
\e Frequency bin width = 0.01[MHz]
\e Max. plotting frequency = 5[MHz]
\e Min. plotting frequency = -5[MHz]
\e Number of Samples = 12288
\e Window Name = Blackman
\e Window Size = 4096
\e Number of Bins = 3
\e Power = 0.97mWatt(=-0.15dBm)
*/


Back to top
« Last Edit: Jan 22nd, 2010, 7:54am by pancho_hideboo »  

test_aaron.png
View Profile WWW Top+Secret Top+Secret   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: PSD from envelope following analysis
Reply #5 - Jan 22nd, 2010, 1:40am
 
aaron_do wrote on Jan 21st, 2010, 8:25pm:
Here are my settings:
engine: Shooting
Fund Frequency = 2.45G
stop time = 500u
number of harmonics = 1
Accuracy Defaults: moderate
See my settings for Envelope Analysis of Cadence Spectre in the following.
http://www.designers-guide.org/Forum/YaBB.pl?num=1262000981
Also again see http://www.designers-guide.org/Forum/YaBB.pl?num=1263961579/2#2

aaron_do wrote on Jan 21st, 2010, 8:25pm:
Also, when I plot the power versus time of the zeroth harmonic (at the supply),
it is not much greater than the power versus time of the first harmonic (at the load).
I don't think the PA is that efficient so i'm definately doing something wrong.
If you have other RF simulators such as Agilent RFDE(ADSsim), Agilent GoldenGate, Mentor eldoRF,
try to use these actually well used envelope analysis.
I'm using Agilent GoldenGate and ADSsim with including noise effects as reference of Envelope Analysis.

aaron_do wrote on Jan 21st, 2010, 8:25pm:
Any help is appreciated.
Informations you provided are too few, so I can't give any useful suggestions.
It seems your Envelope Analysis of Cadence Spectre can converge without failure.

Most probably you might have some mistakes in treating results of Envelope Analysis of Cadence Spectre.

Do you correctly treat results of Envelope Analysis of Cadence Spectre ?
For example, do you correctly understand "envlp_td" and "envlp_fd" ?

You had better set "strobeperiod" if you use Envelope Analysis of Cadence Spectre to evaluate ACPR.
Back to top
 
« Last Edit: Jan 22nd, 2010, 3:50am by pancho_hideboo »  
View Profile WWW Top+Secret Top+Secret   IP Logged
aaron_do
Senior Fellow
******
Offline



Posts: 1398

Re: PSD from envelope following analysis
Reply #6 - Jan 22nd, 2010, 5:41am
 
Quote:
Do you correctly treat results of Envelope Analysis of Cadence Spectre ?
For example, do you correctly understand "envlp_td" and "envlp_fd" ?


this seems to be what i'm missing. I'll go back and do some more reading to see if I can figure out my misunderstanding...btw thanks for showing your plots


thanks,
Aaron
Back to top
 
 

there is no energy in matter other than that received from the environment - Nikola Tesla
View Profile   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2020 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.