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
@@ -80,34 +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:
| c2demo | Demonstrates usage of the codec2_* function calls. |
97
-
| freedv_700d_rx | Demonstrates how to receive a FreeDV voice signal. |
98
-
| freedv_700d_tx | Demonstrates how to transmit a FreeDV voice signal. |
99
-
| freedv_datac1_rx | Demonstrates how to receive a FreeDV data signal. |
100
-
| freedv_datac1_tx | Demonstrates how to transmit a FreeDV data signal. |
101
-
102
-
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):
Note that FreeDV expects and outputs 16-bit integer samples at one of two rates: freedv_get_modem_sample_rate() for transmit output/receive input and freedv_get_speech_sample_rate() for transmit input/receive output. These are typically 8000 Hz but can vary depending on the current FreeDV mode.
110
-
111
100
## FreeDV 2400A and 2400B modes
112
101
113
102
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