MCPcopy Create free account
hub / github.com/ON4QZ/QSSTV / SoftConvolution

Method SoftConvolution

src/drmtx/common/mlc/ConvEncoder.cpp:173–211  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

171
172#ifdef USE_MAX_LOG_MAP
173_DECISION CConvEncoder::SoftConvolution(const _BYTE byNewStateShiftReg,
174 CShiftRegister<_DECISION>& vecStateMem,
175 const int iGenPolyn)
176{
177 _DECISION decSoftOut;
178
179 /* Search for minimum norm value of input soft-informations.
180 Here we implement the convolution of the soft information independent of
181 the poylnoms stored in "byGeneratorMatrix[]"! When changing the polynoms,
182 it has to be changed here, too */
183 switch (iGenPolyn)
184 {
185 case 0:
186 case 3:
187 /* oct: 0155 -> 1101101 */
188 decSoftOut = Min(Min(Min(Min(vecStateMem[0], vecStateMem[2]),
189 vecStateMem[3]), vecStateMem[5]), vecStateMem[6]);
190 break;
191
192 case 1:
193 /* oct: 0117 -> 1001111 */
194 decSoftOut = Min(Min(Min(Min(vecStateMem[0], vecStateMem[1]),
195 vecStateMem[2]), vecStateMem[3]), vecStateMem[6]);
196 break;
197
198 case 2:
199 /* oct: 0123 -> 1010011 */
200 decSoftOut = Min(Min(Min(vecStateMem[0], vecStateMem[1]),
201 vecStateMem[4]), vecStateMem[6]);
202 break;
203 }
204
205 /* Hard decision defines the sign, the norm is defined by the minimum of
206 input norms of soft informations using max-log approximation */
207 if (Convolution(byNewStateShiftReg, iGenPolyn) == 0)
208 return -decSoftOut;
209 else
210 return decSoftOut;
211}
212#endif
213
214void CConvEncoder::Init(ECodScheme eNewCodingScheme,

Callers

nothing calls this directly

Calls 1

MinFunction · 0.50

Tested by

no test coverage detected