Цитата(sK0T @ May 25 2006, 04:43)

Цитата(ArAhis @ May 25 2006, 02:38)

Не факт, что принимаемый сигнал будет 111000111000! Если один из фронтов тактового сигнала совподет с фронтом входного сигнала, то может получиться следующее: пусть, например, фронт входного сигнала совпадает с каждым 3-м фронтом синхросигнала, тогда по этому фронте мы можем принять, либо '1' либо '0', причем не факт, что входной сигнал на этом фронте всегда будет искажаться в одну сторону, например, мы можем принять любой из следующих сигналов:
110000111001 или
111000110000 и т.д.
Т.е. на каждом 3-м фронте тактового сигнала, мы можем принять как '1', так и '0', не зависимо от фронта входного сигнала (1->0 или 0->1)!!!
Вообще-то там дальше было написано про подсчёт единиц или нулей, ага?
110 000 111 001 — 2 0 3 1 — 1 0 1 0
111 000 110 000 — 3 0 2 0 — 1 0 1 0
Если k взять побольше, всё будет с приличной вероятностью. «Идеальный» приём сигнала в таких условиях представляется задачей в общем случае не разрешимой. Если два устройства питаются независимыми синхросигналами, то синхронизовать их в общем случае без передачи синхросигналов нельзя. Например передаётся ноль. За какое-то время генераторы в устройствах разойдутся так, что сказать сколько нулевых бит прошло между двумя моментами времени достоверно будет нельзя и никакие ресурсы ПЛИС тут не помогут.
Единственный вариант — делать сверх-семплирование способом, который я уже описал и надеятся на то, что по каналу пробегает достаточно ноликов и единичек для переодической синхронизации буфера.
Размышлял тут по поводу сверх-семплирования и пришел к следующим выводам:
- сверх-семплирование с частотами большими в 2, 4, 6, 8,... раз частоты входного сигнала не поможет, поскольку в анализируемых 2, 4, 6, 8,...-битных выборках может быть равное число '1' и '0', и тогда не понятно какой сигнал выбирать - '1' или '0';
- сверх-семплирование с частотами в 3, 5, 7,... раз больше частоты входного сигнала также непонятно: может возникнуть ситуация, когда фронт сигнала совпадет с центральным отсчетом сверх-семплированного сигнала; например, сигнал 01, сверх-семплированный с частотой в 5 раз больше может приняться как сигнал 00011 или как сигнал 00111 (центральный бит попал на фронт перехода 0->1) и тогда не понятно, что брать - '1' или '0'.