我有一张长桌子,上面有两行,分别对应于某些音乐信号的ft峰值的幅度和频率。我想找出不在任何音符频率范围内的峰值。
我有另一个充满了有效频率的表。我尝试使用ismembertol,但是“ A和B必须都是表,或者都是时间表”。过来。删除数据是另一个问题,因为我所看到的唯一示例是来自您知道数据的行和列的情况。
[x,Fs]=audioread('sweeper.wav');
x = .95.*x./max(abs(x));
Z = fft(x);
[pks,locs]=findpeaks(abs(Z),'MinPeakDistance',100,'MinPeakHeight',0.015);
f=440;
F=table(f);
for n=-57:50
f=440*(2^(n/12));
Tadd=table(f);
F=[F;Tadd];
end
L=[pks,locs];
L=L(:,ismembertol(L,F,10));
我希望L是2列的表,其中locs列仅包含也在F中的元素。要清楚一点,如果locs中的数据无效,我希望删除该行。