C++ 天线系统

本文档介绍了使用C++进行天线系统仿真的方法,特别是针对SIMO系统的仿真处理。在创建仿真区域时,提供了多种类型的选择,包括单点仿真、线段、平面和离散点仿真。同时,展示了读取和处理数字高程模型(DEM)数据的代码,用于建筑物穿透计算。最后,给出了主函数的简单框架,用于统计运行时间。
摘要由CSDN通过智能技术生成

天线系统分别为SIMO时,在线性仿真路径上等距离的取仿真点
//完善仿真区域类型,完善后的类型为:
//0–单个点仿真;
//1–仿真区域为一线段;
//2–仿真区域为某一平面,默认手动划分计算区域
//3–//仿真点为离散点,从对应的存储文件中获取
void CreateSimulationArea_DEM()
{
int i, j;
Vertex3D vect;

if (TRANSCEIVERSYSTEM == 1)
{
	if (AREA_TYPE == 0)    //仅为单个仿真点
	{
		RECNUM = 1;
		RX = (Vertex3D*)calloc(RECNUM, sizeof(Vertex3D));
		RX[0].x = POSITION.x;
		RX[0].y = POSITION.y;
		RX[0].z = POSITION.z;
	}
	else if (AREA_TYPE == 1)   //仿真区域为一线段
	{
		int i;
		float stepx, stepy, stepz, s;
		s = sqrt((SEP.x - SSP.x) * (SEP.x - SSP.x) + (SEP.y - SSP.y) * (SEP.y - SSP.y) + (SEP.z - SSP.z) * (SEP.z - SSP.z)) / STEP;
		stepx = (SEP.x - SSP.x) / s;
		stepy = (SEP.y - SSP.y) / s;
		stepz = (SEP.z - SSP.z) / s;
		RECNUM = (int)s + 1;
		RX = (Vertex3D*)calloc(RECNUM, sizeof(Vertex3D));
		for (i = 0; i < RECNUM; i++)
		{
			RX[i].x = SSP.x + i * stepx;
			RX[i].y = SSP.y + i * stepy;
			RX[i].z = SSP.z + i * stepz;
		}
	}
	else  if (AREA_TYPE == 2) //仿真区域为某一平面
	{
		int i = 0;
		int x_grid = (int)(X_MAX - X_MIN) / STEP + 1;
		int y_grid = (int)(Y_MAX - Y_MIN) / STEP + 1;
		RECNUM = x_grid * y_grid;
		FILE* fp12 = fopen("生成测试点.txt", "w");
		RX = (Vertex3D*)calloc(RECNUM, sizeof(Vertex3D));
		for (int jj = 0; jj < x_grid; jj++)
		{
			for (int kk = 0; kk < y_grid; kk++)
			{
				RX[i].x = X_MIN + jj * STEP;
				RX[i].y = Y_MIN + kk * STEP;
				RX[i].z = Z_AVERAGE;
				fprintf(fp12, "%d		%f		%f		%f\n", i, RX[i].x, RX[i].y, RX[i].z);
				i++;
			}
		}
	}
}
else
{

}

}

关于建筑物穿透代码:
#include"ReadDEM.h"
#pragma warning (disable: 4996)

float** creat2d(int mm, int nn)
{
float** a;
int j;
a = (float**)malloc(sizeof(float*) * mm);//mm个行
for (j = 0; j &l

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值