已经对ADC的输出数据做了FFT变换,但以下代码不明白其意思(代码为matlable语句),请解释下以下非注释项的意思,谢谢!
%find harmonic freq and power components in the FFT spectrum
for har_num=1:10
%input tones greater than fSAMPLE are aliased back into the spectrum
tone=rem((har_num*(fin-1)+1)/N,1);
if tone>0.5
%input tones greater than 0.5*fSAMPLE(after aliasing) are reflected
tone=1-tone;
end
Fh=[Fh tone];
%for this procedure to work,ensure the folded back high order harmonics
%do not overlap
%with DC or signal or lower order harmonics
fprintf('tone*N=%gdB ',round(tone*N));
if round(tone*N)>spanh
har_peak=max(spectP(round(tone*N)-spanh:round(tone*N)+spanh));
har_bin=find(spectP(round(tone*N)-spanh:round(tone*N)+spanh)==har_peak);
elseif spanh<round(tone*N)
har_peak=max(spectP(spanh-round(tone*N):round(tone*N)+spanh));
har_bin=find(spectP(spanh-round(tone*N):round(tone*N)+spanh)==har_peak);
else
har_bin=spanh;
end
har_bin=har_bin+round(tone*N)-spanh-1; %har_peak替换了tone 0702
if har_bin>1
Ph=[Ph sum(spectP(har_bin-1:har_bin+1))];
elseif har_bin==1
Ph=[Ph sum(spectP(1:har_bin+1))];
else
Ph=[Ph sum(spectP(1))];
end
if har_num==1
fprintf('har_bin=%g \n',har_bin);
end
end