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