⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spectra.m

📁 自适应滤波原理_西蒙.赫金_Matlab_源代码 希望能够对学习自适应滤波技术的朋友有所帮助
💻 M
字号:
 function [spec_dB,freq] = spectra(x,blksiz,Fs);
%-----------------------------------------------------
%  [b,freq] = spectra(x, blksiz,Fs);
%  Spectrum plot
%  Inputs
%      x - time domain signal
%      blksize - size of FFT to use (optional)
%      Rs - sampling rate
%------------------------------------------------------

 if (nargin<2) 
    blksiz = 1024;
 end
 if (nargin<3) 
    Fs = 1;
 end
 
 %--- initialize parameters ---
 Nblks = ceil(length(x)/blksiz);
 spec  = zeros(blksiz,1);
 xx    = zeros(Nblks*blksiz,1);
 xx(1:length(x)) = x;
  
 %--- compute average ---------
 for i=1:Nblks
     xblk = xx(1+(i-1)*blksiz:i*blksiz);
      xblk = xblk .* hanning(length(xblk));
     x_spec = fft(xx(1+(i-1)*blksiz:i*blksiz),blksiz);
     spec = spec + abs(fftshift(x_spec)).^2;
 end
  
 spec = spec /Nblks/blksiz;
 
 %--- Plot result ------------
%   if (max(spec)~=0)
%      spec = spec/max(spec);                  %--- normalize peak to 0 dB
%  end
 spec_dB = 10*log10(spec+eps)-10*log10(Fs/blksiz) - 10*log10(blksiz);
 freq = [-blksiz/2:blksiz/2-1] / blksiz *Fs;
 plot(freq,spec_dB)
 xlabel('Frequency (Hz)')
 ylabel('Spectrum (dB/Hz)')
 grid
 b= spec;
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -