Matlab计算波形的总谐波失真--THD(附完整代码)

Posted 伤心兮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab计算波形的总谐波失真--THD(附完整代码)相关的知识,希望对你有一定的参考价值。

一、实现功能

        1、读取ADC采集的数字量,显示时域波形。

        2、计算波形总谐波失真。

二、代码

废话少说,直接上代码(博主使用的是Matlab 2014b):

%author:Meng
%date:2020/10/10
%name:THD calculate
clc;
clear;
pathname = 'F:\\THD_test\\test\\123.txt';
data=load(pathname);        %读取数据为txt文件格式    此文件为ADC采集数字量
x = data;
Fs = 100000;                %采样率设置  和实际采样率需一样
t = 0:1/Fs:1;               %时间间隔
figure(1);
plot(t(1:500),x(1:500));    %画出波形时域图
NumHarmonics = 5;           %谐波个数,保留的谐波个数
[thd_db,harmpow,harmfreq] = thd(x,Fs,NumHarmonics);     %计算thd   单位为dB        
percent_thd = 100*(10^(thd_db/20));                     %转换为百分比
T = table(harmfreq,harmpow,'VariableNames','Frequency','Power');
figure(2);
thd(x, Fs, NumHarmonics);                               %画出谐波图
display( percent_thd);                                  %打印最终总谐波失真(百分比)

三、结果

图3-1 时域波形图

图3-2 THD图形

图3-3 THD结果(最终为%形式)

以上是关于Matlab计算波形的总谐波失真--THD(附完整代码)的主要内容,如果未能解决你的问题,请参考以下文章

Matlab计算波形的总谐波失真--THD(附完整代码)

C语言总谐波失真(THD)实现,从理论到应用分析改进详解

你还分不清谐波失真总谐波失真总谐波失真加噪声吗?

从Matlab谐波失真仿真到C语言谐波失真应用

电能仿真基于matlab电能质量谐波波形仿真含Matlab源码 2263期

ADC选型关注的参数