Why the length of power spectrum is fixed at 4096 when the signal's length varies ?
    8 views (last 30 days)
  
       Show older comments
    
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))
0 Comments
Accepted Answer
  Mathieu NOE
      
 on 12 Jun 2025
        
      Moved: Walter Roberson
      
      
 on 13 Jun 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 Comments
More Answers (0)
See Also
Categories
				Find more on Spectral Measurements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
