Я думаю, что в старых выпусках журнала QST была статья о DSP для декодирования Морзе / CW несколько лет назад. Возможно, стоит попробовать поискать в их архивах.
По сути, вам нужен код DSP, чтобы определить, присутствует ли тональный сигнал в любой данный момент времени, а также оценить время начала и окончания каждого тона. Затем масштабируйте длительность каждого тона и промежутки времени между тонами для ожидаемой скорости кода и сравнивайте их с таблицей временных интервалов для каждой буквы кода Морзе, чтобы оценить вероятность присутствия каждой или любой буквы.
В простейшем случае у вас может быть дерево решений с точкой-тире. При сильном шуме и затухании, а также при высокой индивидуальной настройке кулачка / времени вам могут потребоваться некоторые сложные статистические и / или адаптивные методы сопоставления звуковых шаблонов для получения достойных результатов.