SNR

来源:互联网 发布:小米平板2win10版优化 编辑:程序博客网 时间:2024/05/16 15:14

文章解释了几个简单的信噪比公式并给出了相关推导和实验分析

Signal-to-noise ratio 概念

信噪比定义为信号能量与噪声能量的比值: 
SNR=PsignalPnoise 
P是一个平均能量,信号与噪声的能量必须在同一个系统下测量,且保证一定的系统带宽.

如果信号和噪声的方差已知,且信号是0均值。 
SNR=σ2signalσ2noise.

如果信号和噪声时在同一条件下测得,那么也可以通过计算幅值平方比值获得信噪比 
SNR=PsignalPnoise=(AsignalAnoise)2,

推导

Psignal,dB=10log10(Psignal)

Pnoise,dB=10log10(Pnoise).

SNRdB=10log10(SNR).

SNRdB=10log10(PsignalPnoise).

10log10(PsignalPnoise)=10log10(Psignal)10log10(Pnoise).

SNRdB=Psignal,dBPnoise,dB.

SNRdB=10log10(AsignalAnoise)2=20log10(AsignalAnoise)=(Asignal,dBAnoise,dB).

实验分析

通过信号输入,加噪,观察加噪时sigma选择的准确性,以及信号能量,噪声信号能量,顺便验证帕塞瓦尔能量定律。

nois = sqrt(sigma)*randn(size(s));sn = s+nois;temps = sum(s.^2)/2^N;tempsn = sum(sn.^2)/2^N;display(sigma);tempvs = var(s')tempvsn = var(sn')tempd = tempsn-tempstempfs = fft(s);tempfsn = fft(sn);tempfsf = sum(abs(tempfs./2^N).^2)tempfsnf  =sum(abs(tempfsn./2^N).^2)tempdf  = tempfsnf - tempfsf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

代码说明:s为输入信号(随意选择),sn为带噪信号,平台为matlab 2015a,这里的sigma实则为σ2

结果展示:

sigma =    0.1000tempd =    0.0971tempfsf =    0.9990tempfsnf =    1.0961tempdf =    0.0971K>> tempvs = var(s')%验证用方差计算能量的正确性tempvsn = var(sn')tempvs =    1.0000tempvsn =    1.0972
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

证毕

讲究匠心,追求卓越!

原创粉丝点击