From 23a7d60bf8269db6d11d106dc70df001e26f9933 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Sat, 30 Mar 2024 08:08:09 +1030 Subject: put snr_curve.sh system back in from codec2-dev, curves for datac14 --- README_data.md | 1 + 1 file changed, 1 insertion(+) (limited to 'README_data.md') diff --git a/README_data.md b/README_data.md index 17481f3..3ceccb4 100644 --- a/README_data.md +++ b/README_data.md @@ -146,6 +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) | 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. -- cgit v1.2.3 From 7f6188ccce691d8d93a1dd98ab86a9f0b23ffe36 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Wed, 1 May 2024 15:56:01 +0930 Subject: adjusted clipper in C & octave, regerenerated curves --- README_data.md | 4 ++-- doc/c_tx_comp.png | Bin 36292 -> 39874 bytes doc/c_tx_comp_thruput.png | Bin 32796 -> 34357 bytes octave/ofdm_mode.m | 2 +- src/ofdm_mode.c | 4 ++-- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'README_data.md') diff --git a/README_data.md b/README_data.md index 3ceccb4..49fb9e3 100644 --- a/README_data.md +++ b/README_data.md @@ -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) diff --git a/doc/c_tx_comp.png b/doc/c_tx_comp.png index 5d781c0..a950479 100644 Binary files a/doc/c_tx_comp.png and b/doc/c_tx_comp.png differ diff --git a/doc/c_tx_comp_thruput.png b/doc/c_tx_comp_thruput.png index 0288f7a..f4010ca 100644 Binary files a/doc/c_tx_comp_thruput.png and b/doc/c_tx_comp_thruput.png differ diff --git a/octave/ofdm_mode.m b/octave/ofdm_mode.m index a56edac..d88f960 100644 --- a/octave/ofdm_mode.m +++ b/octave/ofdm_mode.m @@ -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; diff --git a/src/ofdm_mode.c b/src/ofdm_mode.c index f92d288..df0b4f5 100644 --- a/src/ofdm_mode.c +++ b/src/ofdm_mode.c @@ -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 { -- cgit v1.2.3