# CSTDataLoader
## 介绍
利用CST电磁仿真软件对给定目标的宽带RCS进行计算,得到的计算结果将保存在txt文件中。`CSTDataLoader`类实现了从txt文本文件中解析数据的功能。
## 设计思路
1. 一次从txt文件中读取各个观测角度下的宽带rcs,每个txt文件包含同极化和交叉极化。对于发射一组正交极化的情况,需要把两个txt文件中分别提取出来的宽带rcs数据合并。宽带rcs数据保存在一个3-D矩阵中,数据格式为:[采样点数,极化通道数,样本数]。
2. 利用read函数可以读取给定角度范围内的原始数据。
3. 利用save函数可以将给定角度范围内的处理后数据保存到目标文件夹下。
4. 利用plot函数可以对给定角度下数据处理后显示。
## 属性
| 属性名 | 属性含义 | 数据类型 |
| :---------: | :----------------: | :------: |
| label | 数据的角度信息 | array |
| src | txt文件路径 | str |
| dst | 解析数据保存路径 | str |
| sigma | 噪声功率值 | numeric |
| DATA | 原始rcs数据 | array |
| target_name | 仿真对象名 | str |
| num_freq | 仿真频点数 | numeric |
| batch_size | 一次解析的HRRP个数 | numeric |
| save_mode | 数据保存模式 | str |
| txt_name | 源文件名称 | struct |
## 方法
### `CSTDataLoader`
> class: obj = CSTDATALoader(src, dst, target_name, 'num_freq', 129 , 'batch_size', 1024, 'sigma', 0, 'nfft', 256, 'save_mode', 'all-in-one', 'win_type','rectwin', 'txt_name', struct("H",{"farfield_HP.txt"},"V",{"farfield_VP.txt"}) )
-----
根据src位置的CST数据进行解析,并保存到dst件夹下,目标名称为target_name。
参数:
- src(string) - txt文件所在路径
- dst(string) - 处理后数据保存路径
- target_name(string) - 目标名称
- num_freq(int) - 仿真带宽内离散频率点数,默认129;
- batch_size(int) - 从txt文件中一次读取hrrp个数,默认1024;
- sigma(float) - 高斯白噪声功率的均方根,默认0;
- nfft(int) - ifft点数,默认256;
- save_mode(string) - 保存模式,分为"all-in-one"和"seperate"两种,默认为"all-in-one"。在“all-in-one"模式下,所有HRRP保存为一个mat文件;在"seperate"模式下,每个HRRP保存为一个mat文件。
- win_type(string) - 加窗类型,默认为矩形窗"rectwin",可选"hanning", "hamming"等。
- txt_name(struct) - 需要读取的txt文件的名称。txt_name是一个结构体,默认形式如下
```matlab
txt_name = struct("H",{"farfield_HP.txt"},"V",{"farfield_VP.txt"})
```
其中H表示水平极化的仿真数据名,V表示垂直极化的仿真数据名。
### `save`
>func: save(obj, phi_range, theta_range, foldername)
将满足`phi_range`和`theta_range`的,保存到`foldername`文件夹下。foldername可选`train`, `test`和`validation`。如果`save_mode`为`seperate`,将符合要求的数据保存在`dst\foldername\target_name\*. mat`;如果`save_mode`为`all-in-one`,则保存至`dst\foldername\target_name.mat`文件。
**参数:**
- `phi_range`
方位角度范围,是一个二维数组,当数据的方位观测角phi度满足
$$
phi\_range(1)\le phi \lt phi\_range(2)
$$
对应的数据将被提取出来。
- `theta_range`
俯仰角度方位,是一个二维数组,当数据的俯仰观测角theta度满足
$$
theta\_range(1)\le theta \lt theta\_range(2)
$$
对应的数据将被提取出来。
- `foldername`
数据保存文件夹名称,默认为空
### `read`
> func: [lb, data] = read(obj, phi_range, theta_range)
参数同save函数
### `plot`
> func: plot(obj, phi, theta)
参数同save函数。
利用CST电磁仿真软件对给定目标的宽带RCS进行计
版权申诉
91 浏览量
2024-03-29
14:41:38
上传
评论
收藏 11KB ZIP 举报
不走小道
- 粉丝: 3234
- 资源: 5113