Power spectral density of filter output due to roundoff noise
hpsd = noisepsd(sysobj,L)
hpsd = noisepsd(sysobj,L,param1,value1,param2,value2,...)
hpsd = noisepsd(sysobj,L,opts)
noisepsd(sysobj,...)
hpsd = noisepsd(sysobj,L)
computes
the power spectral density (PSD) at the output of filter System
object™, sysobj
,
occurring because of roundoff noise. This noise is produced by quantization
errors within the filter. L
is the number of trials
used to compute the average. The PSD is computed from the average
over the L
trials. The more trials you specify,
the better the estimate, but at the expense of longer computation
time. When you do not explicitly specify L
, the
default is 10 trials.
hpsd
is a psd
data object.
To extract the PSD vector (the data from the PSD) from hpsd
,
enter
get(hpsd,'data')
at the prompt. Plot the PSD data with plot(hpsd)
.
The average power of the output noise (the integral of the PSD) can
be computed with avgpower
, a method of dspdata
objects:
avgpwr = avgpower(hpsd).
hpsd = noisepsd(sysobj,L,param1,value1,param2,value2,...)
where sysobj
is
a filter System
object, specifies optional parameters via propertyname/propertyvalue
pairs. Valid psd
object property values are:
Property Name  Default Value  Description and Valid Entries 


 Specify the number of FFT points to use to calculate the PSD. 

 Determine whether to use normalized frequency. Enter
a logical value of 

 Specify the sampling frequency to use when you set 

 Specify how


 Shift the zerofrequency component to the center of a twosided spectrum.

Arithmetic  ARITH  Analyze the filter System
object, based on the arithmetic
specified in the ARITH input. ARITH can
be set to double , single , or fixed .
The analysis tool assumes a doubleprecision filter when the arithmetic
input is not specified and the filter System
object is in an unlocked
state. 
If the spectrum data you specify is calculated over half the Nyquist interval and you do not specify a corresponding frequency vector, the default frequency vector assumes that the number of points in the whole FFT was even. Also, the plot option to convert to a whole or twosided spectrum assumes the original whole FFT length is even.
noisepsd
requires knowledge of the input
data type. Analysis cannot be performed if the input data type is
not available. If you do not specify the Arithmetic
parameter,
i.e., use the syntax [h,w] = noisepsd(sysobj)
,
then the following rules apply to this method:
The System
object state is Unlocked
— noisepsd
performs
doubleprecision analysis.
The System
object state is Locked
— noisepsd
performs
analysis based on the locked input data type.
If you do specify the Arithmetic
parameter,
i.e., use the syntax [h,w] = noisepsd(sysobj,'Arithmetic',
ARITH)
, review the following rules for this method. Which
rule applies depends on the value you set for the Arithmetic
parameter.
Value  System Object State  Rule 

ARITH = 'double'  Unlocked  noisepsd performs doubleprecision analysis. 
Locked  noisepsd performs doubleprecision analysis.  
ARITH = 'single'  Unlocked  noisepsd performs singleprecision analysis. 
Locked  noisepsd performs singleprecision analysis.  
ARITH = 'fixed'  Unlocked  noisepsd produces an error because the fixedpoint
input data type is unknown. 
Locked  When the input data type is double or single, then noisepsd produces
an error because since the fixedpoint input data type is unknown.  
When the input data is of fixedpoint type, noisepsd performs
analysis based on the locked input data type. 
The following Filter System objects are supported by this analysis function:
hpsd = noisepsd(sysobj,L,opts)
uses
an options object, opts
, to specify the optional
input arguments. This specification is not made using propertyvalue
pairs in the command. Use opts = noisepsdopts(sysobj)
to
create the object. opts
then has the noisepsd
settings
from sysobj
. After creating opts
,
you change the property values before calling noisepsd
:
set(opts,'fs',48e3); % Set Fs to 48 kHz.
noisepsd(sysobj,...)
with
no output argument launches fvtool.
[1] McClellan, et al., ComputerBased Exercises for Signal Processing Using MATLAB 5. Upper Saddle River, N.J.: PrenticeHall, 1998.