Matlab计算波形的总谐波失真--THD(附完整代码)
Posted 伤心兮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab计算波形的总谐波失真--THD(附完整代码)相关的知识,希望对你有一定的参考价值。
一、实现功能
1、读取ADC采集的数字量,显示时域波形。
2、计算波形总谐波失真。
二、代码
废话少说,直接上代码(博主使用的是Matlab 2014b):
%author:Meng
%date:2020/10/10
%mane: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); %打印最终总谐波失真(百分比)
二、结果
图2-1 时域波形图
图2-2 THD图形
图2-3 THD结果(最终为%形式)
以上是关于Matlab计算波形的总谐波失真--THD(附完整代码)的主要内容,如果未能解决你的问题,请参考以下文章