matlab生成一段计算正弦波形的THD结果代码
时间: 2023-11-28 13:29:02 浏览: 100
以下是一个生成计算正弦波形的THD结果的 MATLAB 代码示例:
```matlab
% 生成正弦波
fs = 10000; % 采样率为10kHz
f = 50; % 正弦波频率为50Hz
t = 0:1/fs:1-1/fs; % 生成1秒的时间序列
x = sin(2*pi*f*t); % 生成正弦波信号
% 计算THD结果
N = length(x);
X = fft(x); % 对信号进行FFT变换
X(1) = 0; % 去除直流分量
f_bins = 1:floor(N/2);
f_harm = f_bins * f;
THD = 100 * sqrt(sum(abs(X(f_bins).^2))/abs(X(1))^2); % 计算THD
% 输出THD结果
fprintf('THD = %.3f%%\n', THD);
```
这段代码首先生成一个频率为50Hz的正弦波信号,并对其进行FFT变换,然后计算其THD结果,并输出THD值。需要注意的是,THD值的计算需要去除信号的直流分量,并且只考虑信号的谐波分量。
阅读全文