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结果(最终为%形式)

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伤心兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值