Перейти к содержанию
    

ОБПФ-БПФ, откуда берутся пики и как уйти от них

Я делал OFDM-систему в пакете MATLAB, все шикарно, есть большой разброс амплитуд ОФДМ-сигнала, но этот разброс не в 4 и не в 6 раз. Сейчас сделал ОБПФ в C# и получил жуткие всплески вначале и в конце ОФМД-символа.

Я подумал сначала, что в этом что-то есть, потому что складываем много сигналов и там при определенных фазах комплексных гармоник может получиться сложение в конкретных точек очень большого числа амплитуд сигналов в фазе, поэтому все может быть... Но! В Матлабе-то я такого еще не видел

 

Я прошу Вас помочь разобраться с этим явлением. Как избежать такого всплеска? post-88647-1445250410_thumb.png

 

И заодно хочу спросить элементарную вещь: почему в MATLAB при выполнении ОБПФ длиной 1000 выборок при частоте дискретизации 100 кГц, например, в спектре длиной 1000 выборок появляется лишь одна гармоника 100кГц, а при выполнении ОБПФ на C# получается две гармоники - 100кГц и 900 кГц? С института я понимаю возможность этих двух ситуаций и вспоминаю некоторые математические доказательства, но до меня пока не доходит.

 

Бонусный вопрос - почему у меня погрешность возникает порядка 10е-6 при восстановлении сигнала?

Изменено пользователем lennen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Встречный к бонусному:

Есть ли узлы приемного тракта ofdm, которые вам понятны? И если есть, то какие?

 

А то вы здесь описываете довольно любопытную мистическую ситуацию: "когда-то читал/видел много книг, тогда же всё работало на отличненько, но сейчас ничего не понятно, и, соответственно, ничего не работает. интернет, помогай!"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли узлы приемного тракта ofdm
Все понятны. Программу в Матлаб я пишу и сейчас, вот недавно на этом же форуме вопрос по каналу спрашивал, сильно идеально получилось. Здесь в приемнике все основные узлы, мне проще некуда https://ru.wikipedia.org/wiki/OFDM. ну плюс добавление циклического префикса и блок формирования данные+нули+пилот-сигналы, эквализация. Кстати, вот оценку канала по пилот-сигналам я пока сделать еще не в состоянии, но понимаю, как ее могу сделать, буду стараться. Думаю, у Вас вопрос не связан с тем, чтобы лучше понять, какие технологии я вообще знаю, поэтому на этом пока ограничимся, если что - спрашивайте.

 

Но если бы я был нереальным гением, знающим все по ОФДМ, то вопросов бы и не возникло. "Читал книги" - я в лондонской библиотеке сидел несколько дней безвылазно 2 месяца назад, то есть я говорил, скорее, о настоящем. Поэтому хотелось бы уже получить какую-то поддержку специалистов;) Поэтому, меня сейчас интересует вопрос непосредственно преобразования Фурье и понимания, что у меня происходит. Просто вот не доходит до меня пока что.

 

И даю уточнение к первому сообщению - я делал так много нулевых частот, потому что это запланировано. Я рассчитываю, что сигнал будет сразу в ВЧ-области. Если это плохо и из-за этого все проблемы - дайте знать. Просто я пробовал делать без нулевых несущих, а в итоге всплески все-равно были. Второе уточнение - я предполагаю, что если фазы комплексных поднесущих построить не случайным образом, то произойдет компенсация и всплесков не будет. Но я боюсь, вдруг не так? Третье уточнение - пилоты я специально выделил, и задал пока их наугад.

Изменено пользователем lennen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И заодно хочу спросить элементарную вещь: почему в MATLAB при выполнении ОБПФ длиной 1000 выборок при частоте дискретизации 100 кГц, например, в спектре длиной 1000 выборок появляется лишь одна гармоника 100кГц, а при выполнении ОБПФ на C# получается две гармоники - 100кГц и 900 кГц?
Это возможно связано с разными способами представления периодического спектра. Одна функция показывает спектр от 0 до Fs, а вторая - от -Fs/2 до +Fs/2. Хотя вообще-то функция fft в матлабе показывает спектр вторым образом, т.е. должны быть палки и 100кГц и 900кГц. А чтобы было первым образом, в матлабе есть функция fftshift: http://www.mathworks.com/help/matlab/ref/fftshift.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С пиками, может быть, все более менее. Смотрите, какой красивый сигнал получился, когда фазы правильные выставил:

post-88647-1445421580_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зато не знаю, что с этим случаем делать. Это нормально вообще?

post-88647-1445429030_thumb.png

Изменено пользователем lennen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тут что то написал, у меня получилась какая то ерунда. Разберитесь за меня почему...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо, разобрался. У Вас, наверное, все правильно написано про то, что если много частот имеется в центре сигнала, а затем еще много нулей в высокой частоте, то пики - это естественно. Скремблер реально помог. Так что спасибо, все норм!

 

А если подать на вход ОБПФ сигнал с такими же спектральными составляющими, но расположенными не в центре спектра, а по его бокам, то пики будут меньше теоретически? Это можно как-то объяснить?

Изменено пользователем lennen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...