Jump to content

    

andyp

Участник
  • Content Count

    465
  • Joined

  • Last visited

Community Reputation

0 Обычный

About andyp

  • Rank
    Местный

Recent Profile Visitors

2832 profile views
  1. Я как раз про относительную среднеквадратическую ошибку. Вот плохо, что она так от длины зависит. У "хорошей" либы должно быть плато по относительной среднеквадратической ошибке для очень больших длин. Если с длиной примерно линейно relative rms error нарастет, то что-то явно не то. Подробности например здесь можно посмотреть: https://pdfs.semanticscholar.org/9939/893e66a57e89271c5bcd2d64b2a961cf4425.pdf Там из графиков видно, что для длин порядка 100000-200000 и single precision должно быть порядка 10e-6 - 10e-7
  2. Вопрос в том, как их считали. Если во float, а затем в double распечатали, то может быть плоховатисто уже. Конкретно с либой от ADI я не знаком, но ожидал бы уровня relative rms примерно 1e-7 - 1e-6 от "правильной" реализации.
  3. В теории шум FFT плавучки пропорционален log(sqrt(len)), на сколько помню, так что шум от длины должен меняться очень слабо. Но для таких длин всякие тонкости в реализации алгоритма FFT и математических библиотек начинают сильно влиять. Например, хватает ли точности при вычислении twiddles. Можно их попробовать в double посчитать и округлить. А так, переход к double - универсальное решение, которое практически всегда помогает имхо.
  4. Да, всё так. Избавиться от этого может сложно оказаться, поэтому и мысль про ПЧ мне понравилась.
  5. Ноль у АЦП-ЦАП похоже медленно "гуляет". Может, помеха по питанию или еще что. С low IF совет дельный дают имхо. В 10 поднесущей видно, потому что "утекает" из более низких бинов.
  6. Я под станцией мобильный терминал и имел в виду. Который пищит по RACH, а базовая его выравнивает по времени, чтобы ортогонализовать пользователей и уменьшить помеху на своей приемной антенне. Про остальное помочь не очень могу - уже много лет сотовыми технологиями не занимаюсь.
  7. У Задова-Чу "полинома" как такового нет Обычно для синхронизации (когда не нужен ансамбль, а нужна одна последовательность) используют x(k) = exp(j*pi/N*u*k*(k+1)) для нечетных N и exp(j*pi/N*u*k*k) для четных. N - период последовательности, u - определяет скорость n направление изменения частоты и может быть оценена по спектрограмме. Обычно u = 1/-1. Как видно из формул, это последовательность с квадратично меняющейся фазой (ЛЧМ) . Все остальные варианты формирования Задова-Чу имеют то же свойство. Поэтому фактически есть параметры параболы, которую фаза выписывает. По имеющейся производной (спектрограмма) их можно восстановить до постоянного члена, который для синхронизации даст просто поворот созвездий всех поднесущих UPD Если это uplink LTE, то там вроде Задов-Чу при формировании RACH пробов используется, что никак не поможет демодулировать пакеты с данными от станции. Хотя, кончено, я этого стандарта совсем не знаток.
  8. Задов-Чу легко идентифицируется - во временной и частотной области - это ЛЧМ сигнал (Фурье от Задова-Чу другая последовательность Задова-Чу на сколько помню ). Можно на спектрограмму принимаемого сигнала посмотреть в чем-то типа audacity или матлаба. Там ЛЧМ будут хорошо видны.
  9. Можно смотреть на созвездия отдельных поднесущих. Временной сдвиг окна приводит к фазовому сдвигу, зависящему от номера поднесущей. Ошибки в определении частотного сдвига - к межсимволке от соседних поднесущих. Если в поднесущих узнаваемое созвездие, то и то и другое можно оценить по записи и попробовать скомпенсировать для каждой поднесущей - ориентироваться можно на дисперсию точек созвездия и их положение. Такое вот выравнивание вручную получается.
  10. Я бы на косяк в модуле (или до него) поставил, если раньше этого не было видно - на выходе явно ж гармошка есть, которой там не должно быть - модуль комплексной экспоненты должен оставаться постоянным как его ни прореживай. Не видно ее могло быть из-за того, что ФНЧ ее отфильтровывал, а с уменьшением фактора прореживания его полоса раздулась, вот он и перестал. Гармоника из модуля может вылезти если например квадратуры брать несинхронно (re и im отсчеты сдвинуты относительно друг друга).
  11. Я когда ПО для BCH делал, плясал от структуры косетов. Для параметров кода n = 2^m - 1 и d - design distance рассчитать ее можно концептуально следующим образом: Есть список от 1 до n. 1. Инициализируем лидера L = 1; 2. В косет записываем все (2*L*I) mod n, I = 1,2,.., пока снова не наткнемся на лидера. Вычеркиваем записанные в косет степени из списка. 3. Находим нового лидера L, как минимальное невычеркнутое целое. Если L >= d, останавливаемся. Все нужные косеты получены. Иначе переходим снова к 2. Например для БЧХ длины 15, для первого косета минимальный полином m_1(x) = (х-a)*(x-a^2)*(x-a^4)*(x-a^8), a - генерирующий элемент поля GF(2^4). Для второго: m_2(x) = (х-a^3)*(x-a^6)*(x-a^12)*(x-a^9) Для остальных - аналогично. Генерирующй полином кода БЧХ (15,5,7) g(x) = m_1(x) * m_2(x)*m_3(x) - произведение минимальных полиномов косетов, включающих степени 1..d-1 генерирующего элемента. Он автоматом получится с коэффициентами 0 и 1. g(х) имеет степень n-k. Генерирующая матрица состоит из строчек со сдвигами g(х). Если нужна проверочная матрица, то алгоритмом Евклида находишь проверочный полином h(x) = (x^n-1)/g(x). Делится без остатка по свойствам циклических кодов, h(x) имеет степень k. Затем его reciprocal: r(X) = (X^k)*h(x^-1). В сущности у reciprocal polynomial те же коэффициенты, что и у h(х), только в обратном порядке. Проверочная матрица формируется как сдвиги reciprocal polynomial. Она же является генерирующей матрицей дуального кода. Для того, чтобы всё это в голове уложилось, мне помогает понимание, что циклический код - идеал в кольце полиномов по модулю (x^n-1), которое является кольцом главных идеалов. Алгебра реально упрощает жизнь. Например, из этого сразу становится интуитивно понятно, что для одной длины БЧХ коды с меньшей исправляющей способностью включают слова кодов с большей. Из хороших книжек по кодированию, которые достаточно алгебраичны и в то же время без лишней алгебры ;), мне нравится Vera Pless, Introduction to the Theory of Error-Correcting Codes.
  12. Для кодов БЧХ длины 15 и кодового расстояния d (designed distance) имеем d-1 строчек проверочной матрицы вида b^i, I = 0..14, b = a^j, j = 1...d-1 вместе с линейно зависимыми, а - генерирующий элемент поля GF(2^4) Косеты поля GF(2^4) по степеням генерирующего элемента 1 2 4 8 3 6 12 9 5 10 7 4 13 11 Для нижней границы числа информационных бит: Для d = 3 имеем две строчки j = 1,2. Один косет лидер. Оставляем одну строчку получаем 15 - 4*1 = 11 инф бит Для d = 5 имеем четыре строчки j = 1,2,3,4. Два косет лидера. Оставляем две строчки и получаем 15 - 4*2 = 7 инф бит Для d = 7 имеем 6 строчек матрицы, три косет лидера. Оставляем 3 строчки и получаем 15 - 4*3 = 3 инф бит Еще раз, это является НИЖНЕЙ границей числа информационных бит (n-k <= m(d-1)/2). В нашем случае n = 2^m - 1= 15, m = 4. Как пишут Лин с Костелло: There is no simple formula for enumerating n-k, but if t is small n-k = mt, t = (d-1)/2. У них же есть пара ссылок про это утверждение, по которым я честно говоря не ходил. Фактически, это означает, что еще какие-то строчки бинарной проверочной матрицы оказались линейно зависимыми. С другой стороны это тоже видно из структуры косетов: Степени минимальных полиномов для косетов равны 4 , 4, 2, 4 - по количеству элементов в каждом косете. Получается, что lcm полиномов трех косетов есть полином 10 степени (5 инф бит)
  13. Это максимальное правдоподобие для binary symmetric channel ;). А Вам на входе декодера "мягкий" демодулятор нужен, оценивающий LLR принятых бит. Но тут с Чейзом никакой разницы нет. У него на входе тоже мягкие решения должны быть.
  14. Если в вычислительной дури не сильно ограничены, то можно декодер максимального правдоподобия реализовать - потребуется вычисление 4096 сверток длиной 24 и выбор максимума. Писать там мало, а работать будет чуть лучше самого хорошего Чейза.
  15. Если интересуетесь более-менее современными подходами к этой проблеме и information theory, то можно почитать Verdu, Spectral Efficiency in the Wideband Regime. Практики там нет, кончено. Но рассуждения интересные имхо. verdu_wideband.pdf