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. |