DRM mode "HAM" specification


Scope

This document describes the DIFFERENCE of mode HAM to the official broadcast DRM standard (es_201980v010202p.pdf)

Carrier Config

Number of Carriers:
Mode A: 
  2.3khz -> 53  
  2.5khz -> 57
Mode B:  
  2.3khz -> 45
  2.5khz -> 51
Mode E:  
  2.3khz -> 29
  2.5khz -> 31

The actual Carrier Config showing 1 frame. All Frames are equal.
carriers from right to left, symbols from top to bottom,
400 ms per frame.
Robustness mode B / Spectrum occupancy 1

*....T0f.TT.0T..TT0.X..f0.TT.T0fTT..0T.TT.0T....*..
..*....f0.X...0.....0.Xf..0....f0.X...0.....0.....*
....0..f..0.X...0.....0fX...0..f..0.X...0.....0....
*.....0f....0.X...0....f0.X...0f....0.X...0.....*..
..*.X..f0.....0.X...0..f..0.X..f0.....0.X...0.....*
....0.Xf..0.....0.X...0f....0.Xf..0.....0.....0....
*.....0fX...0.....0.X..f0.....0fX...0.....0.....*..
..*....f0.X...0.....0.Xf..0....f0.X...0.....0.....*
....0..f..0.X...0.....0fX...0..f..0.X...0.....0....
*.....0f....0.X...0....f0.X...0f....0.X...0.....*..
..*.X..f0.....0.X...0..f..0.X..f0.....0.X...0.....*
....0.Xf..0.....0.X...0f....0.Xf..0.....0.....0....
*.....0fX...0.....0.X..f0.....0fX...0.....0.....*..
..*....f0.X...0.....0.Xf..0....f0.X...0.....0.....*
....0..f..0.X...0.....0fX...0..f..0.X...0.....0....


Robustness mode A / Spectrum occupancy 1

*...TT.f.TT..TT.....0T...f.TT..TT.f.TT.T0..TT............
....*..fX...........X...0f..X.....f.........0...X........
.......f0...X...........Xf..0...X.f.............0........
.......f....0...X........f..X...0.f.X...............*....
.......f........0...X....f......X.f.0...X...............*
*......f........X...0...Xf........f.X...0...X............
....*..f............X...0f..X.....f.....X...0...X........
.......f0...............Xf..0...X.f.........X...0........
.......fX...0............f..X...0.f.X...........X...*....
.......f....X...0........f......X.f.0...X...............*
*......f........X...0....f........f.X...0...X............
....*..fX...........X...0f........f.....X...0...X........
.......f0...X...........Xf..0.....f.........X...0........
.......f....0...X........f..X...0.f.................*....
.......f........0...X....f......X.f.0...................*


Robustness mode E / Spectrum occupancy 0

*...f.TT0...TTf.0..fTT..0TT.*
.0..f0X..0...0f..0.f.0X..0...
..0.f.0X..0...fX..0f..0X..0..
...0f..0X..0..f0X..f...0...0.
*...f...0X..0.f.0X.f0...0...*
.0..f0...0X..0f..0Xf.0...0...
..0Xf.0...0X..f...0f..0...0..
...0f..0...0X.f0...fX..0...0.
*...fX..0...0Xf.0..f0X..0...*
.0..f0X..0...0f..0.f.0X..0...
..0.f.0X..0...fX..0f..0X..0..
...0f..0X..0X.f0X..f...0...0.
*...f...0X..0.f.0X.f0...0...*
.0..f0...0X..0f..0Xf.0...0...
..0Xf.0...0X..fX..0f..0...0..
...0f..0...0X.f0...fX..0...0.
*...fX..0...0Xf.0..f0X..0...*
.0..f0X..0...0f..0.f.0X..0...
..0.f.0X..0...fX..0f..0X..0..
...0f..0X..0..f0X..f...0...0.


Legend:
	: DC-carrier
	. MCS cells
	X FAC cells
	T time pilots
	f frequency pilots
	0 scattered pilots
	* boosted scattered pilots

Timing

Based on 48'000 sample/sec, 19200 samples frame length. FFT size in Samples.

Mode A: 
FFT_SIZE		1152
SYM_PER_FRAME		15
ENUM_TG_TU		1
DENOM_TG_TU		9

Mode B: 
FFT_SIZE		1024
SYM_PER_FRAME		15
ENUM_TG_TU		1
DENOM_TG_TU		4

Mode E: 
FFT_SIZE		640
SYM_PER_FRAME		20
ENUM_TG_TU		1
DENOM_TG_TU		2

Total samples per frame = 19200. 
Guard interval length = FFT_SIZE * ENUM_TG_TU / DENOM_TG_TU.
Symbol length = FFT_SIZE + Guard interval length.
Frame length = SYM_PER_FRAME * Symbol length.
Carrier spacing: 1 / FFT_SIZE.


FAC Config

The FAC data field is only 40 bits now, allowing to lower the number of FAC-Cells to 45. The FAC content is as follows:
FAC Data:
	2 bit FRAME-ID, identifies a frame in a superframe, value 0,1,2
	1 bit Spectrum Occupancy (2.3 / 2.5 khz)
	1 bit Interleaver Depth (400ms / 2s)
	1 bit MSC Mode (16 / 64 QAM)
	1 bit Prot Level (amount of FEC used)
	1 bit Audio/Data
	if Audio
	  2 bit Audio Coding, value LPC, unused, SPEEX
	  1 bit Text Flag
	if Data
	  2 bit Packed ID 
	  1 bit extended MSC mode (QAM 4)
	21 bit Label, consisting of 3*7 bit ascii character (9 char in superframe)
	1 bit Dummy
	8 bit CRC
total of 40 bits of data.



MSC capacity

The number of bits in one MSC Frame (400 ms) is:
specoccupp 2.5
	mode A  
		tot MSC cells 707
		Prot 0
			QAM16	1395
			QAM64	2094
		Prot 1
			QAM4 	 837
			QAM16	1745
			QAM64	2511
	mode B
		tot MSC cells 530
		Prot 0
			QAM16	1047
			QAM64	1572
		Prot 1
			QAM4 	 627
			QAM16	1310
			QAM64	1883
	mode E
		tot MSC cells 369
		Prot 0
			QAM16	 762
			QAM64	1087
		Prot 1
			QAM4 	 435
			QAM16	1087
			QAM64	1306
specoccupp 2.3
	mode A
		tot MSC cells 647
		Prot 0
			QAM16	1281
			QAM64	1921
		Prot 1
			QAM4 	 768
			QAM16	1601
			QAM64	2305
	mode B
		tot MSC cells 455
		Prot 0
			QAM16	 897 
			QAM64	1345
		Prot 1
			QAM4 	 537
			QAM16	1121
			QAM64	1613
	mode E
		tot MSC cells 339
		Prot 0
			QAM16	 666 
			QAM64	 997
		Prot 1
			QAM4 	 399
			QAM16	 831
			QAM64	1198

Notes:
- Voice is only possible in modes with more than 1000 bit/400ms
- High Protection is not supported for QAM4 modulation.

Audio Coding

LPC Codec:

  180 samples input at 8khz produce 54 bits output.

  one input audio frame has 19200 samples at 48khz (400msec)
  this is resampled to 3200 samples at 8khz 

  the 3200 samples are divided into 17 lpc frames, (todo: better solution) 
  the remaining 140 samples are lost.

  total lpc output is 918 bits. a 30 bit checksum is added,
  and the 32 bits of textmessage are attached at the end of the msc-frame.

SPEEX Codec:

  160 samples input at 8khz produce 48 bits output.

  one input audio frame has 19200 samples at 48khz (400msec)
  this is resampled to 3200 samples at 8khz 

  the 3200 samples are divided into 20 SPEEX frames. 
  
  total SPEEX output is 960 bits. a 30 bit checksum is added,
  and the 32 bits of textmessage are attached at the end of the msc-frame.