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

3 次查看(过去 30 天)
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

采纳的回答

Mathieu NOE
Mathieu NOE 2025-6-12
移动:Walter Roberson 2025-6-13
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

产品


版本

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by