weaklink-modem 0.7.2__tar.gz → 0.7.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/PKG-INFO +6 -37
  2. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/pyproject.toml +1 -1
  3. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/readme-pypi.md +5 -36
  4. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/LICENSE +0 -0
  5. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/__init__.py +0 -0
  6. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/api.py +0 -0
  7. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/audio.py +0 -0
  8. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/benchmark.py +0 -0
  9. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/cli.py +0 -0
  10. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/codec.py +0 -0
  11. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/constants.py +0 -0
  12. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/exceptions.py +0 -0
  13. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/fec.py +0 -0
  14. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/interleaver.py +0 -0
  15. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/ptt.py +0 -0
  16. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/py.typed +0 -0
  17. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/rs.py +0 -0
  18. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/streaming.py +0 -0
  19. {weaklink_modem-0.7.2 → weaklink_modem-0.7.3}/src/weaklink/modem/waveform.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: weaklink-modem
3
- Version: 0.7.2
3
+ Version: 0.7.3
4
4
  Summary: N-FSK streaming modem for HF SSB and wider channels: Reed-Solomon framing, soft Viterbi, round-robin block repetition, byte-pipe semantics.
5
5
  License: MIT
6
6
  Author: ivica3730k
@@ -27,7 +27,7 @@ Project-URL: Homepage, https://github.com/ivica3730k/weaklink-9a3ice
27
27
  Project-URL: Repository, https://github.com/ivica3730k/weaklink-9a3ice
28
28
  Description-Content-Type: text/markdown
29
29
 
30
- <!-- generated from README.md at tag v0.7.2 by scripts/build_pypi_readme.py; do not hand-edit -->
30
+ <!-- generated from README.md at tag v0.7.3 by scripts/build_pypi_readme.py; do not hand-edit -->
31
31
 
32
32
  # weaklink
33
33
 
@@ -37,7 +37,7 @@ with `tail -f`; no memory buffering, no wait-for-EOF. RS + convolutional
37
37
  soft-LLR combining. Modes: **OOK (1-tone)** through **16-FSK**, at
38
38
  **45 / 300 / 1200 baud**.
39
39
 
40
- ![alt text](https://github.com/ivica3730k/weaklink-9a3ice/raw/v0.7.2/image.png)
40
+ ![alt text](https://github.com/ivica3730k/weaklink-9a3ice/raw/v0.7.3/image.png)
41
41
 
42
42
  Distribution: `weaklink-modem` (PyPI + release binaries).
43
43
 
@@ -121,7 +121,7 @@ cross-baud comparison convention, not a physical channel filter.
121
121
 
122
122
  Doubling `--modem-block-repeats` buys ~2–3 dB via soft-LLR combining
123
123
  at proportional air time. Full sweep of every combo we test is in
124
- [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.2/results.md).
124
+ [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.3/results.md).
125
125
 
126
126
  ### OOK / 1-tone mode
127
127
 
@@ -131,7 +131,7 @@ bandwidth of any mode (no tone stack — just the carrier and its
131
131
  modulation sidelobes). Same 1 bit/symbol as 2-FSK but a few dB worse
132
132
  in AWGN — the trade you make for the narrow spectrum. Cliff at
133
133
  45 baud with `block_repeats=4`: ≈ −14 dB, matching 4-FSK at the same
134
- settings. See [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.2/results.md) for the per-baud numbers.
134
+ settings. See [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.3/results.md) for the per-baud numbers.
135
135
 
136
136
  ### One tone at a time (constant envelope, any N)
137
137
 
@@ -142,37 +142,6 @@ transmitter emits exactly one sinusoid at any instant, hopping between
142
142
  frequencies at the symbol clock. Constant envelope (PAPR = 3 dB, the
143
143
  peak-to-RMS of a pure sine) regardless of N.
144
144
 
145
- Time-frequency view of a 4-FSK burst — each column is one symbol,
146
- each row is one of the 4 available frequencies:
147
-
148
- ```
149
- freq
150
-
151
- F₃ │ . ▓ . . . ▓ . .
152
- F₂ │ . . . ▓ . . . .
153
- F₁ │ ▓ . . . . . ▓ .
154
- F₀ │ . . ▓ . ▓ . . ▓
155
- └────────────────────────→ time
156
- s₀ s₁ s₂ s₃ s₄ s₅ s₆ s₇
157
-
158
- Exactly one ▓ per column: at any instant, one tone at full amplitude.
159
- Over 8 symbols the modem has visited all 4 slots (that's what you see
160
- on an SDR waterfall over time), but never more than one at once.
161
- ```
162
-
163
- vs. what parallel multi-tone (OFDM-style; **not** this modem) would do:
164
-
165
- ```
166
- freq
167
-
168
- F₃ │ ▓ . ▓ ▓ . ▓ . ▓
169
- F₂ │ . ▓ ▓ . ▓ . ▓ ▓ Multiple ▓ per column: N tones
170
- F₁ │ ▓ ▓ . ▓ . ▓ ▓ . summed at each instant. PAPR grows
171
- F₀ │ ▓ . ▓ . ▓ ▓ . ▓ with N (~10·log₁₀(N)).
172
- └────────────────────────→ time
173
- s₀ s₁ s₂ s₃ s₄ s₅ s₆ s₇
174
- ```
175
-
176
145
  Why single-tone:
177
146
 
178
147
  - **All transmit power in one tone at a time** — maximum per-symbol SNR, no `1/N` power split across a stack.
@@ -197,7 +166,7 @@ On an SDR waterfall you'll see all N frequency slots "lit up" during a long tran
197
166
  ## Full SNR sweep
198
167
 
199
168
  Every baud × num_tones × RS × repeats combo is measured in
200
- [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.2/results.md). Re-run `poetry run weaklink-modem-benchmark` to
169
+ [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.3/results.md). Re-run `poetry run weaklink-modem-benchmark` to
201
170
  refresh.
202
171
 
203
172
  ---
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "weaklink-modem"
3
- version = "0.7.2"
3
+ version = "0.7.3"
4
4
  description = "N-FSK streaming modem for HF SSB and wider channels: Reed-Solomon framing, soft Viterbi, round-robin block repetition, byte-pipe semantics."
5
5
  authors = ["ivica3730k"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
- <!-- generated from README.md at tag v0.7.2 by scripts/build_pypi_readme.py; do not hand-edit -->
1
+ <!-- generated from README.md at tag v0.7.3 by scripts/build_pypi_readme.py; do not hand-edit -->
2
2
 
3
3
  # weaklink
4
4
 
@@ -8,7 +8,7 @@ with `tail -f`; no memory buffering, no wait-for-EOF. RS + convolutional
8
8
  soft-LLR combining. Modes: **OOK (1-tone)** through **16-FSK**, at
9
9
  **45 / 300 / 1200 baud**.
10
10
 
11
- ![alt text](https://github.com/ivica3730k/weaklink-9a3ice/raw/v0.7.2/image.png)
11
+ ![alt text](https://github.com/ivica3730k/weaklink-9a3ice/raw/v0.7.3/image.png)
12
12
 
13
13
  Distribution: `weaklink-modem` (PyPI + release binaries).
14
14
 
@@ -92,7 +92,7 @@ cross-baud comparison convention, not a physical channel filter.
92
92
 
93
93
  Doubling `--modem-block-repeats` buys ~2–3 dB via soft-LLR combining
94
94
  at proportional air time. Full sweep of every combo we test is in
95
- [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.2/results.md).
95
+ [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.3/results.md).
96
96
 
97
97
  ### OOK / 1-tone mode
98
98
 
@@ -102,7 +102,7 @@ bandwidth of any mode (no tone stack — just the carrier and its
102
102
  modulation sidelobes). Same 1 bit/symbol as 2-FSK but a few dB worse
103
103
  in AWGN — the trade you make for the narrow spectrum. Cliff at
104
104
  45 baud with `block_repeats=4`: ≈ −14 dB, matching 4-FSK at the same
105
- settings. See [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.2/results.md) for the per-baud numbers.
105
+ settings. See [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.3/results.md) for the per-baud numbers.
106
106
 
107
107
  ### One tone at a time (constant envelope, any N)
108
108
 
@@ -113,37 +113,6 @@ transmitter emits exactly one sinusoid at any instant, hopping between
113
113
  frequencies at the symbol clock. Constant envelope (PAPR = 3 dB, the
114
114
  peak-to-RMS of a pure sine) regardless of N.
115
115
 
116
- Time-frequency view of a 4-FSK burst — each column is one symbol,
117
- each row is one of the 4 available frequencies:
118
-
119
- ```
120
- freq
121
-
122
- F₃ │ . ▓ . . . ▓ . .
123
- F₂ │ . . . ▓ . . . .
124
- F₁ │ ▓ . . . . . ▓ .
125
- F₀ │ . . ▓ . ▓ . . ▓
126
- └────────────────────────→ time
127
- s₀ s₁ s₂ s₃ s₄ s₅ s₆ s₇
128
-
129
- Exactly one ▓ per column: at any instant, one tone at full amplitude.
130
- Over 8 symbols the modem has visited all 4 slots (that's what you see
131
- on an SDR waterfall over time), but never more than one at once.
132
- ```
133
-
134
- vs. what parallel multi-tone (OFDM-style; **not** this modem) would do:
135
-
136
- ```
137
- freq
138
-
139
- F₃ │ ▓ . ▓ ▓ . ▓ . ▓
140
- F₂ │ . ▓ ▓ . ▓ . ▓ ▓ Multiple ▓ per column: N tones
141
- F₁ │ ▓ ▓ . ▓ . ▓ ▓ . summed at each instant. PAPR grows
142
- F₀ │ ▓ . ▓ . ▓ ▓ . ▓ with N (~10·log₁₀(N)).
143
- └────────────────────────→ time
144
- s₀ s₁ s₂ s₃ s₄ s₅ s₆ s₇
145
- ```
146
-
147
116
  Why single-tone:
148
117
 
149
118
  - **All transmit power in one tone at a time** — maximum per-symbol SNR, no `1/N` power split across a stack.
@@ -168,7 +137,7 @@ On an SDR waterfall you'll see all N frequency slots "lit up" during a long tran
168
137
  ## Full SNR sweep
169
138
 
170
139
  Every baud × num_tones × RS × repeats combo is measured in
171
- [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.2/results.md). Re-run `poetry run weaklink-modem-benchmark` to
140
+ [`results.md`](https://github.com/ivica3730k/weaklink-9a3ice/blob/v0.7.3/results.md). Re-run `poetry run weaklink-modem-benchmark` to
172
141
  refresh.
173
142
 
174
143
  ---
File without changes