通常我使用 pmtm 计算信号的频谱:
signal = rand(1000,1);
NW = 4;
Fr = 1:50;
Fs = 200;
[p, fr] = pmtm( signal, NW, Fr, Fs);
但是,我正在寻找一种对其进行矢量化的方法,以便我可以同时计算多个光谱。我试过了:
signal = rand(1000,10); %<--- notice I have 10 columns instead of 1
NW = 4;
Fr = 1:50;
Fs = 200;
[p, fr] = pmtm( signal, NW, Fr, Fs);
但它会产生一个错误,并不能真正告诉我我做错了什么。我知道我可以将调用包装pmtm
在一个循环中。
这是错误:
错误使用 .* 矩阵尺寸必须一致。
pmtm>mtm_spectrum 中的错误(第 231 行)[Xx,w] = computeDFT(E(:,1:k).*x(:,ones(1,k)),nfft,Fs);
pmtm 中的错误(第 142 行)[S,k,w] = mtm_spectrum(x,params);
这让我怀疑没有一种矢量化的方式来实现我想要的。我希望这里有人知道如何做到这一点。