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

📄 cpp2.cpp

📁 博弈论自适应功率控制中的实现
💻 CPP
字号:
#include <iostream.h>
#include "dist_radio.h"
#include "matlab_interface.h"

#define NUM_RAD 22
void main(void)
{
	DSSS_radio d[NUM_RAD];
	DSSS_base_station bs;
	int k;
	int num_iterations;
	double x,y;
	double power;
	double max = 10;
	double *temp_power;
	double hf;
	double *x_line;
	double *x_pos, *y_pos;
	double x_plot[2], y_plot[2]; 

	//set initial positions
	bs.set_pos(0,0);

	x_pos = (double *) calloc(sizeof(double), NUM_RAD);
	y_pos = (double *) calloc(sizeof(double), NUM_RAD);

	max_power = 20;
	target_ber = 0.01;

	//random positions, powers for mobiles
	for(k=0;k<NUM_RAD;k++)
	{
		x = rand_double(max) - max/2;
		y = rand_double(max) - max/2;
		x_pos[k] = x;
		y_pos[k] = y;
		d[k].set_pos(x,y);
		power = rand_double(1.0);
		d[k].set_power(power);
		d[k].set_spreading_gain(63.0);
		bs.add_radio(&d[k]);
	}
	
	num_iterations = 600;
	bs.set_total_iterations(num_iterations);
	bs.set_noise(0.01);

	x_line = (double *) calloc(sizeof(double), num_iterations);
	for(k=0;k<num_iterations;k++)
	{
		bs.iterate();
		x_line[k] = k;
	}

	for(k=0;k<NUM_RAD;k++)
	{
		cout << d[k].get_rcv() << endl;
	}
	
	//plot stuff
	matlab_figure_handler mi;
	mi.spawn_matlab();
	hf = mi.create_figure();
	x_plot[0] = 0;
	y_plot[0] = 0;

	for(k=0;k<NUM_RAD;k++)
	{
		temp_power = d[k].get_power_store();
		x_plot[1] = x_pos[k];
		y_plot[1] = y_pos[k];
		mi.add_line2(x_plot,y_plot,hf,2);		
	}
	
	//mi.scatter_plot(x_pos,y_pos,NUM_RAD);	
	
	hf = mi.create_figure();

	for(k=0;k<NUM_RAD;k++)
	{
		temp_power = d[k].get_power_store();		
		//temp_power = d[k].get_obj_store();		
		mi.add_line(x_line,temp_power,hf,num_iterations);		
	}
	mi.set_xlabel("Iteration",hf);
	mi.set_ylabel("Power (dB)",hf);
     	mi.close_matlab();
	max_power = 5;
}

⌨️ 快捷键说明

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