- 发布日期
WRSP6TK 雷达 TR 测试软件源码精讲(5):暗室发射波瓣图(模式 5)
作者
M先生
WRSP6TK 雷达 TR 测试软件源码精讲(5):暗室发射波瓣图(模式 5)
本篇详解模式 5(暗室发射波瓣图)。与模式 4(接收)的本质区别:发射波瓣图测的是"发射出去的波束长什么样",所以要控制每个 TR 通道的发射相位/幅度,让外部接收设备逐角度测量。
一、接收 vs 发射波瓣图的对称性
| 模式 4 接收波瓣图 | 模式 5 发射波瓣图 | |
|---|---|---|
| 被测对象 | DBF 形成的接收波束 | TR 通道合成的发射波束 |
| 波束形成位置 | 数字域(DSP 求和) | 模拟域(各通道相位配置) |
| 需要外部设备 | 暗室信号源(照射) | 暗室接收天线/频谱仪 |
| 数据来源 | globalBuf 多波位 I/Q | 发射取样回传(耦合取样) |
| 系数生成 | USER_SetBeamPara 下发 DBF | TRBEAMPORT 下发发射波束系数 |
一句话:接收波瓣图是"看自己怎么收",发射波瓣图是"看自己怎么发"。
二、整体流程图
┌─ DarkRoomSendInit ──────────────────────────────────────┐
│ 1. 选择参数文件(多波束用 LobeSendM*,否则 LobeSend*) │
│ 2. 关 TR、设直通系数 │
│ 3. 读取取样点参数(m_TrTestLLocal/SLocal/TLocal) │
│ 4. 打开 UART │
│ 5. 生成波位表: │
│ 单波束:m_ScanBeamBit[0] = 角度1×10+450, N=1 │
│ 多波束:m_ScanBeamBit[0..2] = 角度1/2/3×10+450, N=3 │
│ 6. 下发校准/DIFR 参数、直通系数 │
│ 7. 生成发射波束系数并下发(逐 DIFR)→ TRBEAMPORT │
│ 8. 打开所有待测 TR 通道(按 g_HDevMask/g_VDevMask) │
│ 9. m_StartTrTest = TRUE │
└──────────────────────────────────────────────────────────┘
│ 每帧取样数据到达
▼
┌─ DarkRoomSendDataProcess ───────────────────────────────┐
│ 单波束:从全 IQ 缓冲取 1 组 I/Q │
│ 多波束:从 3 个指定取样点(L/S/T Local)取 3 组 I/Q │
│ → m_DarkRoomSouTmpHIQ[0..2][gap] │
│ → SetEvent │
└──────────────────────────────────────────────────────────┘
│
▼
┌─ DarkRoomSendDataProc ──────────────────────────────────┐
│ 全部扫完? │
│ ├─ 否 → gap 计数 +1 │
│ └─ 是 → 关设备 → 蛇形重排 → 逐波位写文件 → 完成弹窗 │
└──────────────────────────────────────────────────────────┘
三、发射波束形成系数(核心)
3.1 单波束 vs 多波束
if(g_TrTestMoreBeam == FALSE) // 单波束
{
m_ScanBeamBit[0] = (USHORT)((short)(m_TrTestAngel[0]*10.0f) + 450);
m_BeamBitNum = 1;
}
else // 多波束(同时发 3 个波束)
{
m_ScanBeamBit[0] = ...角度1编码;
m_ScanBeamBit[1] = ...角度2编码;
m_ScanBeamBit[2] = ...角度3编码;
m_BeamBitNum = 3;
}
多波束发射:同时对 3 个方向发射 3 个波束。接收侧在 3 个取样点(L/S/T)分别取样,一次扫描得到 3 个方向的波瓣数据——用一次扫描时间测 3 个波瓣图,效率提升 3 倍。
3.2 发射波束系数生成
phase_inc = 6.2831852f * g_BeamArrayInterval * sin(θ_i) * m_RfFreqFloat / 30.0f;
for (j=0; j<g_BeamArrayNum; j++)
{
PhaCoeff = phase_inc * j;
TmpCoeff[i][j] = (((int)(32767*cos(PhaCoeff)) & 0xffff) << 16)
| (((int)(32767*sin(PhaCoeff)) & 0xffff));
}
// 然后按 DIFR×通道 映射:
Haddr = (g_ArrayMapDIFR[j] << 4) + g_ArrayMapChannel[j];
MapCoeff[i][Haddr] = TmpCoeff[i][j];
公式:第 个波束指向 时,第 个单元的相位:
打包格式(Q15 复系数):
注意与接收(模式 4)的符号差异:
- 接收 DBF 系数:
phase_inc = -2π·d·sinθ·f/30(负号) - 发射波束系数(模式 5 单极化 SL 版):
phase_inc = -6.28...·d·sinθ·f/30(负号) - 发射波束系数(模式 5 双极化版):
phase_inc = +6.28...·d·sinθ·f/30(正号)
收发符号差异的物理本质:接收时是"各单元信号延迟对齐到波前"(补偿空间相位差),发射时是"各单元提前辐射使波前汇聚"(预置相位差)。两者数学上互为共轭,符号相反。工程上必须与 DSP 端处理约定一致——这也是最容易出 bug 的地方。
3.3 映射表:逻辑单元 → 物理 DIFR×通道
Haddr = (g_ArrayMapDIFR[j] << 4) + g_ArrayMapChannel[j];
MapCoeff[i][Haddr] = TmpCoeff[i][j];
为什么需要映射? 阵列的"逻辑单元号 j"(第 j 个单元)与"物理位置"(哪个 DIFR 的哪个通道)往往不一致(布线、分组、收发共用等原因)。g_ArrayMapDIFR[j] 给出 DIFR 号、g_ArrayMapChannel[j] 给出通道号,合成 8 位地址 (DIFR<<4)|Chl。下发前必须把系数按物理地址重排——逻辑到物理的地址映射,是相控阵波控软件的核心基本功。
四、逐通道发射控制
4.1 TR 通道开关(UART)
// 构造 SendMask:每个待测 TR 组件对应 2 个 bit(H/V 各一)
for (i=0; i<15; i++)
{
if (DevMask & (0x01 << i)) // 该组有效
{
SendMask |= (0x01 << (2*i)); // H 通道 bit
SendMask |= (0x01 << (2*i+1)); // V 通道 bit
}
}
USER_SendMoniDataPack(SendMask, m_Uart0Buf, 6, UART0PORT);
SendMask 的位图语义:每一位对应一个 TR 开关,置 1 打开。g_HDevMask / g_VDevMask 是"哪些 TR 组件参与测试"的掩码(H 或 V 极化),按位展开成串口控制字节。
4.2 发射通道的"全开"
发射波瓣图测试与发射校准不同:发射波瓣图要所有通道一起发(合成波束),而发射校准要逐通道发(分离各通道误差)。所以这里:
m_Uart0Buf[3] = 0xff; // 打开对应掩码的全部 TR
USER_SendMoniDataPack(SendMask, ...);
五、取样点的选择(多波束)
GetDlgItemText(IDC_EDIT_TRTESTLLOCAL, value); m_TrTestLLocal = atoi(value);
GetDlgItemText(IDC_EDIT_TRTESTSLOCAL, value); m_TrTestSLocal = atoi(value);
GetDlgItemText(IDC_EDIT_TRTESTTLOCAL, value); m_TrTestTLocal = atoi(value);
// 多波束取样
m_DarkRoomSouTmpHIQ[0][gap] = globalBuf[m_TrTestLLocal*2]; // L 波束
m_DarkRoomSouTmpHIQ[1][gap] = globalBuf[m_TrTestSLocal*2]; // S 波束
m_DarkRoomSouTmpHIQ[2][gap] = globalBuf[m_TrTestTLocal*2]; // T 波束
L/S/T 是什么? 这是发射取样点的索引——发射链路里,3 个波束的取样信号被安排到全 I/Q 数据缓冲的不同位置(如不同距离单元或不同通道),界面输入 3 个索引值告诉软件去哪里取。多波束复用一个采样流,通过位置索引分离,是节省采集通道的经典做法。
六、数据重排与文件输出(与模式 4 相同)
- 蛇形扫描数据重排(
m_ArrayScanDir决定偶数行正/反向) - 逐波位写文件:
ArrayNear_暗室发射H_9.100GHz_12.3°_时间.txt - 每文件内容:
[测试方式说明][阵列信息][阵列数据]三节
七、暗室发射波瓣图与接收的对比总结
接收(模式4): DBF系数(数字) ──► 多波位I/Q ──► 每个波位一个文件
发射(模式5): 发射系数(TR通道) ─► 取样I/Q ──► 每个波位一个文件
共同点:
├─ 波位表生成(角度×10+450 编码)
├─ 蛇形重排
├─ 文件格式
└─ 完成判定(gap 计数)
差异点:
├─ 波束形成位置(数字 vs 模拟)
├─ 系数符号(收发互易)
├─ 取样方式(全IQ vs L/S/T 定点)
└─ 多波束的复用方式(波位数 vs 取样点)
八、一句话总结
暗室发射波瓣图 = 给所有 TR 通道配置发射相位梯度合成波束,转台扫一圈,从取样点取回各波束响应。 核心在发射系数的 Q15 打包与逻辑-物理映射,以及多波束的取样点复用——一次扫描、三个波瓣。
WRSP6TK 雷达 TR 测试软件源码精讲(5):暗室发射波瓣图(模式 5)
评论加载中…
