The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design >> Analog Design >> confuse about harmonic calculation in matlab
https://designers-guide.org/forum/YaBB.pl?num=1363523103

Message started by lhlbluesky_lhl on Mar 17th, 2013, 5:25am

Title: confuse about harmonic calculation in matlab
Post by lhlbluesky_lhl on Mar 17th, 2013, 5:25am

in dynamic test code of adc parameter, there is a paragraph to calculate the harmonic distortion, just as follows:

numpt=1024; %sample points
spanh=2;
%Find harmonic frequencies 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)/numpt,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
har_peak=max(spectP(round(tone*numpt)-spanh:round(tone*numpt)+spanh));
har_bin=find(spectP(round(tone*numpt-spanh):round(tone*numpt)+spanh)==har_peak)
har_bin=har_bin+round(tone*numpt)-spanh-1;
Ph=[Ph sum(spectP(har_bin-1:har_bin+1))];
end

1, why 'spanh=2'? can it be other value?
2, about 'har_num*(fin-1)+1' in the second red color line, what is the meaning of 'fin-1' and '+1'?
3, in the third red color line, why 'round(tone*numpt)' is added again, and what is the meaning of '-spanh-1'?

thanks.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.