Ensemble Average(系综平均)(集平均)

article/2025/9/21 21:00:51
  1. 什么是系综平均?
    下图(来自知乎:卖艺的小青年)中集平均实际就是系综平均,按照随机信号分析的知识来分析,我们可以把这一系列函数看成一个随机信号,取定一个时间,我们就得到一个随机变量,而系综平均实际上就是某一时间点随机变量的期望。(时间平均当然就是某一个样本函数的均值,这里我们不予讨论)。
    图片来自:https://zhuanlan.zhihu.com/p/267139700,图片来自知乎:卖艺的小青年
  2. 系综平均什么时候和时间平均相等?
    首先说明这个问题的意义
    在现实中,我们不可能将一个系统复制无数遍进行试验求集平均,但是我们却可以进行长时间的观察,求出时间平均,这时,如果集平均和时间平均相等,我们就可以简单的将集平均求出。
    然后,我们要说明什么是平稳随机过程:
    下图(图片来自《随机信号分析(第四版)》作者:李晓峰 周宁 傅志中 李在铭)为严格随机平稳过程的定义,很简单,在我看来,就是概率密度函数不随时间变化,条件严格,更多用于理论研究,一般所说的 平稳性 都是指广义随机平稳。
    图片来自《随机信号分析(第四版)》作者:李晓峰 周宁 傅志中 李在铭
    下面是广义平稳随机过程的定义,只要求一二阶的矩具有移动不变性即可,条件较为宽松,更多用于实际研究:
    图片来自《随机信号分析(第四版)》作者:李晓峰 周宁 傅志中 李在铭图片来自《随机信号分析(第四版)》作者:李晓峰 周宁 傅志中 李在铭
    下图给出了广义平稳信号满足均值具有各态历经性的条件,仅仅给出定理,证明请自行查阅。
    图片来自《随机信号分析(第四版)》作者:李晓峰 周宁 傅志中 李在铭
    最后,我们来说明集平均和时间平均相等的条件,只要实信号具有各态历经性,我们就可以说他的集平均和时间平均相等。
    在这里插入图片描述
  3. 系综平均系统/集合平均滤波器
    在最前面简单介绍以下原理,如果我们有多个添加了噪声的样本信号,而这个信号又具有各态历经性的话,我们完全可以对多个样本进行集合平均,达到滤波的目的。下面我们从信噪比的角度进行分析为什么集合平均可以提高信噪比:
    假设我们有n个样本函数,均添加了高斯白噪声,设原本的信号为 S S S,平均功率为 P P P,设添加的高斯白噪声信号分别为 N i , i = 1 , 2 , 3 , . . . n N_i,i=1,2,3,...n Ni,i=1,2,3,...n,白噪声方差为 σ \sigma σ,那么我们可以得到添加了噪声信号的信噪比 L 1 = P σ 2 L_1=\frac{P}{\sigma^2} L1=σ2P(按我的理解,高斯白噪声均值为0,所以可用其方差作为平均功率),我们将各个添加了高斯白噪声的信号相加再除以n,也就是进行集合平均,得到以下公式: L 2 = n P σ 2 L_2=\frac{nP}{\sigma^2} L2=σ2nP(推导仅涉及简单的概率论知识),显然,随着 n n n的增大,信噪比也在增大,这说明集合平均滤波起到了作用。
    (1).构建方式
    使用FIFO方式,采多个周期,作为“多个信号”。
    原因在于当我们实际滤波时,都是对一个信号进行采样,不太可能取得多个信号进行集合平均, 依据各态历经性,我们可以仅仅使用使用一个周期样本函数的周期相加实现多个样本函数的同时相加(由于笔者目前刚刚开始学习随机信号分析,所以关于各态历经性的说明更偏向于定性的,不准确的说明
    下图引自《Ensemble Averaging Filter for Noise Reduction》

在这里插入图片描述(下图引自《随机信号分析(第四版)》作者:李晓峰 周宁 傅志中 李在铭)
在这里插入图片描述
(2).理论推导:首先以上算法是基于以下算式
y [ n ] = ∑ i = − k k x [ n − k N ] 2 k + 1 k → ∞ y[n]=\frac{\sum_{i=-k}^{k}x[n-kN]}{2k+1}k\rightarrow\infty y[n]=2k+1i=kkx[nkN]k
即为 y [ n ] = x [ n ] ∗ ∑ i = − k k δ ( n − k N ) 2 k + 1 , k → ∞ y[n]=\frac{x[n]\ast\sum_{i=-k}^{k}\delta(n-kN)}{2k+1},k\rightarrow\infty y[n]=2k+1x[n]i=kkδ(nkN),k
我们对其进行DTFT得到 H ( e j ω ) = 2 π ( 2 k + 1 ) N ∑ i = − ∞ + ∞ δ ( ω − 2 π i N ) , k → ∞ H(e^{j\omega})=\frac{2\pi}{(2k+1)N}\sum_{i=-\infty}^{+\infty}\delta(\omega-\frac{2\pi i}{N}),k\rightarrow\infty H(ejω)=(2k+1)N2πi=+δ(ωN2πi),k
对其进行逆DTFT我们得到 h ( n ) = ∑ i = − k k δ [ n − k N ] 2 k + 1 , k → ∞ h(n)=\frac{\sum_{i=-k}^{k}\delta[n-kN]}{2k+1},k\rightarrow\infty h(n)=2k+1i=kkδ[nkN],k
或者不进行DTFT直接取 y [ n ] = x [ n ] ∗ ∑ i = − k k δ ( ω − k N ) 2 k + 1 , k → ∞ y[n]=\frac{x[n]\ast\sum_{i=-k}^{k}\delta(\omega-kN)}{2k+1},k\rightarrow\infty y[n]=2k+1x[n]i=kkδ(ωkN),k,中的 h [ n ] h[n] h[n]即可。
下面使用matlab对我们的理论分析进行验证。

(3).Matlab代码:

%本代码用于验证ensemble average的滤波效果,输出上分为以下四部分
%1.冲激响应 2.频率响应 3.输入与输出对比
Fs=16384;%采样频率
Perd=100;%输入信号每周期点数,实际上就是N(离散公式中的周期)
Fc=Fs/Perd;%输入信号的频率
Length=2^20;%序列长度
x=1:Length;
S=sin(x*2*pi/Perd);%生成原始信号
S_n=S+0.15*randn(size(x));%生成添加了高斯白噪声的信号
figure('NumberTitle', 'off', 'Name', '生成的带噪声信号');
stem(1:Perd,S_n(1:Perd),'.');
ylim([-1.5 1.5]);%% 以下代码进行集合平均
S_ea=zeros(1,Perd);
for i=1:floor(Length/Perd)S_ea=S_ea+S_n((i-1)*Perd+1:i*Perd);
end
S_ea=S_ea./i;
figure('Name','经集合滤波后的信号');
stem(1:Perd,S_ea(1:Perd),'.');
ylim([-1.5 1.5]);
%% %% 上面的操作实际上就是对输入信号进行了时移,相加,加权,从而有
b=zeros(1,i*Perd);a=i;%传递函数分子分母。
for j=1:ib((j-1)*Perd+1)=1; 
end%将b休整为想要的系数
[h1,w1]=freqz(b,a);
figure('Name','集合平均的频响');
plot(w1,abs(h1));
xlabel('\omega/\pi');
set(gca,'XTick',0:pi/4:pi);set(gca,'XTicklabel',{'0','\pi/4','\pi/2','3\pi/4','\pi'})
xlim([0 pi]);
%% 根据多次的结果,可以发现,当Perd逐渐趋于0时,频响函数逐渐在0处逐渐趋于1在其它处逐渐趋于零,这与我们的理论计算相符合。原因在于除0外,其他地方的数值基本都被抵消,这里再提供一种思路,冲激函数串的傅里叶变换仍旧是冲激函数串,可能和这个有关。(k趋于0,周期趋于无穷,从而就在0处有值,别处在无穷远处了。)%% 直接使用Matlab自带的函数impz,就直接处理就行
[h2,w2]=impz(b,a,4000,Fs);%求出单位冲击响应,每个w2对应1/Fs秒
figure('Name','集合平均的单位冲激响应');
stem(w2/Fs,abs(h2),'.');
ylim([0 h2(1)*1.3]);
xlabel('t/s');
% set(gca,'XTick',0:pi/4:pi);set(gca,'XTicklabel',{'0','\pi/4','\pi/2','3\pi/4','\pi'});
%% 可以看到,结果中的冲激是周期的,这与我们预期一致

http://chatgpt.dhexx.cn/article/YEK1hRuX.shtml

相关文章

系综理论(Ensemble Theory)

本文参考[Pathria] Statistical Mechanics (3rd Ed.)里的思路整理了系综理论的一些基本知识。Pathria的书有较多繁复的计算,在此不详细给出,只希望对系综理论能形成一个宏观的认知。 1. 前言 给定一个系统的宏观态描述 ( N , V , E ) (N,V ,E) (N,V,E)…

经典系综理论

系综理论是统计力学的理论基础 本质上来说,统计热力学中只有一个问题,即给定能量$E$,如何分布在$N$个全同系统构成的系综上 --薛定谔 1.系综的定义 在下面的介绍中我们可以逐渐体会这句话的含义,此时我们暂且把这个定位我们解决的…

lammps教程:nve/nvt/npt系综设置方法

系综是指大量性质和结构完全相同的、处于各种运动状态的、各自独立的系统的集合。 在lammps模拟中,常用的系综有nve、nvt、npt三种系综,下面说说这三种系综的使用方法。 1. nve(微正则系综) nve系综保证系统中原子数量n、体系总…

数值分析(2)-多项式插值: 拉格朗日插值法

整理一下数值分析的笔记~ 目录: 1. 误差 2. 多项式插值与样条插值(THIS) 3. 函数逼近 4. 数值积分与数值微分 5. 线性方程组的直接解法 6. 线性方程组的迭代解法 7. 非线性方程求根 8. 特征值和特征向量的计算 9. 常微分方程初值问题的数值解 1. 拉格朗日基函数 定…

拉格朗日插值法求多项式系数 (附代码)

写在前面: 学了拉格朗日插值法之后发现大家都说可以在O(n^2)时间内得到多项式系数,但是没有找到代码,网上找了很多资料又因为我太弱了没能看懂,最后在emofunx学长的帮助下终于搞明白了。 由于太弱没能看懂的文章 引入 我们都知…

拉格朗日插值多项式的龙格现象

利用插值基函数可以很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为重要。但存在以下问题: 当插值节点增减时,计算要全部重新进行,甚为不便(当然现在我们有MATLAB,只需改变下参数…

拉格朗日多项式插值法

在数值分析中,拉格朗日常用于多项式插值。假定提供一组数据点[xi,yi],拉格朗日插值多项式就是由这些 数据的线性运算得到的。 其中基本的多项式有以下公式计算得到 注意 1.第一提供的xi应该是没有相同的,否则不能应用此算法 2.对于每一个xi&…

拉格朗日插值和求多项式系数

拉格朗日介绍 先说说拉格朗日是啥吧 首先 拉格朗日插值是给你 n1 个点 (x,y) 然后根据这n个点可以O(n^2)的求出多项式的系数。也就是解出这个多项式的答案。 假设给你一个多项式 ya0a1*xa2*x^2 然后给你3个解 (x1,y1)(x2,y2)(x3,y3)你第一个想法是怎么解?解方程啊…

数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

文章目录 摘要(必看)0 基础概念什么是插值插值用途什么是拟合插值和拟合的相同点插值和拟合的不同点 1 常用的基本插值方法1.1 多项式插值法1.1.1 拉格朗日多项式插值法多项式插值并不是次数越大越好(龙格现象)分段低次线性插值以…

数模--拉格朗日多项式插值、matlab实现

拉格朗日多项式公式: matlab中插入一个值的代码 function yhlagrange(x,y,xh) %定义拉格朗日插入函数 nlength(x); %统计x和xh的长度 mlength(xh); yhzeros(1,m); %构建一行m列的zero矩阵 c1ones(n-1,1); …

计算方法实验(一):拉格朗日插值多项式

拉格朗日插值数学原理 给定平面上 n 1 n 1 n1个不同的数据点 ( x k , f ( x k ) ) (x_{k},f(x_{k})) (xk​,f(xk​)), k 0 , 1 , ⋯ , n k 0,1,\cdots,n k0,1,⋯,n, x i ≠ x j x_{i} \neq x_{j} xi​​xj​, i ≠ j i \neq j i​j&…

拉格朗日插值多项式在MATLAB中的实现

拉格朗日插值多项式在MATLAB中的实现 Hi! 这是我的一个CSDN博客 例 以下给出了针对题(2)的使用方法 输入: 1.节点值 2.需要插值的原函数 对于题(2)需要设置参数为: xx [0,0.25,0.5,1];% The nodes(n…

lagrange插值法:求拉格朗日插值多项式matlab实现(内附代码及例题)

lagrange插值法:求拉格朗日插值多项式matlab实现(内附代码及例题) 关于拉格朗日插值法相关理论知识,在这里小编不在赘述,请不明白的小伙伴自行百度。小编只负责给出matlab源码。 **例题:**看下面例题(如图): matlab代码: %%%% 求拉格朗日多项式及基函…

拉格朗日插值算法分析

这几天一直研究拉格朗日多项式,今天将自己对拉格朗日多项式的理解写在这里,方便大家交流。 在数值分析中,拉格朗日常用于多项式插值。假定提供一组数据点[xi,yi],拉格朗日插值多项式就是由这些 数据的线性运算得到的。 其中基本…

拉格朗日(Lagrange)插值多项式

题目: 基本原理: 拉格朗日(Lagrange)插值多项式python实现: # encoding: utf-8 from symtable import Symbol X[0.4,0.5,0.6,0.7,0.8] Y[-0.9163,-0.6931,-0.5108,-0.3567,-0.2231] print(X,Y) Lfloat(0.0) x0.54 len…

使用拉格朗日多项式(Lagrangian polynomials)的插值法(python,数值积分)

第三十五篇 拉格朗日多项式插值 插值多项式 首先考虑一个函数的推导,该函数精准地通过一系列np离散数据点。虽然有无限多的函数具备这个条件,但我们将专注于最简单的一个,一个n阶多项式,其中n np−1。我们称这个函数为“插值多…

三点估算法 PERT计划评审技术

三点估算也称PERT法,在计算每项活动的工期时都要考虑三种可能性,计算最悲观的工 期、最可能的工期、最乐观的工期,然后再计算出该活动的期望工期,PERT法计算的是 期望工期. 用PERT法计算工期,我们必须记住下面三个公…

计划评审技术PERT和关键路径法CP

PERT是利用网络分析制定计划以及对计划予以评价的技术。它能协调整个计划的各道工序,合理安排人力、物力、时间和资金,加速计划的完成。PERT网络是一种类似流程圈的箭线圈。它描绘出项目包含的各种活动的先后次序,标明每项活动的时间或相关的…

PERT(计划评审技术,Program Evaluation an Review Technique)

如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭 PERT(计划评审技术,Program Evaluation an Review Technique) 的理论基础是假设项目持续时间以及整个项目完成时间是随机的,且服从某种概…

PERT网络分析法(计划评估和审查技术)

PERT网络分析法(计划评估和审查技术,Program Evaluation and Review Technique 什么是PERT网络分析? PERT(Program Evaluation and Review Technique)即计划评审技术,最早是由美国海军在计划和控制北极星导弹的研制时发展起来的。PERT技术使原先估计的、…