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

    

lennen

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Местный

Информация

  • Город
    Москва

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

1 498 просмотров профиля
  1. Ок, можно тогда проще. Допустим, я принял такое созвездие, как на рисунке. Частота дискретизации на передатчике 1 МГц. На приеме полоса 4,167 МГц. В двух словах то все просто, данные то я уже на глаз различаю. Просто в каком смысле - созвездие эллипсоид, значит дисбалланс I и Q, и созвездие с размытыми точками и крутящейся фазой, что исправляется синхронизацией несущей частоты. Как я могу это смоделировать в Matlab, или хотя бы с чего начать?
  2. Попробовал еще так. M = 4; fs = 1e6; foffset = 100; carriersync = comm.CarrierSynchronizer('Modulation','QPSK', ... 'DampingFactor',0.05,'NormalizedLoopBandwidth',0.01); syncInfo = info(carriersync) aa = [foffset/fs syncInfo.NormalizedPullInRange/(2*pi)] carriersync.DampingFactor = aa(1)*1000; fid=fopen('C:\Users\User\Documents\UDP_log.pcm','r'); sig=fread(fid,inf,'int16'); I = sig(1:2:end); Q = sig(2:2:end); fclose(fid); sI = smooth(I,4); sQ = smooth(Q,4); yI=resample(sI,1000,4167); yQ=resample(sQ,1000,4167); ss = I+1i*Q; [ssI,phErrI] = carrSynch(ss); plot(ssI); hold on; Но получается, пока не могу въехать в тему, как использовать CarrierSynchronizer и нужен ли он тут вообще. Картинка может служить логотипом или продолжением кубизма-круголизма-импрессионизма. Я так-то осознаю чуть чуть, что раз эллипсоид, нужно устранить IQ дисбаланс, а раз все смешалось в круг, надо применить то, что пробовал. Но вот я не могу до конца понять, подскажите, пожалуйста, чтобы я все таки получил долгожданные точки созвездия:) Попробовал эту функцию без компенсатора: compSig = iqImbComp(ss); Но что-то не так может настраиваю. Если мои вопросы очень простые, прошу наставить, что я могу сделать следующим шагом. Возможно уже есть готовое решение на Матлабе, которым могу воспользоваться?
  3. В общем, немного расширяется суть топика. Ресемпл я сделал, серьезно помогло. Передаю на синхросигнале длинную постедовательность Баркера 13-позиционную, а в качестве информации зацикленный код Баркера 13-позиционный, так вот, на графиках, я приложил, видно, что все принял на ура. Но это на глаз так. 1. Амплитуда постоянно скачет, как это устранить. 2. Как проще сделать правильный детектор? Чтобы в итоге я получил просто битовую последовательность I и Q и мог дальше это интерпретировать как QAM-модуляцию... 3. Понял, что вопрос немного расширяется. Там в сигнале видно, что присутствует паразитная ненулевая частота, как ее лучше убрать Сейчас примерно так все представляю, но не получилось! Сигнал после кода все-равно скачет по гармонике. fid=fopen('C:\Users\User\Documents\UDP_log.pcm','r'); sig=fread(fid,inf,'int16'); I = sig(1:2:end); Q = sig(2:2:end); fclose(fid); sI = smooth(I,4); sQ = smooth(Q,4); yI=resample(sI,1000,4167); yQ=resample(sQ,1000,4167); carrSynch = comm.CarrierSynchronizer( ... 'SamplesPerSymbol',1,'Modulation','QPSK'); [ssI,phErrI] = carrSynch(yI); [ssQ,phErrQ] = carrSynch(yQ) plot(ssI); hold on; plot(ssQ); hold off;
  4. Шикарно, в принципе решение, спасибо! Но думаю еще, а так же теряется информация об амплитудах остальных точек. Можно как-то использовать эти 4,167 выборки для накопления информации об амплитуде сигнала?
  5. Я генерирую сигнал векторным генератором, задал частоту дискретизации 1000 кГц, то есть полоса сигнала 1 МГц, 0.5 МГц слева несущей частоты и 0.5 МГц справа, я прав? Тогда имеем на приеме необходимость анализа полосы 1 МГц. В приборе доступно 4.167 МГц, то есть на каждую выборку моего сигнала теоретически приходится 4.167 выборок с анализатора спектра, опять же, ничего не путаю? Итак, в итоге получаем, что мне нужно в Матлабе использовать какой-то фильтр, который бы из 4.167 выборок сделал одну. Подскажите несложное и правильное решение, чтобы не ломать голову? Я бы мог просто откидывать лишние выборки, но дробный коэффициент заставляет меня пока сильно напрячься + фильтр, наверное, эффективнее был бы здесь, но вот хочу услышать варианты для моего случая. Принимаю обычный 13-позиционный код Баркера, на приеме отлично вижу как синхросигнал, так и информационный код, но надо дальше с ним что-то делать.
  6. Имеется 2-4 сигнала, они так-то из разных источников. Проходя через канал связи, они проходят разные пути, зашумляются и смешиваются. На приеме стоит столько же антенн, сколько и сигналов, 2-4. Я использовать FastICA и просто разделил сигналы. Но там модель канала связи такая: X = A*S, где S - это 2-4 вектора сигнала, A - это как канал связи, случайные мультипликативные коэффициенты для сигнала, X - это уже набор 2-4 векторов, которые приходят на приемник. Трудность я ощущаю пока в том, что канал Прокиса и АБГШ то добавить вообще не вопрос. Я в Matlab моделирую, кстати. Но сигналы надо сложить.... Итак. И я имею вариант, но я в нем сомневаюсь, подскажите, плиз. %s1, s2; s1_awgn = awgn(s1); //Если зашумить каждый сигнал в отдельности, то он шум будет разный для каждого сигнала s2_awgn = awgn(s2); s11_proakis = proakis11(s1_awgn); //Каждый сигнал также проходит через свой многолучевой канал связи s21_proakis = proakis21(s2_awgn); //Первое число - номер для сигнала, второе - номер антенны sum1 = s11_proakis + s21_proakis; //Наконец-то суммировали s12_proakis = proakis12(s1_awgn); //2 антенна s22_proakis = proakis22(s2_awgn); sum2 = s12_proakis + s22_proakis; Заодно хочу спросить, а FastICA потянет решение такой задачи? Или что бы вы предложили и почему? Кстати, а киньте еще ссылок, может какие-либо интересные коды по этому поводу есть в направлении MIMO-систем?
  7. Супер. А получается, что IDMA это тоже аналог перенасыщенного множества сигналов? Только как итеративный Турбоэквалайзер + CDMA? Я бы сейчас прочитал про ПМД, но не сильно понял, можно в двух словах? Сложность приема ок, но получается, что перенасыщенное множество все таки дает выигрыш при прочих равных условиях?
  8. Вынужден упомянуть мой последний пост, так как немного двигаемся, но масло масленым) Выигрыш в скорости за счет расширения спектра методом расширяющей последовательности - для меня это не равные условия, так можно сделать и для одного пользователя. Grizzzly, а есть какие-нибудь графики по поводу выигрыша при определенных замираниях CDMA с юзерами против OFDM c 1 пользователем? Ну хотя бы по памяти где-то встречались? Просто я понимаю, что когда у нас в течение 1 чипа ПСП сигнал замер, то конечно вроде как очевиден выигрыш CDMA. А как это показывают в теории? А по поводу этой моей цитаты в этом посте - все таки вроде количеством пользователей выигрыша не добъешься, не? Добъешься только если суммарная энергия этих юзеров окажется меньше, чем если бы их по-отдельности передавали. ? Andyp, но таки хороший комментарий по поводу широкополосности. Получается, что если куча потоков передается в одном спектре, спектральная эффективность все же может не упасть? Как раз по причине того, что действует, например, узкополосная помеха и тп... Статья интересная, но честно я до сих пор не всегда понимаю, как канал Рэлея + АБГШ модель канала связи помогает заметить в OFDM выигрыш, тогда как выигрыш, если правильно понял, в борьбе именно с узкополосными селективными помехами или быстрыми замираниями во временной области...
  9. 1. В отличие от TDMA, в CDMA-радиосигнале постоянно присутствует информация сразу обо всех пользователях. Конечно, это увеличивает мощность, тогда мы должны ее уменьшить для равных условий. Получается, что CDMA работает за счет корреляции с ортогональным кодом, что приводит к тому, что информация собирается во все моменты времени, в отличие от TDMA. Верно? 2. Так как надо уменьшать мощность, вроде TDMA и CDMA действительно практически одинаковы. А какие преимущества по совместному использованию спектра? Я пока вижу только борьбу с замираниями, но вроде замирание, так как мультипликативно, иначе ему без разницы, CDMA там или OFDM с 1 пользователем. Имеется ввиду, что если будет быстрое замирание, то потеряется информация не для пользователя N, а для всех пользователей, но за счет кода Уолша это будет не так критично? Меньшие требования к синхронизации? Да, можно и так подходить, как сейчас пробуем, но у меня остается эта дилемма, ведь если ортогональных кодов больше, чем длина кода Уолша, то получится выигрыш в скорости из за числа пользователей, так? Полоса должна быть одинаковой, все таки. Я так рассматриваю пока: Хотя подержите в голове, но я так понимаю, что конечно, растет полоса, растет и помехоустойчивость, так то интересная вещь, которую, кстати, кто и где использует?) На практике просто не встречал. То есть если не имеется выигрыша в CDMA, то почему именно на основе всего вышесказанного? Действительно не можем сделать больше ортогональных кодов, чтобы было скорее 2^n, а не просто n юзеров при длине ПСП n.
  10. В Баскакове нет случая по поводу уровня шума для множества сигналов. Ок, по порядку и по полочкам. Наша цель посмотреть, есть ли выигрыш в CDMA по сравнению с OFDM (1 пользователь), если брать равные условия. Разделение на реальных пользователей не подразумевается, в итоге все принимает один приемник и пытается извлечь для себя выгоду в CDMA. 1. Мы взяли амплитуду одного сигнала P1. Шум sigma^2. 2. Если мы начинаем увеличивать амплитуду P1 до P2, по классике это поднимает соотношение С/Ш, то есть природа шума аддитивна и он не увеличивается с ростом сигнала, в отличие от коэффициента многолучевого затухания. 3. Если под P2 мы подразумеваем сумму разных пользователей, то за нас говорит уже эта формула из классики CDMA: y(t) = h*x1+sum(hk*xk)+sigma, где есть основной сигнал x1, сумма сигналов остальных юзеров xk и АБГШ, что сигма не увеличивается. 4. Таким образом, подняв мощность до P2, когда мы перешли от OFDM к CDMA, мы увеличили таки соотношение сигнал/шум. Однако в CDMA есть случаи, когда сумма пользователей дает +3, а когда 0 или просто 1, равновероятны ли такие ситуации? Допустим, я пока не могу признать, что мощность сигнала сильно увеличилась, тогда получается, что есть некоторый выигрыш в суперпозиции сигналов. Без кода мы их и не разделили бы на юзеров, так как реально видим "0", когда на самом деле передается 1+1-1-1 = 0. 5. Теперь я учитываю ортогональность кодов. Получается, что за кодовую последовательность у нас в любом случае 2 пользователя дают 0-ю мощность для одного и того же кода. Если перевернуть один из кодов Уолша (*(-1)), то ортогональность сохраняется. Так как нас здесь интересует не ортогональность, а сумма, то складывая 2 функции Уолша, пусть даже одна перевернута или сразу две, мы убеждаемся, что за всю ПСП-функцию Уолша, если у нас для отдельных пользователей все было нормировано, и просто постоянно шли либо + 1, либо -1, то теперь просто вначале может быть +2 +2, а затем 0 0, мощность не меняется, вроде, и получается, что мы суммируем мощности. Для гармоник вроде все тоже самое. 6. Ок, действительно мощности сложились, S/N поднялось. Значит мы должны уменьшить мощность в то количество раз, сколько у нас пользователей. Их 4, например. Значит уменьшили мощность суммарного сигнала в 4-ре раза. Вроде бы не изменилось ничего по сравнению с OFDM, просто несколько параллельных кодированных потоков в канале связи. 7. Рассмотрим сами коды. Мы взяли 4-ре. Мы можем передать более 4-х пользователей по этой технологии? Есть ли еще ортогональные коды длиной 4 кроме тех, что на картинке. Я решил, что нет, может поправьте меня... Тогда получается, что мы сейчас не в стандартах, и можем сами задавать скорость обмена данными. А давайте предположим так. Кодированные данные могли бы передаваться теперь быстрее, то есть мы бы один чип (я подразумеваю, что чип - это кодированный информационный бит, поправьте, если неправ) могли бы передавать с такой же скоростью, как и информационный бит без кодирования. Как это влияет на помехоустойчивость, ну отдельный вопрос. Я хочу не так. 8. Мы один информационный бит теперь передаем в 4-ре раза дольше, а один бит кода теперь передается столько же, сколько для одного пользователя передавался информационный бит. 9. Складываем 4 пользователя, получаем, что выигрыша нет никакого, ведь 4 растянутых во времени потока в 4-ре раза в итоге дают нам прежнюю скорость, как в OFDM без юзеров. 10. А если информация растягивается в 4 раза, но пользователей у нас 6. Тогда получается выигрыш? Давайте рассмотрим код Уолша. если есть 4 состояния, то возможных комбинаций кода 16, мы могли бы пользоваться именно 16 комбинациями, но кроме 4-х остальные неортогональны... Да? Или являются перевернутыми версиями основных ортогональных 4-х последовательностей. Давайте посчитаем. 4+4 инвертированных = 8. Остальные 4+4 неортогональны. 11. Вот тут у меня был, возможно, недочет. А если псп длиной 16? Какая формула позволяет выявить, сколько в 16 битах кода Уолша содержится ортогональных кодов. И вот если больше 16, то будет же выигрыш. Если ровно 16, ок, мы разобрали этот вопрос, и с CDMA все ясно. Прошу по любому пункту сказать, бред это или нет, а то вроде я все по полочкам сейчас разложил, по крайней мере своим))
  11. Ок. Вот подробнее тогда здесь. Меня смущает, а точнее я, что-то не учитывая, считаю, что если мы сложим N-пользователей вместе, то их амплитуда будет уже больше амплитуды одного потока (NUSER = 1). Давайте рассмотрим случай, что все N-пользователей в итоге принимаются одним приемником, дескать если нам нужно просто кодовым разделением достичь какого-либо выигрыша. Амплитуда всего сигнала не возросла, так как где-то 1+(-1) может дать вообще ноль, но так-то есть амплитуды и 3 и 4 после сложения юзеров. В теории IDMA я прочитал, что соотношение сигнал-шум все же падает, типа как для одного пользователя остальные являются шумом, но я не понимаю в чем фишка для CDMA. Я по прежнему не понимаю. Если амплитуда суммарного сигнала возросла, то энергия полезного сигнала все-таки выросла. Если мы хотим ее оставить прежней, сигнал стоит нормировать, чтобы максимум был 1, а минимум - (-1). Но появляется другая вещь - тогда если мы умножаем на кодовую последовательность, то вроде как мощность и упала. Короче под вечер я немного разучился думать. В двух словах: я считал, что если мы можем спокойно выделить из суперпозиции Юзера 1, то нам не нужна уже мощность User1+User2+... Дескать выделение это некоторая магия, для которой нужна мощность такого сигнала, который только 1 пользователь. Но тогда получается, что мощность прежняя, а суммарная скорость на всех пользователях либо прежняя, либо больше... Разве не так? Все-таки Если последовательность длинная, то можем же мы найти, например, 128 ортогональных кодов в последовательности длиной, скажем, 16? Если не можем просто найти столько ортогональных кодов, то получается, что IDMA все таки переворачивает картину мира и позволяет поднять скорость. Либо подтвердите, либо где ошибаюсь?)
  12. Ок. Еще упорно и нундо не могу понять одну строчку: Ext[nuser][m] = SpreadSeq[j] * AppLlr[nuser][i] - Chip[nuser][m]; Я смоделировал отдельно без шумов, Ext получается 0!!!! Так как Chip и Spreaded AppLlr это одинаковые массивы. Где чего я не понял? Так то по логике турбоэквалайзера + CDMA на каждой итерации Chip должен использоваться для обновления матожидания и дисперсии, но эта строка это как-то странно.
  13. Я уже почитал много чего, поэтому в точку! Но надо подробнее. Подробнее хочу понять теперь следующее: После нахождения e_ese = Chip: for ( i=0; i<_ChipLen; i++ ) { Chip[nuser][ScrambleRule[nuser][i]] = TempChip[nuser][i]; if ( Chip[nuser][ScrambleRule[nuser][i]] > 20 ) Chip[nuser][ScrambleRule[nuser][i]] = 20; if ( Chip[nuser][ScrambleRule[nuser][i]] < -20 ) Chip[nuser][ScrambleRule[nuser][i]] = -20; } происходит удаление ПСП, а затем снова операция расширения спектра с помощью ПСП. e_dec = Ext показывает функцию правдоподобия как отношения вероятностей того, что бит 1 и 0. Но так то e_dec должна быть равна нулю, тут же в коде взаимообратные операции Spreading/Despreading. Значит вся магия дейсствительно в ограничителях? if ( Chip[nuser][ScrambleRule[nuser][i]] > 20 ) Chip[nuser][ScrambleRule[nuser][i]] = 20; if ( Chip[nuser][ScrambleRule[nuser][i]] < -20 ) Chip[nuser][ScrambleRule[nuser][i]] = -20; Как лучше это понимать? Кстати, а в CDMA есть возможность 2+ раза разделять пользователей (в 2+ этапа). Допустим, сначала из потока выделил 4 пользователя, а затем из каждого еще по 4 саб-пользователя? Есть ли в этом смысл, существует ли такая техника и если да, то как она называется?
  14. Есть ли усиление в CDMA? Поясню. Если мы используем CDMA, то я вижу так, что мы каждый бит представляем в виде, например, 4-х бит функции Уолша. Если пользователя 4, то получается, что каждый разделен одной из функций Уолша, которые ортогональны между собой. Получается, что фактически данные теперь отправляются в 4 раза медленнее, чем если бы мы не использовали кодовое разделение. Для суммы всех 4-х пользователей именно здесь скорость будет в 4-ре раза выше, то есть такая же, как и без разделения пользователей, то есть как будто не было бы разделения на пользователей. Если же мы можем использовать больше 4-х пользователей, то выигрыш по скорости таки будет, если не рассматривать мощности пока. Например, длина функций Уолша = 16. Это 2^16 комбинаций, n из которых ортогональны. Сдается мне, что ортогональных функций больше 16-ти, получается выигрыш. Но мощность.... А возникает еще и приятный момент с мощностью, и прошу пояснить, если не так понимаю, или рассказать подробнее. Получается, что помехоустойчивость в канале связи зависит от того, насколько сигнал больше шума. Если амплитуда суммарного сигнала теперь увеличилась в 4 раза, то выходит, что мы увеличили мощность сигнала и ее надо уменьшить в 4-ре раза. Ок, уменьшим. Получаем мощность суммарного сигнала, равную мощности сигнала при отсутствии многих пользователей. Тогда получается, что соотношение сигнал/шум теперь то же, а при этом во время разделения (может тут не дошло до меня?) мы просто домножаем сигнал и еще и складываем все биты ПСП. Но этот сигнал, который мы домножаем на опорные ПСП, он зашумлен ровно также, как и сигнал без разделения пользователей. Что получается, действительно это дает усиление? То есть CDMA, если ее использовать для 1-го пользователя, дает выигрыш в помехоустойчивости? Или я не все учитываю? Я слышал, что есть такое понятие вообще, как кодовое усиление. Но помню еще, что вроде усиление то как раз и происходит за счет снижения скорости передачи данных. Чело в CDMA я не вижу. Прошу пояснить. Логично, если бы была такая лазейка, то зачем бороться за каждый дБ. Что-то тут явно не так. Прошу помочь понять. Либо это же нереально крутое свойство, как и MIMO технологии и тп...
  15. Если это сильно сложно, давайте по порядку теперь, общий вопрос я изложил, а теперь на понимание. 1. Зачем при разделении двух и более сигналов, сложенных друг с другом, используется ковариация? 2. Как участвует функция правдоподобия при разделении сигналов? Я понимаю, что функция правдоподобия позволяет понять, насколько правдоподобно, что апостериорная статистическая информация близка к тем или иным априорным распределением. Но при чем тут может быть разделение сигналов?