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

📄 invspecgram.m

📁 这里面包含源数多于传感器数的文章和相关源代码。
💻 M
字号:
function res = invspecgram(B,NFFT,Fs,WINDOW,NOVERLAP)
% res = invspecgram(B,NFFT,Fs,WINDOW,NOVERLAP)
% All parameters are like specgram...
% Written by Niels Henrik Pontoppidan


if ((nargin<2)|isempty(NFFT))
  NFFT=256;
end
if ((nargin<3)|isempty(Fs))
  Fs=2;
end
if ((nargin<4)|isempty(WINDOW))
  WINDOW=hanning(NFFT);
end
if ((nargin<5)|isempty(NOVERLAP))
  NOVERLAP=length(WINDOW)/2;
end
if ((nargin<6)|isempty(NR))
  NR=0;
end

if length(NFFT)==1
[N,M] = size(B);
Next=NFFT-N;
ext=conj(B(Next+1:-1:2,:));

Bfull = [B;ext];
%[size(Bfull) NOVERLAP]
idft = real(ifft(Bfull));

WL=length(WINDOW);

idft=idft(1:WL,:);

W=repmat(WINDOW,1,M);

SPACING=WL-NOVERLAP;

IDFT=zeros(M*SPACING+NOVERLAP,1);
Wind=IDFT;

for m=1:M
	idx=( (m-1)*SPACING+(1:WL))';
	IDFT(idx)=IDFT(idx)+idft(:,m);
	Wind(idx)=Wind(idx)+W(:,m);
end
Wind(1:round(WL/2))=max(1,Wind(1:round(WL/2)));
Wind(end-round(WL/2):end)=max(1,Wind(end-round(WL/2):end));
res=IDFT./Wind;
else
end

  

⌨️ 快捷键说明

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