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

serjj1333

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

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

  • Посещение

Репутация

0 Обычный

Информация о serjj1333

  • Звание
    Знающий
    Знающий
  • День рождения 30.01.1989

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

2 254 просмотра профиля
  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 для ваших коэффициентов. Наверное стоит пересчитать фильтр?
×
×
  • Создать...