Я на MATLAB сделал OFDM-модем раньше, и все супер. Скрин работы программы.Нажмите для просмотра прикрепленного файла Здесь использован метод уменьшения пиковой мощности (ПАПР), поэтому уровень сигнала во временной области находится около 2 В, сильно не изменяется. Если убрать галочку TR, то уровень может меняться от 2 В до 4 В, например, но не более того. С этим я очень хорошо разбирался, но, однако, в алгоритмы формирования OFDM-символа в частотной области сильно не лазил, были готовые решения, принцип работы которых как будто был полностью понятен. Сейчас оказалось, что у меня небольшой нежданчик в теории.
Вот программа, которую я сейчас пишу на C#, просто ОБПФ от спектра, а затем БПФ для возвращения к частотной области: Нажмите для просмотра прикрепленного файла Посмотрите, имеется множество всплесков, амплитуда которых больше уровня 20 в 4 раза. Я думаю, у меня неортогональные несущие, но я не понимаю, почему у меня так.
Я вспомнил про сумму синусоид, что мы это строили в универе, и "суммировал" меньшее количество гармоник. Смотрите рисунок:
Нажмите для просмотра прикрепленного файла Это же классика, если складываются 4 колебания, как в данном случае, то в суммарном сигнале имеются всплески.
Но тогда вернемся к OFDM - там же нет таких всплесков. Поэтому к вам вопрос, как мне изменить мою программу, что поменять в коде этой программы, чтобы не было наблюдаемых громадных всплесков амплитуды ОФДМ-сигнала?