📄 imagerd(cpp).txt
字号:
#include "stdafx.h"
#include "ImageRD.h"
#include <MATH.H>
/************************************************************************
* 版权说明: buaa
* 生成日期: 2005年12月
* 作者: yoyo
* 内容: RD成像算法
* 模块的目的/功能: 完成对回波数据的成像Rang-doppler算法
* 主要函数及其功能:
** 构造函数 : 从参数文件中获得雷达平台参数,给输入框参数赋初值
** ParaSet : 处理所用到参数,将回波数据读入内存中
** RangeCompress : 距离压缩
** AzimuthCompress : 方位向压缩
** CreateMemoryMap : 产生内存映射文件,用来保存点数据
** ReadReflectWaveData : 读取保存在回波数据文件里的数据
** MYFFT : 傅立叶变化
** IMYFFT : 逆傅立叶变化
** GetLogNum: 求大于或等于输入值取2的对数后的最近整数值
* 与其他文件的关系:是CMainFram中DrawCutRecCube入口,给其提供房屋
参数和确定模型建立后存入的数据库。
* 修改日期:2006年8月
* 修改原因:版式整理,详细注释
**************************************************************************/
CImageRD::CImageRD()
{
m_reflectData=NULL; //回波内存映像
m_iRow=m_iCol=0; //回波范围
k_a=0.0; // azimuth factor
k_r=0.0; // range factor
sita=0.0; // squint angle (正侧视)
i=j=k=0; // variable of circle
res_a=0.0; // required azimuth resolution
res_r=0.0; // required range resolution
H=0.0; // radar working high
Theta=0.0; // angle of radar's incidence
Ra=0.0; // radar working distance
va=0.0; // radar/platform forward velocity
Tp=0.0; // transmitted pulse width
fc=0.0; // carrier frequency
lamda=0.0; // wavelength
Br=0.0; // required transmitted bandwidth(k_r*c/2./res_r)
Fs=0.0; // A/D sampling rate(FsFactor=1.5)
bin_r=0.0; // range bin
La=0.0; // required synthetic aperture length
Ta=0.0; // required synthetic aperture time
fdc=0.0; // doppler centriod(正侧视就为0)
fdr=0.0; // doppler rate
Bd=Kr=0.0; // doppler bandwidth
prf=0.0; // PRF(Bd*2)
rmin=0.0; // maximal rang
rmax=0.0; // minimal rang
Na=0; //azimuth sampling number
Nr=0; //rang sampling number
m_NumRFFT=0; //距离向FFT点数
m_NumAFFT=0; //方位向FFT点数
m_rR=0; //比距离向点数大的并且最接近距离向点数的2的幂次
m_rA=0; //比方位向点数大的并且最接近方位向点数的2的幂次
m_buffer=NULL; //临时存储区
m_signal=NULL; //信号存储区
//用于创建内存映射文件时产生的句柄
m_hFile=NULL;
m_hFileMap=NULL;
}
CImageRD::~CImageRD()
{
if(m_buffer)
delete[] m_buffer;
if(m_reflectData)
UnmapViewOfFile(m_reflectData);
if(m_hFileMap)
CloseHandle(m_hFileMap);
if(m_hFile)
CloseHandle(m_hFile);
}
/*************************************************************************
* 函数名 : ParaSet
* 功 能 : 处理所用到参数,将回波数据读入内存中
* 返回值 : 参数赋值成功返回true,失败返回false
* 参 数 : strFileName 存放参数的文件名
* 调用关系 : 调用function中round(四舍五入)
run中成像部分调用此函数
* 作 者 : yoyo
* 创建日期 : 2006年5月
* 修改日期 : 2006年8月
* 修改原因 : 版式整理,详细注释
************************************************************************/
bool CImageRD::ParaSet(CString strFileName)
{
CStdioFile paraFile;
CFileException e;
CString m_sParaFile;
if(strFileName=="")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -