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

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. Перепад чего смотря. Если амплитуды, то прекрасно, это легко проверить в том же скрипте :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, что и требуется показать.
  6. Имеется в виду ширина спектра генератора по уровню -3 дБ. Видимо подразумевают, что маска спектра генератора описывается строгой математической формулой независимо от отстройки, по которой, зная ширину по -3 дБ можно посчитать уровень ФШ при произвольной отстройке, т.е. получить профиль ФШ. Но ИМХО лучше глянуть статьи по-свежее, у analog devices например спектр ФШ разбивают на зоны, в каждой из которых спектральная плотность описывается своим законом. Я к тому, что реальный спектр генератора не всегда подходит под математическую абстракцию. Для OFDM кстати полезно получить значения профиля ФШ на отстройках кратных расстоянию между поднесущими. Эти значения можно пересчитать в деградацию ФШ. Возможно это более информативно чем ширина по -3 дБ.
  7. Любопытно. Вы перешли от размерности N (6) к 2N (12) с последующим решением в поле вещественных чисел? Или у вас исходно только вещественный сигнал / матрица?
  8. Что-то не совсем понял исходную задачу. Ваша система имеет вид Ax = y, где размерность x - [6x1], y - [8x1], A - [8x6], задача оценить x, имея A и y? Линейное решение получается через псевдоинверсию: x=(ATA)-1ATy, если A действительная и x=(AHA)-1AHy - если комплексная. В первом случае ATA симметричная матрица, во втором - AHA эрмитова. Эти матрицы обладают известной симметрией, поэтому на них разумно натравить алгоритм Холецкого, по скорости он выигрывает у методов, которые не используют специальные свойства матриц.
  9. Если нетрудно, киньте пару графиков, которые строит ваш скрипт, для примера. Не у всех есть matlab/communication toolbox. Было бы любопытно глянуть. И, забегая вперёд, как это будет работать, если а) добавить допплер и б) канал?
  10. У Xilinx в Complex multiplier ip есть опция как имплиментировать умножение - в лоб или данным способом. И увеличение логики на дополнительных сложениях не будет, т.к. в самом dsp48 есть свободные сумматоры, которые он использует. Но данным способом вроде времянка была чуть хуже.
  11. Конечно, если хотя бы одна из компонент ФШ (tx или rx) скаляр а не матрица, то линейное решение есть. Спортивный интерес, когда все ФШ разные. Кстати, как вариант, приведённую систему уравнений можно попробовать решить, если половину пилотов передавать как [x1 0], а другую - [0 x2].
  12. Можно проделать мысленный эксперимент. Допустим есть MIMO 2x2 с разными генераторами на каждый тракт, в передатчике и в приёмнике. Для простоты можно попробовать решить задачу только для CPE, т.е. найти 1 коэффициент ФШ, соответствующий повороту созвездия, ICI принебрегаем. Т.к. нет взаимного влияния тонов, индексы k можно опустить: Можно прийти к выводу, что даже для этого простейшего случая линейного решения нет, если тракты используют различные генераторы со своими значениями ФШ. Этот вывод можно обобщить на MIMO систему большей размерности и на случай, когда ICI составляющей пренебречь нельзя. Могу представить себе, что, поворачивая и фильтруя принятый сигнал итеративно в пространстве приёмных антенн и выхода эквалайзера, влияние ФШ можно подавить. При этом на каждом шаге решать задачу минимизации ошибки с допуском того, что либо ФШ на передатчике либо на приёмнике равен нулю. Но это уже что-то из разряда фантастики :rolleyes:
  13. О как. Правда тогда true возвращает, но isstable(a,b) ans = 1 >> isstable(single(a),single(b)) ans = 0
  14. isstable(b,a) в матлабе вернул false для ваших коэффициентов. Наверное стоит пересчитать фильтр?
  15. Ну если так подумать... Кто мешает? Можно сделать оценку спектра ФШ и деконволюцию в пространстве приёмных антенн сразу после Фурье. Для каждого тракта находить свои коэффициенты коррекции ICI. Но сложно представить зачем это могло бы понадобиться. Один генератор - дёшево и сердито) И алгоритмы проще. Разные генераторы - это разве что для случая, когда нужна опция разные антенны на разные полосы настраивать. Вроде multiband-MIMO гибрида какого-то ;)
  16. 16 дБ это не чуть получше :rolleyes: А про приём 8PSK на 6 дБ SNR - это сильно. Смотрим кривые BER и видим, что 6 дБ - это > 2e-2 uncoded BER. Хорошие LDPC декодеры конечно вытаскивают не очень длинные пакеты при такой канальной ошибке, ок. Хотя бесперебойной связи уже не будет. Наличие эквалайзера предполагает канал с замираниями, в нём BER будет гарантированно хуже, чем в AWGN. Плюс на пороговом SNR линейный эквалайзер внесёт дополнительную ошибку, поэтому, даже если предположить, что канал не имеет замираний, чутьё станет несколько хуже. Либо нужно использовать ML. Конечно можно принимать 8PSK без всякого расширения спектра и ниже 6 дБ и в канале с замираниями, при условии наличия дополнительных антенн. MRC сильно облегчает жизнь.
  17. О влиянии фазового шума в OFDM модеме мне понравилось как в этой статье описано: 10.1.1.70.4176.pdf Собственно формула (2) ставит 2 проблемы, которые требуется решать: общий поворот фазы (CPE) и межтоновая интерференция (ICI). Приводятся выкладки для SISO, для MIMO подобная же формула выводится простой заменой векторов в исходной модели на матрицы. Общая идея о разложении на CPE и ICI при этом останется той же самой: при условии, что фазовый шум один и тот же на всех приёмных антеннах, т.е. используется один генератор.
  18. В передатчике после IFFT последние Ncp сэмплов выхода фурье копируются в начало, при этом цикличность преобразования обеспечивает непрерывность фазы в точке стыковки. Полученный блок из Ncp+Nfft сэмплов передаётся. В приёмнике нужно выбрать соответственно Nfft сэмплов. Начало окна Фурье выбирается на интервале Ncp/2:Ncp с помощью схемы временной синхронизации. Т.о. на вход FFT поступят сэмплы Ncp/2+K+1:Ncp/2+K+Nfft, где K определяется схемой точной подстройки окна (fine timing).
  19. Frequency Domain Beamforming это альтернатива Wideband Time Domain Beamforming, который строится на фильтрах, а не на умножителях. При этом обе схемы эквивалентны. Количество лучей, которые вы можете получить в частотной области, никак не связано с тем, что вы работаете в этой самой области. В частотной области на получение дополнительного луча уйдёт меньше ресурса чем во временной (при условии, что обработка широкополосная). Как petrov уже упоминал, следует посмотреть как реализуются обычные фильтры в частотной области, для осознания сути частотного beamforming'a. Вы имеете в виду видимо shift and sum. Delay - это Wideband Time Domain Beamforming и строится он на фильтрах. Для узкополосных трактов обычно также ставят frequency domain из-за сильного влияния Доплера.
  20. Это следует хотя бы из формулы определения spatial steering vector плоской волны:
  21. Насколько я знаю для sonar imaging используются только сигналы с базой >> 1, как правило ЛЧМ/ГЧМ и пр. Синус - это энергетика, он для дальнего обнаружения, хорошее сканирование только в относительно ближней зоне, там ЛЧМ/ГЧМ дают хорошее разделение откликов за счёт узкого главного лепестка в АКФ. Широкополосность - атрибут сигнала и метода его обработки, а не среды. Мне кажется вы ещё не поняли почему нужно применять частотный бимформинг. В матлабе есть широкополосная модель для АФАР различной геометрии, попробуйте собрать её + классический time domain бимформинг. Зависимость ДН от частоты кстати становится очевидной, когда вы посмотрите на формулу вычисления steering vector плоской волны для заданного угла. Тот же phase array toolbox позволяет строить angular-frequency response для разных геометрий решёток.
  22. Откуда у вас такие убеждения? Количество лучей ограничено вашей фантазией. Количество точек Фурье (для Фурье, которые переводят данные АЦП во frequency domain) определяет количество частотных подканалов на которые будет разбит исходный сигнал. То что вы называете темпом забора - это перекрытия, с которыми потребуется делать преобразование, для удовлетворения ваших нужд. Обычно достаточно 50%. При очень малой стационарности большие перекрытия могут и не помочь вовсе -> требуется уменьшение базы преобразования. Разрешение по дальности определяется частотой следования импульсов на излучателе. Разрешающая способность при разделении наблюдаемых объектов - размерами апертуры и вашей обработкой, т.е. фактически шириной луча и возможностью ваших алгоритмов разделять сигналы близкие по мощности но идущие из близко-расположенных источников (пространственно-коррелированных).
  23. Как 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 и т.д.
  24. Пардон не так выразился. Разница в 3 дБ между QPSK/100 и QAM16/50 никуда не денется от произведения таких манипуляций. Потому что энергетика не поменяется.
×
×
  • Создать...