日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解awgn函数如何向信号中添加高斯白噪声

發布時間:2024/3/12 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解awgn函数如何向信号中添加高斯白噪声 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

在數值模擬應用中,經常在模擬信號中添加噪聲數據,分析不同模型的信號解析能力。博文使用MATLAB中提供的awgn函數向信號X添加高斯白噪聲,但從實現原理上分析了awgn的實現過程,這樣讀者可以通過其他語言實現這一過程。
MATLAB中可以方便的使用awgn將一定信噪比的高斯白噪聲添加到理論信號中,產生添加噪聲后的模擬信號。另一個函數wgn僅是產生高斯白噪聲。[注:高斯白既標準正態分布]

wgn描述

y=wgn(m,n,p) 產生一個mn列的高斯白噪聲的矩陣,pdBW為單位指定輸出噪聲的強度。
y=wgn(m,n,p,imp) 以歐姆(Ohm)為單位指定負載阻抗。
y=wgn(m,n,p,imp,state)重置RANDN的狀態。
在數值變量后還可附加一些標志性參數:
y=wgn(,POWERTYPE)指定p的單位。POWERTYPE可以是dBW,dBm或linear。線性強度(linear power)以瓦特(Watt)為單位。
y=wgn(,OUTPUTTYPE) 指定輸出類型。OUTPUTTYPE可以是real或complex。

awgn描述

y=awgn(x,snr)將白高斯噪聲添加到向量信號x中。標量snr指定了每一個采樣點信號與噪聲的比率,單位為dB。如果x是復數的,awgn將會添加復數噪聲。這個語法假設x的能量是0dBW
y=awgn(x,SNR,SIGPOWER) 如果SIGPOWER是數值,則其代表以dBW為單位的信號強度,如果SIGPOWER為’measured’,則函數將在加入噪聲之前測定信號強度。
y=awgn(x,SNR,SIGPOWER,STATE)重置RANDN的狀態。
y=awgn(,POWERTYPE)指定SNR和SIGPOWER的單位。POWERTYPE可以是’dB’或’linear’。如果POWERTYPE是’dB’,那么SNR以dB為單位,而SIGPOWER以dBW為單位。如果POWERTYPE是’linear’,那么SNR作為比值來度量,而SIGPOWER以瓦特為單位。

單位釋義:

  • 分貝(decibel,dB),分貝(dB)是用于表示物理量的兩個值的比率的對數單位。分貝(dB)是表示相對功率或幅度電平的標準單位,是用來表示兩個能量之間的差別的一種單位,不是一個絕對單位。電子系統中將電壓、電流、功率等物理量的強弱通稱為電平,電平的單位通常就以分貝表示,即事先取一個電壓或電流作為參考值(0dB),用待表示的量與參考值之比取對數,再乘以20作為電平的分貝數(功率的電平值改乘10)。
  • 分貝瓦(dBW, dBm (dB-milliWatt):即與1milliWatt(毫瓦)作比較得出的數字。
  • dBm (dB-milliWatt):即與1milliWatt(毫瓦)作比較得出的數字。
  • 0 dBm = 1 mW,10 dBm = 10 mW,20 dBm = 100 mW
  • 根據分貝定義,分貝和噪聲具有下式關系:

    Psignal,dB=10log10(Psignal)

    randrandn

    在使用awgnwgn前還需要介紹一下randrandn的用法及原理。
    MATLAB中rand(m,n)函數用于產生mn列的均勻分布序列。均分分布隨機數產生方法是在線性同余法基礎上對隨機數進行歸一化。
    高斯白分布隨機數是在均勻分布的基礎上,使用Box-Muller方法,將均勻分布隨機數x1x2生成高斯白隨機數y1y2
    方法在“Numerical Recipes”書中有詳細介紹及源代碼,可直接使用。

    由于randn產生的“高斯白序列x”標準差δ和均值μ并不嚴格等于理論值1和0,需要使用下試進行變換:

    y=x?μδ
    y是較x“嚴格”意義上的高斯白分布序列。利用序列 y可以生成指定均值μ和標準差 δ的正態分布序列 y
    y=y?δ+μ

    直接用randrandn數對原始信號添加噪聲(例如y=x+rand(l,1)或者y=x+randn(l,1)l,是信號長度。

    wgn,awgn

    使用wgn,awgn內部都調用了randn函數產生高斯白噪聲。即,wgn函數中調用了randn函數,而awgn函數中調用了wgn函數。
    在使用wgnawgn涉及到了信號強度、噪聲強度和信號比的概念,有必要進一步解釋這兩個概念和計算方法。

    信號強度:
    信號的強度指的就是信號的能量(振幅的平方和),連續情形就是對f(x)平方后求積分,而在離散的情形是求和代替積分。在MATLAB中運行editawgn后可以看到源碼也是這樣實現的,既均方根振幅:

    sigPower = sum(abs(sig(:)).^2)/length(sig(:))

    信噪比(Signal-to-noise ratio,SNR):
    信噪比是用于科學和工程中將所需信號的電平與背景噪聲水平進行比較的措施。它被定義為信號功率與噪聲功率的比值,通常以分貝表示。高于1:1(大于0 dB)的信號比噪聲更多。SNR通常被引用于電信號,但它可以應用于任何形式的信號。下式是信噪比計算式:

    SNR=PsignalPnoise
    其中, Psignal是信號的功率, Pnoise是噪聲功率。噪聲和原始信號必須等長且對應。如果在相同阻抗下測量信號和噪聲,則可以通過計算振幅比的平方來獲得SNR:
    SNR=PsignalPnoise=AsignalAnoise
    其中 Asignal Anoise分別是均方根root mean square (RMS) 振幅。既MATLAB中源碼就是通過這種方式計算的信號強度與相應的噪聲強度。

    噪聲強度和信噪比關系:

    noisePower = sigPower/reqSNR;

    使用awgn函數向原始信號中添加噪聲過程比較簡單。首先,計算出f(x)的信號強度;然后,根據給定的信噪比計算噪聲強度。由于使用的是高斯白噪聲即randn函數,而randn的結果是一個強度為1的隨機序列。于是,所要添加的噪聲信號顯然就是:sqrt(noisePower)?randn(n,1)n

    下面分別是wgnawgn中的部分源碼。從這里可以更好的明白信號強度、信噪比和噪聲強度的關系。標準正態分布的信號強度是1。

    switch lower(pMode)case 'linear'noisePower = p;case 'dbw'noisePower = 10^(p/10);case 'dbm'noisePower = 10^((p-30)/10); end; if(strcmp(measMode,'measured'))sigPower = sum(abs(sig(:)).^2)/length(sig(:));if(strcmp(pMode,'db'))sigPower = 10*log10(sigPower);end end% --- Compute the required noise power switch lower(pMode)case 'linear'noisePower = sigPower/reqSNR;case 'db'noisePower = sigPower-reqSNR;pMode = 'dbw'; end% --- Add the noise if(isreal(sig))opType = 'real'; elseopType = 'complex'; endy = sig+wgn(size(sig,1), size(sig,2), noisePower, 1, state, pMode, opType);

    參考

    [1]http://cn.mathworks.com/help/comm/ref/awgn.html?searchHighlight=awgn&s_tid=doc_srchtitle
    [2]http://cn.mathworks.com/help/comm/ref/wgn.html?searchHighlight=wgn&s_tid=doc_srchtitle
    [3]http://www.ilovematlab.cn/thread-28150-1-1.html
    [4]https://en.wikipedia.org/wiki/Signal-to-noise_ratio
    [5]https://en.wikipedia.org/wiki/Decibel

    總結

    以上是生活随笔為你收集整理的深入理解awgn函数如何向信号中添加高斯白噪声的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。