Why the length of power spectrum is fixed at 4096 when the signal's length varies ?

9 vues (au cours des 30 derniers jours)
I was using pspectrum function to obtain the power spectrum of time series signals. However, I find that when I set different length of time series signal, the power spectrum return by the pspectrum function has fixed length 4096. I want to konw what underlying mechanism is causing this result ?
diffSignalLengths = 50:50:5000; % different signal length for experiment
Fs = 3e3; % sampling frequency
lenPS = zeros(numel(diffSignalLengths),1);
for ii = 1:numel(diffSignalLengths)
x = rand(diffSignalLengths(ii),1);
P = pspectrum(x,Fs);
lenPS(ii) = length(P);
end
disp(all(lenPS == 4096))
1

Réponse acceptée

Mathieu NOE
Mathieu NOE le 12 Juin 2025
Déplacé(e) : Walter Roberson le 13 Juin 2025
hello
in "auto" mode (i.e when you don't specify the frequency resoltion) , the fft is done with 4096
this is visible in the pspectrum code :
if isempty(opts.FrequencyResolution)
% Auto mode
Npoints = uint32(4096);
else
% Set Npoints to achieve desired resolution
fspan = 4*Fs;
Npoints = uint32((1+fspan/opts.FrequencyResolution(1)));
end
  2 commentaires
Chuguang Pan
Chuguang Pan le 12 Juin 2025
Déplacé(e) : Walter Roberson le 13 Juin 2025
@Mathieu NOE. Thanks for your answer.
Mathieu NOE
Mathieu NOE le 12 Juin 2025
Déplacé(e) : Walter Roberson le 13 Juin 2025
my pleasure !

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by