mirror of
https://github.com/aicodix/modem.git
synced 2026-04-27 22:35:41 +00:00
frequency shifted sync symbol not worth the trouble
This commit is contained in:
parent
cca0199d63
commit
b1d704513b
2 changed files with 1 additions and 17 deletions
|
|
@ -45,7 +45,6 @@ struct SchmidlCox
|
|||
DSP::Delay<value, match_del> delay;
|
||||
DSP::SchmittTrigger<value> threshold;
|
||||
DSP::FallingEdgeTrigger falling;
|
||||
DSP::Phasor<cmplx> fsh;
|
||||
cmplx tmp0[symbol_len], tmp1[symbol_len], tmp2[symbol_len];
|
||||
cmplx seq[symbol_len], kern[symbol_len];
|
||||
cmplx cmplx_shift = 0;
|
||||
|
|
@ -73,9 +72,6 @@ public:
|
|||
|
||||
SchmidlCox(const cmplx *sequence) : threshold(value(0.2*match_len), value(0.3*match_len))
|
||||
{
|
||||
#if 1
|
||||
fsh.omega(-1, symbol_len);
|
||||
#endif
|
||||
for (int i = 0; i < symbol_len; ++i)
|
||||
seq[i] = sequence[i];
|
||||
fwd(kern, sequence);
|
||||
|
|
@ -84,8 +80,7 @@ public:
|
|||
}
|
||||
bool operator()(const cmplx *samples)
|
||||
{
|
||||
cmplx S = fsh();
|
||||
cmplx P = conj(S) * cor(S * samples[search_pos] * conj(samples[search_pos+symbol_len]));
|
||||
cmplx P = cor(samples[search_pos] * conj(samples[search_pos+symbol_len]));
|
||||
value R = value(0.5) * pwr(norm(samples[search_pos]) + norm(samples[search_pos+symbol_len]));
|
||||
value min_R = 0.0001 * symbol_len;
|
||||
R = std::max(R, min_R);
|
||||
|
|
|
|||
11
encode.cc
11
encode.cc
|
|
@ -69,22 +69,11 @@ struct Encoder
|
|||
CODE::MLS seq(0b1100111);
|
||||
for (int i = 0; i < symbol_len; ++i)
|
||||
fdom[i] = 0;
|
||||
#if 1
|
||||
fdom[first_subcarrier+1] = std::sqrt(value(2 * symbol_len) / value(subcarrier_count));
|
||||
for (int i = first_subcarrier + 2; i < first_subcarrier + subcarrier_count + 1; ++i)
|
||||
fdom[i] = fdom[i-1] * cmplx(nrz(seq()));
|
||||
symbol();
|
||||
for (int i = first_subcarrier; i < first_subcarrier + subcarrier_count; ++i)
|
||||
fdom[i] = fdom[i+1];
|
||||
fdom[first_subcarrier+subcarrier_count] = 0;
|
||||
symbol(false);
|
||||
#else
|
||||
fdom[first_subcarrier] = std::sqrt(value(2 * symbol_len) / value(subcarrier_count));
|
||||
for (int i = first_subcarrier + 1; i < first_subcarrier + subcarrier_count; ++i)
|
||||
fdom[i] = fdom[i-1] * cmplx(nrz(seq()));
|
||||
symbol();
|
||||
symbol(false);
|
||||
#endif
|
||||
}
|
||||
cmplx mod_map(code_type *b)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue