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

serjj1333

Участник
  • Постов

    527
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные serjj1333


  1. "Визуально лучше" - это не метрика. EVM в студию. Для одного метода, для другого. Тогда можно сравнивать. Конечная метрика - это конечно uncoded BER, но о чём-то уже можно сказать по EVM.

     

    По теме:

    1. Есть ли синхро-вставки, по которым возможно обучение эквалайзера или он полностью слепой?

    2. Известна ли модель канала/доступны ли ИХ?

    3. Вам может не хватать длины эквалайзера, может быть поиграть этим параметром.

    4. Рассматриваете ли вы DFE? Или только FF решения?

    5. Учитывая, что ваш канал полагается стационарным (как я это понял), RLS можно не рассматривать, в пределе они сходятся к одной и той же MSE, что и LMS

     

    Исходя из модели канала можно оценить требуемую длину фильтра и значение мю при градиенте. Отдельно взятая реализация ничего не даст, нужно обеспечить некоторое покрытие.

    Если используется слепая адаптация, то реализацию стоит сравнить с "идеальным эквалайзером", который обучается по полностью известным данным. Известно, что LMS сходится к оптимальному фильтру Винера, если нет ошибок в решениях (идеальное обучение). Ваша реализация будет хуже этого. Вопрос насколько.

    Использование DFE позволит уменьшить длину FF части, что может быть критично, если вы работаете с длинными импульсными. Длинная импульсная = длинная FF часть, сходимость алгоритма тем хуже и сложнее, чем длиннее FF часть.

    При слепом обучении LMS не сходится при SER (symbol error rate) большем определенного значения. Можно попробовать CMA. Где-то попадалась статья, как реализовать CMA для многоуровневых созвездий, у самого руки не доходили пока поковырять это.

     

    Книжка по теме.

  2. Спасибо. Посмотрел, что работает. Синус восстанавливает прилично. Но этот алгоритм не соответствует требованию "просто".

    А на края окно можно наложить, наверное.

    Время не реальное (250 МВыб/с), но и не бесконечное. Возможно, и так получится. Нужно смотреть, во сколько уложится.

    А как будет интерполироваться этим алгоритмом перепад?

     

    Перепад чего смотря. Если амплитуды, то прекрасно, это легко проверить в том же скрипте :rolleyes: Как и любой другой перепад.

     

    А по сложности. Если у вас 250Msps, и вы хотите визуализировать сигнал на передискретезации, например, х10, то, наверное, это будет не потоковая визуализация, т.к. 2.5Gsps, допустим хотя бы байт на сэмпл = 20Gbps - согласитесь как-то многовато. Значит, скорее это будет какая-то произвольная выборка из данных АЦП, которая будет интерполироваться в N раз (в 10, например), выводиться на экран, далее берётся другая выборка и так по кругу. Правильно я понимаю?

     

    Тогда предложенное решение несложное, т.к. требует использования непотокового БПФ/ОБПФ, которое реализуется "малой кровью" как в аппаратуре так и на компьютере.

     

    ЗЫ: по поводу краёв, окно будет нужно, если вы хотите строить спектр этого сигнала. Для корректной визуализации проще выбрать только те значения, которые подходят. Например, с помощью ОБПФ было получено 8192 точки. Можно вывести на экран 8000 точек, выкинув первые и последние 96.

     

    ЗЗЫ: по поводу "приличности восстановления синуса". Метод, основанный на БПФ-ОБПФ - лучший линейный метод, т.к. он использует все доступные точки исходного сигнала для получения промежуточных значений. В этом плане он будет оптимальнее любого фильтра, т.к. фильтр будет просто напросто короче. С другой стороны нелинейные методы могут дать схожий результат по значительно меньшему количеству точек. Но тут вы рискуете получить всевозможные артефакты, как то: ложные экстремумы между точками, биения - это нелинейные искажения, которые присущи данным методам.

  3. Если реальное время не является критичным, можно использовать DFT интерполяцию. Пример:

    sine_interp_test.7z

     

    Здесь разумеется проявляются краевые эффекты, поэтому выводить лучше значения в интервале [N_guard...N_dft-N_guard]. Ну это уже детали реализации.

  4. Нет, период не известен. Даже, что синус, тоже притянуто за уши. Просто в документации будет записано "полоса частот такая-то". Если для максимальной частоты у меня выходит 5 выборок АЦП на период, желаю продемонстрировать, что наблюдается "синус".

     

    Для демонстрации "синуса" нужно ИМХО смотреть на спектр сигнала и на количество и соотношение гармоник: какие, сколько, каково соотношение между ними и т.д. Из наблюдения за колебанием во временной области ничего разумного заключить нельзя. Поэтому, сделать Фурье, для максимальной частоты будет хорошо наблюдаемая гармоника в районе fs/5, что и требуется показать.

  5. Имеется в виду ширина спектра генератора по уровню -3 дБ. Видимо подразумевают, что маска спектра генератора описывается строгой математической формулой независимо от отстройки, по которой, зная ширину по -3 дБ можно посчитать уровень ФШ при произвольной отстройке, т.е. получить профиль ФШ.

    Но ИМХО лучше глянуть статьи по-свежее, у analog devices например спектр ФШ разбивают на зоны, в каждой из которых спектральная плотность описывается своим законом. Я к тому, что реальный спектр генератора не всегда подходит под математическую абстракцию.

    Для OFDM кстати полезно получить значения профиля ФШ на отстройках кратных расстоянию между поднесущими. Эти значения можно пересчитать в деградацию ФШ. Возможно это более информативно чем ширина по -3 дБ.

  6. P.S. Задача свелась к чисто вещественной.

     

    Любопытно. Вы перешли от размерности N (6) к 2N (12) с последующим решением в поле вещественных чисел? Или у вас исходно только вещественный сигнал / матрица?

  7. Что-то не совсем понял исходную задачу. Ваша система имеет вид Ax = y, где размерность x - [6x1], y - [8x1], A - [8x6], задача оценить x, имея A и y?

    Линейное решение получается через псевдоинверсию: x=(ATA)-1ATy, если A действительная и x=(AHA)-1AHy - если комплексная. В первом случае ATA симметричная матрица, во втором - AHA эрмитова. Эти матрицы обладают известной симметрией, поэтому на них разумно натравить алгоритм Холецкого, по скорости он выигрывает у методов, которые не используют специальные свойства матриц.

  8. Если нетрудно, киньте пару графиков, которые строит ваш скрипт, для примера. Не у всех есть matlab/communication toolbox. Было бы любопытно глянуть. И, забегая вперёд, как это будет работать, если а) добавить допплер и б) канал?

  9. У Xilinx в Complex multiplier ip есть опция как имплиментировать умножение - в лоб или данным способом. И увеличение логики на дополнительных сложениях не будет, т.к. в самом dsp48 есть свободные сумматоры, которые он использует. Но данным способом вроде времянка была чуть хуже.

  10. а еще если pRX11 == pRx22, т.е. двухканальный приемник и pTx11 != pTx22. И так куча народу делает

    Конечно, если хотя бы одна из компонент ФШ (tx или rx) скаляр а не матрица, то линейное решение есть. Спортивный интерес, когда все ФШ разные.

    Кстати, как вариант, приведённую систему уравнений можно попробовать решить, если половину пилотов передавать как [x1 0], а другую - [0 x2].

  11. Можно проделать мысленный эксперимент. Допустим есть MIMO 2x2 с разными генераторами на каждый тракт, в передатчике и в приёмнике. Для простоты можно попробовать решить задачу только для CPE, т.е. найти 1 коэффициент ФШ, соответствующий повороту созвездия, ICI принебрегаем. Т.к. нет взаимного влияния тонов, индексы k можно опустить:

     

    post-81866-1461849602_thumb.png

     

    Можно прийти к выводу, что даже для этого простейшего случая линейного решения нет, если тракты используют различные генераторы со своими значениями ФШ. Этот вывод можно обобщить на MIMO систему большей размерности и на случай, когда ICI составляющей пренебречь нельзя.

    Могу представить себе, что, поворачивая и фильтруя принятый сигнал итеративно в пространстве приёмных антенн и выхода эквалайзера, влияние ФШ можно подавить. При этом на каждом шаге решать задачу минимизации ошибки с допуском того, что либо ФШ на передатчике либо на приёмнике равен нулю. Но это уже что-то из разряда фантастики :rolleyes:

  12. static float ACoef[2+1] = { 0.00000475623212008441,

    0.00000951246424016882,

    0.00000475623212008441};

     

    static float BCoef[2+1] = { 1.00000000000000000000,

    -1.99456353223009740000,

    0.99457337504708221000};

     

    isstable(b,a) в матлабе вернул false для ваших коэффициентов. Наверное стоит пересчитать фильтр?

  13. вот сделать это на разных, дешевых, шумящих генераторах было бы круто

    Ну если так подумать... Кто мешает? Можно сделать оценку спектра ФШ и деконволюцию в пространстве приёмных антенн сразу после Фурье. Для каждого тракта находить свои коэффициенты коррекции ICI. Но сложно представить зачем это могло бы понадобиться. Один генератор - дёшево и сердито) И алгоритмы проще. Разные генераторы - это разве что для случая, когда нужна опция разные антенны на разные полосы настраивать. Вроде multiband-MIMO гибрида какого-то ;)

     

  14. 16 дБ это не чуть получше :rolleyes:

    А про приём 8PSK на 6 дБ SNR - это сильно. Смотрим кривые BER

    280px-PSK_BER_curves.svg.png

    и видим, что 6 дБ - это > 2e-2 uncoded BER. Хорошие LDPC декодеры конечно вытаскивают не очень длинные пакеты при такой канальной ошибке, ок. Хотя бесперебойной связи уже не будет.

    Наличие эквалайзера предполагает канал с замираниями, в нём BER будет гарантированно хуже, чем в AWGN. Плюс на пороговом SNR линейный эквалайзер внесёт дополнительную ошибку, поэтому, даже если предположить, что канал не имеет замираний, чутьё станет несколько хуже. Либо нужно использовать ML.

    Конечно можно принимать 8PSK без всякого расширения спектра и ниже 6 дБ и в канале с замираниями, при условии наличия дополнительных антенн. MRC сильно облегчает жизнь.

     

  15. О влиянии фазового шума в OFDM модеме мне понравилось как в этой статье описано:

    10.1.1.70.4176.pdf

    Собственно формула (2) ставит 2 проблемы, которые требуется решать: общий поворот фазы (CPE) и межтоновая интерференция (ICI). Приводятся выкладки для SISO, для MIMO подобная же формула выводится простой заменой векторов в исходной модели на матрицы. Общая идея о разложении на CPE и ICI при этом останется той же самой: при условии, что фазовый шум один и тот же на всех приёмных антеннах, т.е. используется один генератор.

  16. В передатчике после IFFT последние Ncp сэмплов выхода фурье копируются в начало, при этом цикличность преобразования обеспечивает непрерывность фазы в точке стыковки. Полученный блок из Ncp+Nfft сэмплов передаётся.

    В приёмнике нужно выбрать соответственно Nfft сэмплов. Начало окна Фурье выбирается на интервале Ncp/2:Ncp с помощью схемы временной синхронизации. Т.о. на вход FFT поступят сэмплы Ncp/2+K+1:Ncp/2+K+Nfft, где K определяется схемой точной подстройки окна (fine timing).

  17. Понятно, что beamformer frequency domain это всего лишь способ формирования многолепестковой диаграммы направленности линейки (решетки).

    Frequency Domain Beamforming это альтернатива Wideband Time Domain Beamforming, который строится на фильтрах, а не на умножителях. При этом обе схемы эквивалентны. Количество лучей, которые вы можете получить в частотной области, никак не связано с тем, что вы работаете в этой самой области. В частотной области на получение дополнительного луча уйдёт меньше ресурса чем во временной (при условии, что обработка широкополосная). Как petrov уже упоминал, следует посмотреть как реализуются обычные фильтры в частотной области, для осознания сути частотного beamforming'a.

     

    Обычный delay and sum бимформер легко поймает отраженный сигнал.

    Вы имеете в виду видимо shift and sum. Delay - это Wideband Time Domain Beamforming и строится он на фильтрах. Для узкополосных трактов обычно также ставят frequency domain из-за сильного влияния Доплера.

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

    Это следует хотя бы из формулы определения spatial steering vector плоской волны:

     

    post-81866-1450356822_thumb.png

     

     

  19. Еще один момент. Понятно, что водная среда широкополосная. Поэтому это свойство и используется для построения бимформера в частотной области. А как быть с сигналом для построения звуковизора. Он тоже обязательно должен быть широкополосным, например ЛЧМ или обычный одночастотный сигнал при переводе его отражения в частотную область даст спектр на базе которого можно построить веер лучей?

    Насколько я знаю для sonar imaging используются только сигналы с базой >> 1, как правило ЛЧМ/ГЧМ и пр. Синус - это энергетика, он для дальнего обнаружения, хорошее сканирование только в относительно ближней зоне, там ЛЧМ/ГЧМ дают хорошее разделение откликов за счёт узкого главного лепестка в АКФ.

    Широкополосность - атрибут сигнала и метода его обработки, а не среды.

    Мне кажется вы ещё не поняли почему нужно применять частотный бимформинг. В матлабе есть широкополосная модель для АФАР различной геометрии, попробуйте собрать её + классический time domain бимформинг. Зависимость ДН от частоты кстати становится очевидной, когда вы посмотрите на формулу вычисления steering vector плоской волны для заданного угла. Тот же phase array toolbox позволяет строить angular-frequency response для разных геометрий решёток.

     

  20. Если сравнивать с фильтром то понятно. Ясное дело буфер должен быть не менее чем количество точек БПФ или, что тоже самое, количество лучей. При этом темп забора данных из буфера и вычисления это и есть разрешение по дальности.

    Откуда у вас такие убеждения?

    Количество лучей ограничено вашей фантазией.

    Количество точек Фурье (для Фурье, которые переводят данные АЦП во frequency domain) определяет количество частотных подканалов на которые будет разбит исходный сигнал.

    То что вы называете темпом забора - это перекрытия, с которыми потребуется делать преобразование, для удовлетворения ваших нужд. Обычно достаточно 50%. При очень малой стационарности большие перекрытия могут и не помочь вовсе -> требуется уменьшение базы преобразования.

    Разрешение по дальности определяется частотой следования импульсов на излучателе.

    Разрешающая способность при разделении наблюдаемых объектов - размерами апертуры и вашей обработкой, т.е. фактически шириной луча и возможностью ваших алгоритмов разделять сигналы близкие по мощности но идущие из близко-расположенных источников (пространственно-коррелированных).

  21. Как Petrov говорит, FFT это только инструмент. Если применить N-точечное Фурье к кажому выходу АЦП, то пространственный сигнал x(t...t+ts*(N-1)) будет переведён в частотную область (дальнейшая обработка естественно станет блоковой). С другой стороны, если подать пространственный сигнал x(t), собранного с M АЦП на вход M-точечного Фурье, то на выходе преобразования будет сигнал b(t), который будет представлять собой M ортогональных лучей. При этом сигнал x был переведён из time domain в beamspace time domain. Также можно каждый k-й столбец пространственного-частотного сигнала X[MxN] полученного из x(t...t+ts*(N-1)) подать на вход M-точечного Фурье и получить сигнал B[MxN], который есть M лучей на N частот. Сигнал B соответствует beamspace frequency domain.

     

    Интересующая нас пространственная обработка может быть реализована в любом из доменов в зависимости от требований и задач. Переход в домен отличный от time domain делается только для уменьшения сложности реализации. Теоретически любую обработку можно делать по данным АЦП/АЦП+ФНЧ.

     

    Ещё один момент. Приведённое выше справедливо для линейного массива, т.к. переход в beamspace domain в общем случае зависит от геометрии ФАР. Так для плоской решётки это 2d FFT и т.д.

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