You are here : matlabSignal Processingdpss

dpss() - Signal Processing

dps_seq = dpss(seq_length,time_halfbandwidth) returns
the first round(2*time_halfbandwidth) discrete
prolate spheroidal (DPSS), or Slepian sequences of length seq_length. dps_seq is
a matrix with seq_length rows and round(2*time_halfbandwidth) columns. time_halfbandwidth must
be strictly less than seq_length/2. [dps_seq,lambda] = dpss(seq_length,time_halfbandwidth) returns
the frequency-domain energy concentration ratios of the column vectors
in dps_seq. The ratios represent the amount of
energy in the passband [–W,W]
to the total energy from [–Fs/2,Fs/2],
where Fs is the sampling
frequency. lambda is a column vector equal in length
to the number of Slepian sequences.[...] = dpss(seq_length,time_halfbandwidth,num_seq) returns
the first num_seq Slepian sequences with time half
bandwidth product time_halfbandwidth ordered by
their energy concentration ratios. If num_seq is
a two-element vector, the returned Slepian sequences range from num_seq(1) to num_seq(2).[...] = dpss(seq_length,time_halfbandwidth,'interp_method') uses
interpolation to compute the DPSSs from a user-created database of
DPSSs. Create the database of DPSSs with dpsssave and
ensure that the resulting file, dpss.mat, is in
the MATLAB® search path. Valid options for 'interp_method' are 'spline' and 'linear'.
The interpolation method uses the Slepian sequences in the database
with time half bandwidth product time_halfbandwidth and
length closest to seq_length.[...] = dpss(...,Ni) interpolates from
DPSSs of length Ni in the database dpss.mat.[...] = dpss(...,'trace') prints the method
used to compute the DPSSs in the command window. Possible methods
include: direct, spline interpolation, and linear interpolation.


Syntax

dps_seq = dpss(seq_length,time_halfbandwidth)[dps_seq,lambda] = dpss(seq_length,time_halfbandwidth)[...] = dpss(seq_length,time_halfbandwidth,num_seq)[...] = dpss(seq_length,time_halfbandwidth,'interp_method')[...] = dpss(...,Ni)[...] = dpss(...,'trace')


Example

Generate a Set of Slepian SequencesOpen This Example
Construct the first four discrete prolate spheroidal sequences of length 512. Specify a time half bandwidth product of 2.5. Plot the sequences and find the concentration ratios.
seq_length = 512;
time_halfbandwidth = 2.5;
num_seq = 2*(2.5)-1;
[dps_seq,lambda] = dpss(seq_length,time_halfbandwidth,num_seq);

plot(dps_seq)
title('Slepian Sequences, N = 512, NW = 2.5')
axis([0 512 -0.15 0.15])
legend('1st','2nd','3rd','4th')
concentration_ratios = lambda'

concentration_ratios =

    1.0000    0.9998    0.9962    0.9521


Output / Return Value


Limitations


Alternatives / See Also


Reference