⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 awgn.cpp

📁 本程序仿真了随机变量的产生和多径信道情况
💻 CPP
字号:
/*
**********************************************************************************
	产生一个AWGN信道

********************************************************************************
*			INCLUDE	FILES
********************************************************************************
*/
#include <stdio.h>
#include <math.h>
#include "channel.h"
/*
*******************************************************************************
*			           constants and define declarations
*******************************************************************************
*/
#define PI 3.14159

/*
********************************************************************************
	生成一个(0,1)内均匀分布的数
********************************************************************************
*/
double random_u(struct seed *rseed)
{
	double	result;
	
	rseed->x = (rseed->x * 249) % 61967;
	rseed->y = (rseed->y * 251) % 63443;
	rseed->z = (rseed->z * 252) % 63599;
	result = (double)(rseed->x/61967.0 + rseed->y/63443.0 + rseed->z/63599.0) 
		- (int)(rseed->x/61967.0 + rseed->y/63443.0 + rseed->z/63599.0);
	
	return result;
}

/*
********************************************************************************
	生成一个高斯随机变量,均值、方差由输入决定
********************************************************************************
*/
double gauss_g(struct awgn *gauss)
{
    double u1,u2;
    double x;
    double sigma;
	double ave;
	struct seed *pseed;

	pseed = &(gauss->gauss_seed);
    sigma = gauss->sigma;
	ave = gauss->ave;
    u1=random_u(pseed);
    u2=random_u(pseed);
    x=sqrt((double)(-2)*log(1.0-u1))*(double)cos(2.0*PI*u2);
    x=sigma*x + ave; 

    return x;
}

/*
********************************************************************************
	高斯信道初始化

********************************************************************************
*/
void initial_gauss(struct awgn *point,struct seed *pseed, double ave, double sigma)
{
	point->gauss_seed = *pseed;
	point->sigma = sigma;
	point->ave = ave;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -