Multi-Capture US OFDMA Pre-Equalization¶
This API runs periodic upstream OFDMA pre-equalization captures and stores each capture as PNM files. After the capture window completes, you can download a ZIP of the PNM files or run post-capture signal analysis.
Endpoints¶
| # | Method | Path | Description |
|---|---|---|---|
| 1 | POST | /advance/multi/us/ofdmaPreEqualization/start |
Begin a multi-sample US OFDMA pre-equalization capture |
| 2 | GET | /advance/multi/us/ofdmaPreEqualization/status/{operation_id} |
Poll capture progress |
| 3 | GET | /advance/multi/us/ofdmaPreEqualization/results/{operation_id} |
Download a ZIP of captured PNM files |
| 4 | DELETE | /advance/multi/us/ofdmaPreEqualization/stop/{operation_id} |
Stop the capture after the current iteration |
| 5 | POST | /advance/multi/us/ofdmaPreEqualization/analysis |
Run post-capture signal analysis |
Start capture¶
Request POST /advance/multi/us/ofdmaPreEqualization/start
{
"cable_modem": {
"mac_address": "aa:bb:cc:dd:ee:ff",
"ip_address": "192.168.0.100"
},
"capture": {
"parameters": {
"measurement_duration": 60,
"sample_interval": 5
}
},
"measure": {
"mode": 0
}
}
Response
{
"mac_address": "aa:bb:cc:dd:ee:ff",
"status": "running",
"message": null,
"group_id": "3bd6f7c107ad465b",
"operation_id": "4aca137c1e9d4eb6"
}
Status¶
Request GET /advance/multi/us/ofdmaPreEqualization/status/{operation_id}
Response
{
"mac_address": "aa:bb:cc:dd:ee:ff",
"status": "success",
"message": null,
"operation": {
"operation_id": "4aca137c1e9d4eb6",
"state": "running",
"collected": 3,
"time_remaining": 45,
"message": null
}
}
Results¶
Request GET /advance/multi/us/ofdmaPreEqualization/results/{operation_id}
Returns a ZIP file containing the captured PNM files for each iteration.
- ZIP name:
multiOfdmaPreEqualization_<mac>_<operation_id>.zip
Stop¶
Request DELETE /advance/multi/us/ofdmaPreEqualization/stop/{operation_id}
Stops the capture after the current iteration finishes. The status endpoint will reflect final state once complete.
Analysis¶
Request POST /advance/multi/us/ofdmaPreEqualization/analysis
Body (MultiUsOfdmaPreEqAnalysisRequest - preferred string enums):
{
"analysis": {
"type": "group-delay",
"output": { "type": "json" }
},
"operation_id": "4aca137c1e9d4eb6"
}
Analysis Types¶
Analysis Types (analysis.type)
| Type | Description |
|---|---|
min-avg-max |
Min/avg/max magnitude across captures per subcarrier |
group-delay |
Per-subcarrier group delay from averaged phase response |
echo-detection-ifft |
Echo/impulse response estimation via IFFT |
Output Types (analysis.output.type)
| Value | Name | Description | Media Type |
|---|---|---|---|
"json" |
JSON |
Structured JSON body | application/json |
"archive" |
ARCHIVE |
ZIP containing CSV + PNG report bundle | application/zip |
Response Fields By Analysis Type¶
For Min-Avg-Max:
| Field/Path | Type/Example | Meaning |
|---|---|---|
results[].channel_id |
int | Channel identifier. |
results[].frequency |
array[int] (Hz) | Subcarrier center frequencies. |
results[].min |
array[float] | Minimum magnitude per subcarrier. |
results[].avg |
array[float] | Average magnitude per subcarrier. |
results[].max |
array[float] | Maximum magnitude per subcarrier. |
For Group Delay:
| Field/Path | Type/Example | Meaning |
|---|---|---|
results[].channel_id |
int | Channel identifier. |
results[].frequency |
array[int] (Hz) | Subcarrier center frequencies. |
results[].group_delay_us |
array[float] | Group delay values (microseconds). |
For Echo-Detection (IFFT):
| Field/Path | Type/Example | Meaning |
|---|---|---|
results[].channel_id |
int | Channel identifier. |
results[].impulse_response |
array[float] | Impulse-response magnitude vs sample index. |
results[].sample_rate |
float (Hz) | Sample rate used for IFFT. |
Response
{
"mac_address": "aa:bb:cc:dd:ee:ff",
"status": 0,
"message": "Analysis group-delay completed for group 3bd6f7c107ad465b",
"data": {
"analysis_type": "group-delay",
"results": []
}
}