clear %清理右侧工作区窗口的内存变量
clc %清除命令行窗口的内容
close all
%载入数据
load matlab.mat
% % 读取txt的数据
% adc_data = dlmread('E:\Data\adc_data_0.txt');
% % 将行转换成列
% a = transpose(adc_data);
data_length = length(a);
sample_quantity = 16; %可设置为一次采样32、64等数据
sample_time = fix(data_length/sample_quantity); %获取采样的次数
for i = 1:sample_time
%取出每个样本的64个数据
a1_n = ['tmp',num2str(i)] ;
eval([a1_n,'= a((sample_quantity*(i-1)+1):sample_quantity*(i));']);
%求15个样本中,每个样本的标准差
c = ['std1(',num2str(i),')'] ;
eval([c,'= std(',a1_n,',1);']);
%求64个数据的均值
aver1_n(i) = eval(['mean(',a1_n,')']) ;
end
%求全部15个样本均值的标准差
averge_std = std(aver1_n,1);
%求总的1000个随机变量的标准差及 其中心极限定理的标准差
std_datas = std(a,1);
std_datas_n = std(a,1)/sqrt(sample_quantity);
% 绘制直方图并进行拟合
histfit(a);
hold on;
histfit(aver1_n);
% Plot总数据的标准差
hold on;
high_sigma_a = 1 :100;
for i = 1:100
sigma_a(i) = mean(a)+std_datas;
end
plot(sigma_a,high_sigma_a,'LineWidth',2);
% Plot均值样本的标准差
hold on;
high_sigma_a_average = 1 :20;
for i = 1:20
sigma_a_average(i) = mean(aver1_n)+std(aver1_n,1);
end
plot(sigma_a_average,high_sigma_a_average,'LineWidth',2);
使用中心极限定理来分析ADC采样样本均值的σ
于 2022-03-02 22:46:34 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)