Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ОБПФ-БПФ, откуда берутся пики и как уйти от них
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
lennen
Я делал OFDM-систему в пакете MATLAB, все шикарно, есть большой разброс амплитуд ОФДМ-сигнала, но этот разброс не в 4 и не в 6 раз. Сейчас сделал ОБПФ в C# и получил жуткие всплески вначале и в конце ОФМД-символа.
Я подумал сначала, что в этом что-то есть, потому что складываем много сигналов и там при определенных фазах комплексных гармоник может получиться сложение в конкретных точек очень большого числа амплитуд сигналов в фазе, поэтому все может быть... Но! В Матлабе-то я такого еще не видел

Я прошу Вас помочь разобраться с этим явлением. Как избежать такого всплеска? Нажмите для просмотра прикрепленного файла

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

Бонусный вопрос - почему у меня погрешность возникает порядка 10е-6 при восстановлении сигнала?
Fat Robot
Встречный к бонусному:
Есть ли узлы приемного тракта ofdm, которые вам понятны? И если есть, то какие?

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

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

И даю уточнение к первому сообщению - я делал так много нулевых частот, потому что это запланировано. Я рассчитываю, что сигнал будет сразу в ВЧ-области. Если это плохо и из-за этого все проблемы - дайте знать. Просто я пробовал делать без нулевых несущих, а в итоге всплески все-равно были. Второе уточнение - я предполагаю, что если фазы комплексных поднесущих построить не случайным образом, то произойдет компенсация и всплесков не будет. Но я боюсь, вдруг не так? Третье уточнение - пилоты я специально выделил, и задал пока их наугад.
Krys
Цитата(lennen @ Oct 19 2015, 17:27) *
И заодно хочу спросить элементарную вещь: почему в 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
lennen
С пиками, может быть, все более менее. Смотрите, какой красивый сигнал получился, когда фазы правильные выставил:
Нажмите для просмотра прикрепленного файла
lennen
Зато не знаю, что с этим случаем делать. Это нормально вообще?
Нажмите для просмотра прикрепленного файла
Corner
Я тут что то написал, у меня получилась какая то ерунда. Разберитесь за меня почему...
lennen
Хорошо, разобрался. У Вас, наверное, все правильно написано про то, что если много частот имеется в центре сигнала, а затем еще много нулей в высокой частоте, то пики - это естественно. Скремблер реально помог. Так что спасибо, все норм!

А если подать на вход ОБПФ сигнал с такими же спектральными составляющими, но расположенными не в центре спектра, а по его бокам, то пики будут меньше теоретически? Это можно как-то объяснить?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.