Confusing THD value for a Signal without Harmonics

3 ビュー (過去 30 日間)
weinan
weinan 2024 年 3 月 5 日
コメント済み: weinan 2024 年 3 月 6 日
When I use the offical example 'Determine THD for a Signal with Two Harmonics', I change the reference signal without harmonics and change the fundamental frequency from 100Hz to 8Hz, shown as follows:
t = 0:0.001:1-0.001;
x = 2*cos(2*pi*8*t);
Next, obtain the total harmonic distortion explicitly and using thd
r = thd(x,1000,10)
which yields r = -58.9845 dB, almost 11% THD rate!
Why a simple sinusoidal wave can cause such a THD rate using thd function?

採用された回答

David Goodmanson
David Goodmanson 2024 年 3 月 5 日
編集済み: David Goodmanson 2024 年 3 月 5 日
Hi weinan,
MODIFIED
The thd process widens the peaks, as shown by the plot produced when you invoke thd. When the frequency is as small as 8 Hz, the left hand side of the peak is cut off a 0 frequency (first plot) and the code picks the second peak at the nonpeak spot that you see. If you raise the frequency to, say, 20 Hz (second plot), all the peak is included in the plot and and the resulting thd is -296.41 dB which is small by any standard.
  3 件のコメント
David Goodmanson
David Goodmanson 2024 年 3 月 5 日
Hi weinan, after I understood the issue I went back and modified the answer.
weinan
weinan 2024 年 3 月 6 日
Thx, David. From your point of view, it is due to the fact that the thd func somehow cuts off the fundamental and picks the wrong second harmonics when the fundamental frequency is selected small, which, in result, causing a relatively big thd rate.
Thx again!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpectral Measurements についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by