(需要代码和pdf文档后台留言)
准备数据
input_signal = linspace(0, 10, 100); % 输入信号
output_signal = input_signal + 0.05*randn(size(input_signal)); % 输出信号 (带噪声)
生成输入信号和模拟输出信号。输入信号为0到10之间的均匀分布,输出信号在输入信号的基础上加上小量的随机噪声。
线性度计算
coefficients = polyfit(input_signal, output_signal, 1); % 线性拟合
fitted_signal = polyval(coefficients, input_signal);
linearity_error = output_signal - fitted_signal;
使用polyfit函数对输入和输出信号进行线性拟合,得到拟合信号。线性度误差为实际输出信号与拟合信号之间的差值。
灵敏度计算
sensitivity = coefficients(1);
灵敏度为线性拟合的斜率,即拟合多项式的第一个系数。
回程误差计算
input_signal_reverse = flip(input_signal);
output_signal_reverse = flip(output_signal);
hysteresis_error = output_signal - interp1(input_signal_reverse, output_signal_reverse, input_signal);
反向输入信号和输出信号,计算回程误差为实际输出信号与反向输出信号插值后的差值。
分辨力计算
resolution = min(diff(unique(output_signal)));
分辨力为输出信号中不同值的最小差值。
结果展示
使用图形显示线性度、线性度误差、回程误差和分辨力。