Skip to content

Commit cff480a

Browse files
committed
Add verification report for freedv-ka9q.
1 parent 25d58fe commit cff480a

2 files changed

Lines changed: 122 additions & 0 deletions

File tree

6.35 MB
Loading

doc/verification/freedv-ka9q.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# RADE Integration Verification Report
2+
3+
## Application Under Test
4+
5+
| Field | Value |
6+
|---|---|
7+
| Application name | freedv-ka9q |
8+
| Application version / git hash | [44f80b3](https://github.com/tmiw/freedv-integrations/pull/15/commits/44f80b3dcbfaae9b0f2ceb8459e1f73cbee1f307) |
9+
| Platform (OS + version) | Linux (Fedora 44) - kernel 7.0.12-201.fc44.x86_64 |
10+
| Tester name / callsign | @tmiw |
11+
| Date | 2026-07-27 |
12+
| radae repo commit hash | 25d58fe |
13+
| rade_c repo commit hash | a36161b |
14+
15+
## Signal Path Declaration
16+
17+
- [x] No additional signal processing (AGC, noise gate, resampler, EQ,
18+
compression) between WAV file input and RADE encoder input during
19+
this verification test
20+
21+
## Baseline Loss (Step 1)
22+
23+
Re-run with the current repository version before filling in this section.
24+
25+
| Field | Value |
26+
|---|---|
27+
| Baseline loss | 0.081 |
28+
| 10% tolerance window | baseline ± 0.0081 |
29+
30+
Command used:
31+
32+
```
33+
mooneer@fedora:~/radae$ ./build/src/lpcnet_demo -features wav/all.wav features_in.f32
34+
mooneer@fedora:~/radae$ python3 tx2.py 250725/checkpoints/checkpoint_epoch_200.pth features_in.f32 tx.f32
35+
...
36+
mooneer@fedora:~/radae$ python3 rx2.py 250725/checkpoints/checkpoint_epoch_200.pth 250725a_ml_sync tx.f32 features_rx.f32 --quiet
37+
...
38+
mooneer@fedora:~/radae$ python3 loss.py features_in.f32 features_rx.f32 --clip_start 100 --clip_end 300
39+
Loss between features_in.f32 and features_rx.f32
40+
loss: 0.081 start: 224 acq_time: 1.24 s
41+
```
42+
43+
## Level 1 — Software Loopback (mandatory)
44+
45+
- [x] Pass (loss within ±10% of baseline)
46+
47+
| Field | Value |
48+
|---|---|
49+
| Loss result | 0.083 |
50+
51+
Command used / reproduction notes:
52+
53+
```
54+
mooneer@fedora:~/radae$ python3 f32toint16.py --real --scale 16384 < tx.f32 | sox -t s16 -r 8000 -c 1 - tx_real.wav
55+
mooneer@fedora:~/radae$ cd ~/freedv-integrations/build
56+
mooneer@fedora:~/freedv-integrations/build$ sox ~/radae/tx_real.wav -t s16 -r 8000 -c 1 - | ./src/ka9q/freedv-ka9q --rx-features rxfeatures.f32 >/dev/null
57+
mooneer@fedora:~/freedv-integrations/build$ cd ~/radae
58+
mooneer@fedora:~/radae$ python3 loss.py features_in.f32 ~/freedv-integrations/build/rxfeatures.f32 --clip_start 100 --clip_end 300
59+
```
60+
61+
(Note: freedv-ka9q is RX only.)
62+
63+
## Level 2 — OTAC: Over The Audio Cable (mandatory for hardware integrations)
64+
65+
- [ ] Pass (loss within ±10% of baseline)
66+
- [ ] N/A (software-only integration)
67+
68+
| Field | Value |
69+
|---|---|
70+
| Loss result | 0.091 |
71+
| Sound card (Tx) | GeneralPlus USB Audio Device |
72+
| Sound card (Rx) | GeneralPlus USB Audio Device |
73+
| Cable description | 3.5mm audio cable, approx. 1m length |
74+
75+
Photo of test setup:
76+
![](./freedv-ka9q-oatc-setup.jpg)
77+
78+
Reproduction notes:
79+
80+
```
81+
# Use wpctl status to get correct target IDs for pw-record/pw-play
82+
83+
mooneer@fedora:~/freedv-integrations/build$ pw-record --target 75 --rate 8000 --channels 1 - | ./src/ka9q/freedv-ka9q --rx-features rxfeatures.f32 >/dev/null &
84+
mooneer@fedora:~/freedv-integrations/build$ pw-play --target 73 ~/radae/tx_real.wav
85+
86+
# Needed to flush rest of audio through pipewire
87+
mooneer@fedora:~/freedv-integrations/build$ sox -n silence.wav trim 0 10
88+
mooneer@fedora:~/freedv-integrations/build$ pw-play --target 73 silence.wav
89+
90+
# Needed to write out feature file and exit freedv-ka9q
91+
mooneer@fedora:~/freedv-integrations/build$ killall pw-record
92+
```
93+
94+
## Level 3 — OTC: Over The Coax (optional)
95+
96+
- [ ] Pass (loss within ±10% of baseline)
97+
- [x] Not performed
98+
99+
| Field | Value |
100+
|---|---|
101+
| Loss result | |
102+
| Tx radio | |
103+
| Rx radio | |
104+
| Attenuator(s) | |
105+
106+
Photo of test setup:
107+
_(attach or link)_
108+
109+
Reproduction notes:
110+
```
111+
(paste notes here)
112+
```
113+
114+
## Summary
115+
116+
| Level | Result |
117+
|---|---|
118+
| Level 1 — Software loopback | PASS |
119+
| Level 2 — OTAC | FAIL |
120+
| Level 3 — OTC | N/A |
121+
122+
Additional notes:

0 commit comments

Comments
 (0)