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

34 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Mathieu NOE
Mathieu NOE am 12 Jun. 2025 um 13:59
Verschoben: Walter Roberson am 13 Jun. 2025 um 0:01
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

Weitere Antworten (0)

Produkte


Version

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by