你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

MEMS 传感器中的噪声分析和识别,Allan,时间,Hadamard,重叠,修正,总体方差

[复制链接]
STMCU小助手 发布时间:2022-12-2 15:20
- Y8 s& w) Q2 K: I/ l% g

, n! M4 D  h) p# M' A8 H 17KJ86U64[TFUX5TTYXONPQ.png
- [1 i) M7 z  o/ H0 q9 @: G+ }' ]& _- n5 l: }

) k2 N/ C/ Z  p目的和益处

: k8 p/ N1 F, F- ~3 A# S( p  p本设计建议阐释了如何分析和识别 MEMS 传感器中的噪声。解释了 Allan 和 Hadamard 方差及其变体(重叠、修正和总体)。还提到了理论方差#1(Theo1)。% p8 e* R; H! D, q8 l
优势:! Z# d% z6 @) O0 b: ?# Y
如何通过 Allan 和其他方差来表征 MEMS 传感器5 s! o' K9 z5 e
信号和噪声
0 j8 u: }: g; [( y基本假设是:测量期间目标信号是恒定且平稳的。但是传感器输出是目标信号和噪声的总和。大体上,从长期看噪声应该平均为零。
- V! q. G; W( C+ y; b% n/ d测量期间采集多个样本。噪声的分析和识别可以帮助确定要使传感器输出的方差最小,需要对 多少个样本取平均。
4 ]8 Y4 `; _6 [1 M标准方差的问题在于,它不能很好地表征增加数据运行长度时的情形。为了解决此问题,开发出了 Allan 方差。Allan 方差 σ2被计算为连续“样本”(2 样本方差)之间的平方差的平均值。! w' S+ T( p/ A) d
通过在时间间隔 τ = m*Ts 中对 m 个样本求平均来计算“样本”,其中 Ts=1/Fs 是采样间隔,Fs 是采样频率。
, M2 O4 Y* U5 c. N4 M5 `) }" n, y1 K+ D* Q! H+ k* A# _4 L8 f

2 o0 m3 T6 u2 z" A7 YAllan 方差等等
' |4 d, `  H2 z( T; V- `: {' Y4 \) v! SAllan 偏差 σ(τ)是 Allan 方差 σ2(τ)的平方根。对数-对数图的斜率取决于噪声类型。该斜率能够识别噪声类型。参见下表。( s& F4 I" n: T- l
可以使用数字滤波器链来计算 Allan 方差(非重叠 AVAR,重叠 OAVAR,修正 MAVAR)和Hadamard 方差(非重叠 HVAR 和重叠 OHVAR):
' v: a$ T; q$ Q* w' c& eM(m)是 m 个样本的移动平均值,, X) U% b* P+ d( D' f$ }/ i
D1(m)是第 n 个样本与第(n+m+1) 个样本之间的一阶差,
" N; ^/ Z( N' e8 ?; H( ^4 Nm:通过从 m 个样本中选择 1 个样本进行 1 次下采样" n, O8 C% i, I- R

8 a% t4 G- Y! T
瞬态不得出现在输出中。通过对输出样本求平方和求平均来计算方差。偏差是方差的平方根。可以将偏差的置信度估计为偏差本身除以平均输出样本数的平方根。. ~. u8 ]! w( c; ?9 U: o  J7 Y
, X  p/ a0 d' j# W0 W6 s! A! a

2 R7 s0 u/ S" f' h) J HWQ{XD~2FBJLN2P)[86@__7.png
5 M9 \, `( j- w7 ]
# j7 i4 @; y0 ?6 o
8 [  Y2 D( E2 [$ B% C
一些重要说明:; R0 W4 m4 R8 g8 @& b
重叠 Allan(OAVAR)和重叠 Hadamard 方差(OHVAR)具有更好的置信度,应该用于 m = 10%的数据运行长度情况下。
. F$ H6 }9 n6 a时间方差(TVAR)是修正 Allan 方差(MAVAR)的缩放版本,缩放因子是 τ2/3。对于白相位噪声它是最佳的(这意味着:白高斯噪声的导数,称为白频噪声)。6 v) X7 h* Y1 a
Allan 总体、修正总体和 Hadamard 总体方差在 m = 30-50%的数据运行长度时具有更好的置信度。通过在两侧反射来扩展数据运行长度,以此来计算总体方差。对于Allan,反射样本数量为 2m,对于修正 Allan 和 Hadamard,反应样本数量为 3m。
2 U, j4 ~: W( P& s- O理论#1 方差(Theo1)在 m = 75%的数据运行长度下具有更好的置信度。对于所有其他方差,步幅时间与用于计算“样本”的平均时间相同,var(τ=m*Ts)。对于 Theo1,步幅时间是 m*Ts 减去平均时间;平均时间从 m/2 下降到 1;步幅时间从 m/2 降到m-1;平均步幅时间为 0.75*m*Ts:Theo1(τ=0.75*m*Ts)。Theo1 有偏差,Theo1BR(去除偏差)是无偏的,m <10%时 Theo1H 是 Allan,而 m> 10%时是Theo1BR。( @* F7 h. T" p8 i0 f; C

; M& O$ M% y" C
用来计算方差的 MatLab 代码, M$ p! a5 F( \5 }
这是将上述方差计算为数字滤波器链的参考 MatLab 代码。
, q9 t  X+ ^9 t: E8 G$ D
: p* m. c8 ]. G2 \" ^% L
% Allan 作为一个数字滤波器/ y& j" c. U; X( F8 D
n % 平均因子,平均 n 个样本4 P2 E* U: o5 D3 K+ |
Fs % 采样频率
" J' y) ]  ~/ `' W6 Y' Q Ts=1/Ts;
+ B, O) n% y% Z. g+ T# r tau=n*Ts; - I3 _( v; `4 H7 [8 Y* l: X6 ^

# z- X+ J7 v) N! c5 H6 S- Y3 Z %---- STDVAR 和 OSTDVAR2 w7 I# ?' H4 I
Mn=ones(1,n)/n; % 平均滤波器
9 y# U( j5 l. N1 I6 Q0 K dataM=filter(Mn,1,data); dataM=dataM(n:end); % 滤波并去除瞬态- x1 B6 r8 f- O% b6 T3 h1 f  Y
ostdvar()=var(dataM);1 X$ J3 n9 P/ m1 s& y; J; C% L
stdvar()=var(dataM(1:n:end));
# x$ Y& S/ p) W+ Y% t, B8 q- d
* M6 l) ?  a5 [7 q7 c8 x3 w( v6 f

1 @, r0 I" ^- ^3 i$ A( g9 E+ g/ w %---- AVAR 和 OAVAR3 g  Y# w$ x4 C5 j
D1n=zeros(1,n+1); D1n(1)=+1; D1n(end)=-1; % 差分滤波器
7 Q# _3 G( D( Z) j- x dataMD=filter(D1n,1,dataM); dataMD=dataMD(n+1:end); % 滤波并去除瞬态  A; f- v4 \# f0 ?
L=length(dataMD); oavar()=0.5*sum(dataMD.^2)/(L);
! U, |4 \  F- u2 r. q L=length(dataMD(1:n:end)); avar()=0.5*sum(dataMD(1:n:end).^2)/(L);
7 V7 L1 m- H) u+ y% F4 B- Q. x  H* X; T/ s- N/ ]! O/ u) \
: j( h2 k$ w& _
%---- MAVAR
& L- f6 [9 C4 c* E, l- ~% a dataMDM=filter(Mn,1,dataMD);9 q1 U8 f( {7 p# @) N/ U
dataMDM=dataMDM(n:end);
$ G6 o4 ], Q5 B+ [ L=length(dataMDM); mavar()=0.5*sum(dataMDM.^2)/(L);
. v, {2 i) Z6 e' C& l+ q& l
: O! g. w6 V1 W

( V( _' ]% s. @1 J) \ %---- HVAR 和 OHVAR
0 M2 G& ]3 G; Q8 b, r0 d dataMDD=filter(D1n,1,dataMD); dataMDD=dataMDD(n+1:end); % 滤波并去除瞬态2 f/ b  ^6 Y( `
L=length(dataMDD); ohvar()=0.5*sum(dataMDD.^2)/(L);9 n2 R+ X% ]& U& X7 j4 G0 f* I
L=length(dataMDD(1:n:end)); hvar()=0.5*sum(dataMDD(1:n:end).^2)/(L);& A; ?7 |, v9 [* S% D

4 j/ }3 x1 p2 B3 m3 X% O9 @' @
上述代码中最慢的一行是移动平均滤波器。如果在添加新项的同时丢弃旧项并保持运行总量不变,则执行速度会快很多。
5 X& g7 V# H; d8 X" b, E % OAVAR 最优化" J* O9 q' P7 I, n* d& G) I
n2=n*n;
5 P8 h/ X' Z$ M acc(1)=sum(data(1:n)); % 初始化运行总数
5 }- ^* z- }3 w( `) O for i=1:N-n, acc(i+1)=acc(i)-data(i)+data(i+n); end; % 运行总数
( y4 j  y7 x2 E8 a3 ]9 ?$ Z5 d oavar()=0.5*sum( (acc(1:N-2*n+1) - acc(1+n:N-n+1)).^2 )/(N-2*n+1)/n2;8 J$ `- R: f) b

6 q* `  K2 h8 F  D  u" _; V

# g$ Z) A2 J$ D4 s! t6 |  a % AVAR0 ]: r& T* }+ P$ u5 _, k6 p$ q& w
diffL=fix((N-2*n+1 -1)/n)+1;2 o% M0 o+ T' f1 O  e! C" O6 U
avar()=0.5*sum( (acc(1:n:N-2*n+1)-acc(1+n:n:N-n+1)).^2 )/(diffL)/n2;
7 j; X5 c7 T/ E0 g4 _% l. F2 {0 Q/ ^% u% w) K* [% f1 _) C0 L

" V0 V5 o7 }: ~# `& O. I % STDVAR 和 OSTDVAR
" l# [# o- a6 v; c stdvar()=var(acc(1:n:N-n+1))/n2;
: |- k* g5 u( T) w0 a1 v ostdvar()=var(acc(1:N-n+1))/n2;3 Y* q6 w/ ~' c3 K- G
  F# u! J6 z. F+ c* |0 b
. R( P7 v0 ^4 \; ^4 I4 [6 g9 {. T0 X
% MAVAR 最优化
, r/ _% n, @+ v) ~  \4 ` n4=n2*n2;
/ N+ M' j9 l/ h' ?- a9 S acc2(1)=sum(acc(1:n)); % 初始化运行总数
" Q) b, ?3 N5 u/ H: G for i=1:N-2*n+1, acc2(i+1)=acc2(i)-acc(i)+acc(i+n); end; % 运行总数
" f2 H8 c) a2 k& }, o7 m mavar()=0.5*sum( (acc2(1:N-3*n+2) - acc2(1+n:N-2*n+2)).^2 )/(N-3*n+2)/n4;
8 C: W( W$ _( Y: B
( L8 A' q2 p8 x% Q0 D! o

  o; Q5 s$ Z$ s1 v, J % OHVAR9 N' `. W/ m! W+ P. m# O  n
ohvar()=0.5*sum( ( (acc(1 :N-3*n+1) - acc(1+ n:N-2*n+1)) - ...  a" X' h7 g- Y* F2 b
(acc(1+n:N-2*n+1) - acc(1+2*n:N- n+1)) ).^2 )/(N-3*n+1)/n2;
) Q3 A( ~  ?! x$ P! P% f' f; G/ Y6 Y# g% y8 d

/ D3 k0 J; B0 @3 }" |; a % HVAR
; p' M" `4 C, G diffL=fix((N-3*n+1 -1)/n)+1;* m4 v) {& Z+ ^; E$ t, v+ |0 _
hvar()=0.5*sum( ( (acc(1 :n:N-3*n+1) - acc(1+ n:n:N-2*n+1)) - ...6 O/ E+ k& o- `  E% n) i# `# [
(acc(1+n:n:N-2*n+1) - acc(1+2*n:n:N- n+1)) ).^2 )/(diffL)/n2;
* n5 ^  ?! E1 H& y% S2 R代码可以进一步优化。例如,对于优化的 C 代码,有可能计算一次得出方差(但通常需要两次计算:第一次用于求均值,第二次用来求实际方差)。4 U; f% B0 H) N# n8 p9 D5 O

- y5 U7 i/ f0 j9 S& S: w完整版请查看:附件
. D5 |1 a+ X8 f! K! F7 J! B

MEMS 传感器中的噪声分析和识别,Allan,时间,Hadamard,重叠,修正,总体方差.pdf.pdf

下载

674.18 KB, 下载次数: 0

赞 收藏 评论0 发布时间:2022-12-2 15:20

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版