MATLAB随机信号统计特征

% 功能:1. 生成一标准差为1,均值为0,成正太分布(高斯分布)的随机噪声,
%       2. 求其概率密度函数p,均值mu,方差sigmax2,标准差sigmax,均方值x2_,有效值RMS,
%       3. 满足高斯分布的随机噪声,采用示波器观察时,用峰峰值估计标准差;对零均值为0时,标准差=有效值
% 对零均值的噪声,均方值 = 方差+均值的平方=方差,
% 又有效值= sqrt(均方值),标准差= sqrt(方差),so 有效值=标准差

% 各物理意义如下:
% 方差:反映了随机噪声的起伏程度
% 均方值:反映了随机噪声的归一化功率(随机电压或电流在1欧姆电阻上消耗的功率,单位 V2 or A2% 编辑者:lily
% 日期:2019,4,1

clc;
clear;
close all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mu = 0; % 均值
sigmax = 1; % 标准差
m =1;
n =1e4;
x = normrnd(mu,sigmax,m,n);% 生成均值mu,标准差为sigmax,m行n列的正态分布的随机噪声
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 求均值mu
n = length(x);
mu = (1/n).*sum(x);
% mu = mean(x);%调用MATLAB工具

% 求方差sigmax2
sigmax2 = (1/n).*sum((x-mu).^2);
% sigmax2 = var(x);%调用MATLAB工具

% 求标准差sigmax
sigmax = sqrt(sigmax2);

% 求均方值
x2_ = (1/n)*sum(x.^2);

% 求有效值
RMS = sqrt(x2_ );

% 求概率密度函数P
P = 1/(sigmax2*sqrt(2*pi)).*exp(-(x-mu).^2/(2*sigmax2));%公式
p = normpdf(x);% 调用MATLAB工具
subplot(2,1,1);plot(x,P);title('公式');
subplot(2,1,2);plot(x,p);title('调用MATLAB工具');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 验证:当x = 均值mu时,p有最大值 = 1/(sigmax2*sqrt(2*pi))
p_max = 1/(sigmax2*sqrt(2*pi));%最大值
max(P);                        %最大值,与上式相等
[m,index]=max(P);              % 找到p最大值时的索引,m最大值,index索引号
x_index = x(index);            % 找到index对应的x值

str=['x = ' num2str(x_index) ' 对应的最大值p =  ' num2str(m)];
disp(str);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 采用示波器观察时,用峰峰值估计标准差;对零均值为0时,标准差=有效值
Vpp = max(x)-min(x);
% Vpp =range(x);        % 调用MATLAB工具
sigmax_ = (Vpp)/6.6;    % 估计标准差

fprintf('Vpp估计标准差sigmax_ = %s \n 计算标准差sigmax = %d', sigmax_, sigmax);

猜你喜欢

转载自blog.csdn.net/Heart_Sea/article/details/88959692
今日推荐