File Exchange

image thumbnail

Computes the Total Harmonic Distortion (THD) of a signal

version 1.0 (2.72 KB) by

Useful in power systems and audio systems



View License

function [ THD, ph, amp ] = compute_THD( t,x, freq )

Written by Dr. Yoash Levron
February 2013.

Computes the Total-Harmonic-Distortion (THD)
of a signal x(t). The amplitude and phase of the basic harmonic are also computed. These values are typically useful in power systems, audio signal processing, and other related fields.

The function computes the basic harmonic
of the signal, in the form:
x(t) = amp*cos(w*t - ph) + (higher Harmonics)
where : w = 2*pi*freq
so 'amp' and 'ph' are the phase and amplitude
of the basic harmonic.
DC offset does not affect THD.

t - [sec] time vector. (should be periodical with basic harmonic 'freq')
x - signal vector.
freq - [Hz] frequency of the basic harmonic.

THD - total harmonic distortion (the scale is 1 = 100%).
ph - [rad] phase of the basic harmonic.
amp - Amplitude of the basic harmonic.

Comments and Ratings (5)

THD = 0.0375
This number was the function result for fundamental frequency without any distortion!!!

jing zhang

I do have a common question regarding the distortion of a product.
In the technical paper of the product is written the following:

Distortion: less than 0.08% (at 1 kHz, reference level)

So neither the reference level nor the gain Setting is given. Assuming that the gain is 1, is there a plausible way to calculate the reference level from the given data.

PS: Sampling rate is 48 kHz

Thank you in advance for answering!!


Limory (view profile)

MATLAB Release
MATLAB 7.2 (R2006a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today