【MATLAB】對離散采樣信號添加高斯白噪聲(已知Eb/N0)


(1)首先計算已知信號序列(采樣之后得到的信號)的平均功率。該序列在第n個點處的功率為:

 

 

如果已知的信號序列中的總共的點數為N個,則該序列的平均功率為:

 

 

在MATLAB中求平均功率的方法是:

Pav=sum(x.^2)/length(x);

(2)第二步是求單個符號的能量。能量的定義是功率乘以時間。對於單個符號來說,因為已經被采樣了,每個符號可能對應多個采樣點。因此,此處需要已知符號速率。

每個符號的能量為:

 

 

在MATLAB中求單位符號能量的方法是:

Eb=sum(x.^2)/(length(x)*fb);

(3)第三步是求噪聲的單邊功率譜密度。根據Eb/N0即可,注意首先要把dB轉化為實際的倍數。若已知的Eb/N0是dB單位的,則轉化過程如下:

ebn0=10^((EbN0)/10);

隨后得到n0:

n0=Eb/ebn0;

(4)第四步是根據噪聲的單邊功率譜密度求噪聲的方差。對於實信號來說,如果信號的采樣頻率是fs,則噪聲帶寬為采樣頻率的一半。噪聲的方差即為噪聲的平均功率,噪聲的平均功率是單邊功率譜密度和噪聲帶寬的乘積,因此噪聲的方差為:

 

 

MATLAB中的計算過程:

pn=n0*fs/2;(從實際仿真的結果來看,乘以fs是符合理論值的,該內容需要進一步核實)

(5)第五步即生成噪聲序列。

NOISE=sqrt(pn)*randn(1,length(x));

 

注:參考文獻:

Bit-Error-Rate Simulation Using Matlab

作者:JE Gilley

http://xueshu.baidu.com/s?wd=paperuri:(18dc898216ce76b4c166f194fab1b349)&filter=sc_long_sign&sc_ks_para=q%3DBit-Error-Rate+Simulation+Using+Matlab&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=12877983928575481934


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM