Необходимо вычислить частоту принятого сигнала по данным оцифрованных точек(сэмпл).
Частота дискретизации должна быть минимум в два раза выше частоты сигнала.
ожидал получить четкий пик, а в реальности это вообще непонятная кривая
Всё правильно, идеальных сигналов не бывает. Для этого должно быть бесконечное время записи. Если у вас конечное время, то у вас всегда будут лепестки с шумом.
Как вычислить частоту искаженого сигнала?
В теории смоделировать канал передачи, затем применить обратное преобразование. На практике, если сигнал известен, то можно использовать взаимную корреляцию. Если вы знаете, что передавалась синусоида, то это будет самый большой пик на спектре. А в общем случае - никак, нужно искать какие-то закономерности.