adjusted clipper in C & octave, regerenerated curves

dr-datac14
drowe67 2024-05-01 15:56:01 +09:30 committed by David Rowe
parent 23a7d60bf8
commit 7f6188ccce
5 changed files with 5 additions and 5 deletions

View File

@ -146,7 +146,7 @@ These modes use an OFDM modem with powerful LDPC codes and are designed for send
| DATAC3 | 500 | 321 | 126 | (2048,1024) | 3.19 | 74/100 at 0dB | Forward link data (low SNR) |
| DATAC4 | 250 | 87 | 56 | (1472,448) | 5.17 | 90/100 at -4dB | Forward link data (low SNR) |
| DATAC13 | 200 | 64 | 14 | (384,128) | 2.0 | 90/100 at -4dB | Reverse link ACK packets (low SNR) |
| DATAC14 | 250 | 58 | 3 | (112,56) | 0.69 | 90/100 at -4dB | Reverse link ACK packets (low SNR) |
| DATAC14 | 250 | 58 | 3 | (112,56) | 0.69 | 90/100 at -2dB | Reverse link ACK packets (low SNR) |
Notes:
1. 16 bits (2 bytes) per frame are reserved for a 16 bit CRC, e.g. for `datac3` we have 128 byte frames, and 128-2=126 bytes/frame of payload data.
@ -246,7 +246,7 @@ This command line demonstrates the effect:
```
Try adjusting `--clip` and `No` argument of `ch` (noise level) for different modes. Note the SNR estimates returned from `freedv_data_raw_rx` compared to the SNR from the channel simulator `ch`. You will notice clipping also increases the RMS power and reduces the PER for a given channel noise power. CPAPR will also reduce with clipping enabled.
The following plots illustrate the SNR estimates versus actual channel SNR with and without compression (clipping). Not that even with the uncompressed waveform there is a small offset of around 1dB, possibly due to modem implementation loss or noise in the frequency, phase, or timing estimators.
The following plots illustrate the SNR estimates versus actual channel SNR with and without compression (clipping). Note that even with the uncompressed waveform there is a small offset of around 1dB, possibly due to modem implementation loss or noise in the frequency, phase, or timing estimators.
![](doc/snrest_snr_ctx.png)
![](doc/snrest_snr_ctxc.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -144,7 +144,7 @@ function config = ofdm_init_mode(mode="700D")
config.tx_uw(end-24+1:end) = [1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0];
config.amp_est_mode = 1; config.EsNodB = 3;
config.state_machine = "data";
config.amp_scale = 2.5*300E3; config.clip_gain1 = 1.2; config.clip_gain2 = 1.0;
config.amp_scale = 2*300E3; config.clip_gain1 = 2; config.clip_gain2 = 1;
config.txbpf_width_Hz = 400;
elseif strcmp(mode,"1")
Ns=5; config.Np=10; Tcp=0; Tframe = 0.1; Ts = Tframe/Ns; Nc = 1;

View File

@ -247,8 +247,8 @@ void ofdm_init_mode(char mode[], struct OFDM_CONFIG *config) {
memcpy(config->tx_uw, uw, sizeof(uw));
memcpy(&config->tx_uw[config->nuwbits - sizeof(uw)], uw, sizeof(uw));
config->data_mode = "streaming";
config->amp_scale = 2.5 * 300E3;
config->clip_gain1 = 1.2;
config->amp_scale = 2.0 * 300E3;
config->clip_gain1 = 2.0;
config->clip_gain2 = 1.0;
config->rx_bpf_en = true;
} else {