概述
用C语言编程实现高斯白噪声,可以应用于各种软件仿真等。
今天编了一个用C语言实现高斯白噪声的程序,一方面自己的项目要用,另一方面可以开源的,希望可以给大家带来方便。请大家使用时也注明是baiguangyu001 白栎旸写的,这样我就满足了,呵呵。
做出来的序列*n,其方差比预先规定的要小10的-2次方量级,但是总体来说是比较准确的。可以通过改变量化精度Stride来增加概率估计的准确性。
/* 本程序用于产生SNR=db(dB)的均值为0的白噪声序列,编写人:白栎旸,baiguangyu001 */
/* db是信噪比, length是n的长度,n是产生出的白噪声 */
# include
# include
# define PI (3.14)
# define Stride (0.005)
short interleaver[length] = {...........};
注:interleaver是个交织器,长度与参数length一致就行,里面是乱序排列,这个在matlab里用randperm实现就行。
例如:short interleaver[10] = {7,1,9,6,3,2,5,8,4,0};
void awgn(float db, int length, float *n)
{
float pdf[10000] = {0};
float *amp;
float delta=0, amplitude = 0, sum = 0, temp1=0, temp2=0;
最后
以上就是冷静棉花糖为你收集整理的c语言 白噪声,高斯白噪声 C语言实现的全部内容,希望文章能够帮你解决c语言 白噪声,高斯白噪声 C语言实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复