You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. Technical information on various modem waveforms in the [modem codec frame design spreadsheet](https://github.com/drowe67/codec2/blob/master/doc/modem_codec_frame_design.ods)
26
-
1.[Modems for HF Digital Voice Part 1](http://www.rowetel.com/wordpress/?p=5420)
27
-
1.[Modems for HF Digital Voice Part 2](http://www.rowetel.com/wordpress/?p=5448)
28
-
1.[FDMDV modem README](README_fdmdv.md)
29
-
1.[OFDM modem README](README_ofdm.md)
30
-
1. Many blog posts in the [rowetel.com blog archives](http://www.rowetel.com/?page_id=6172)
|[c2demo.c](demo/c2demo.c)| Encode and decode speech with Codec 2 |
32
+
|[freedv_700d_tx.c](demo/freedv_700d_tx.c)| Transmit a voice signal using the FreeDV API |
33
+
|[freedv_700d_rx.c](demo/freedv_700d_rx.c)| Receive a voice signal using the FreeDV API |
34
+
|[freedv_700d_rx.py](demo/freedv_700d_rx.py)| Receive a voice signal using the FreeDV API in Python |
35
+
|[freedv_datac1_tx.c](demo/freedv_datac1_tx.c)| Transmit raw data frames using the FreeDV API |
36
+
|[freedv_datac1_rx.c](demo/freedv_datac1_rx.c)| Receive raw data frames using the FreeDV API |
37
+
38
+
So also [freedv_api.h](src/freedv_api.h) and [freedv_api.c](src/freedv_api.c) for the full list of API functions. Only a small set of these functions are needed for basic FreeDV use, please see the demo programs for minimal examples.
39
+
40
+
The full featured command line demo programs [freedv_tx.c](src/freedv_tx.c) & [freedv_rx.c](src/freedv_rx.c) demonstrate many features of the API:
Speech samples are input to the API as 16 bit signed integers. Modulated samples can be in real 16 bit signed integer or complex float. The expected sample rates can be found with `freedv_get_speech_sample_rate()` and `freedv_get_modem_sample_rate()`. These are typically 8000 Hz but can vary depending on the current FreeDV mode.
31
48
32
49
## FreeDV HF Modes
33
50
@@ -49,7 +66,7 @@ Notes:
49
66
50
67
1.*Multipath* is the relative resilience of the mode to multipath fading, the biggest problem digital voice faces on HF radio channels. Analog SSB would be rated as "good".
51
68
52
-
1.*Text* is a side channel for low bit rate text such as your location and call sign. It is generally unprotected by FEC, and encoded with varicode.
69
+
1.*Text* is a side channel for low bit rate text such as your location and call sign. It is generally unprotected by FEC, and encoded with varicode. The exception is if reliable_text support is turned on (see reliable_text.c/h); this results in text protected by LDPC(112,56) FEC with interleaving.
53
70
54
71
1.*SNR Min* is for an AWGN channel (no multipath/fading).
55
72
@@ -80,19 +97,6 @@ These modes use constant amplitude modulation like FSK or FM, and are designed f
80
97
81
98
The FSK_LDPC mode is used for data, and has user defined bit rate and a variety of LDPC codes available. It is discussed in [README_data](README_data.md)
82
99
83
-
## FreeDV API
84
-
85
-
The `codec2/demo` directory provides simple FreeDV API demo programs written in C and Python to help you get started, for example:
See also [freedv_api.h](src/freedv_api.h) and [freedv_api.c](src/freedv_api.c), and the full featured command line demo programs [freedv_tx.c](src/freedv_tx.c) & [freedv_rx.c](src/freedv_rx.c):
FreeDV 2400A and FreeDV 2400B are modes designed for VHF radio. FreeDV 2400A is designed for SDR radios (it has a 5 kHz RF bandwidth), however FreeDV 2400B is designed to pass through commodity FM radios.
Adjust `--clip [0|1]` and 3rd argument of `cohpsk_ch` to obtain a PER of just less than 0.1, and note the SNR and PAPR reported by `cohpsk_ch`. The use of the `ve9qrp` samples makes the test run for a few minutes, in order to get reasonable multipath channel results.
196
+
197
+
## Reading Further
198
+
199
+
1.[FreeDV web site](http://freedv.org)
200
+
1.[FreeDV GUI User Manual](https://github.com/drowe67/freedv-gui/blob/master/USER_MANUAL.md)
201
+
1.[Codec 2](http://rowetel.com/codec2.html)
202
+
1. FreeDV can also be used for data [README_data](https://github.com/drowe67/codec2/blob/master/README_data.md)
1. Technical information on various modem waveforms in the [modem codec frame design spreadsheet](https://github.com/drowe67/codec2/blob/master/doc/modem_codec_frame_design.ods)
210
+
1.[Modems for HF Digital Voice Part 1](http://www.rowetel.com/wordpress/?p=5420)
211
+
1.[Modems for HF Digital Voice Part 2](http://www.rowetel.com/wordpress/?p=5448)
212
+
1.[FDMDV modem README](README_fdmdv.md)
213
+
1.[OFDM modem README](README_ofdm.md)
214
+
1. Many blog posts in the [rowetel.com blog archives](http://www.rowetel.com/?page_id=6172)
0 commit comments