-
Постов
233 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о lennen
-
Звание
Местный
Контакты
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
-
lennen изменил фотографию своего профиля
-
Вейвлет анализ - сам процесс фильтрации
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
Вернулся к теме и стало интересно. Прочитал еще раз топик и есть непонятный момент: После университета я это не использовал, поэтому можете уточнить? То есть когда мы принимаем сигнал любой системой связи, мы его можем сгладить некоторым окном, так, это об этом речь? А где это используется в OFDM-трансиверах, на каком этапе? А то вроде БПФ и ОБПФ классически делаются, окно то на этом этапе не используется, или я неправ? А далее появилась идея. Santic показывал, как графики ЛЧМ-сигнала показаны на 3-х мерной плоскости после оконного Фурье-преобразования. Я так понимаю, чем специфичен ЛЧМ, что он идет в виде наклонной прямой на графике. Santic, и только сейчас дошло, на графиках - это а-ля OFDM? Или Вы это и делали для случая с OFDM? Можете подробнее немного пояснить, если не секрет? Но если мы рассматриваем то же оконное преобразование Фурье в качестве базиса в системе связи, получается, что в обычном ОБПФ мы не сможем сделать ЛЧМ. А если возьмем хотя бы оконное БПФ (с ориентировкой на Вейвлет как более детализирующее в тех или иных диапазонах), получается, что теоретически можно генерировать ЛЧМ-OFDM-сигналы. Как-то я поднимал эту тему, хотя уже не помню, но 1. ЛЧМ в каких-то случаях работает лучше синусоиды. 2. В скорость изменения ЛЧМ можно тоже что-то заложить. Так вот, это мои доводы, я хочу понять, не заблуждаюсь ли, давайте еще раз прикинем. 1. В каких случаях ЛЧМ-модулированный сигнал дает преимущество перед модуляциями гармонического сигнала? 2. Можно ли с помощью оконного БПФ сгенерировать OFDM-сигнал, в котором будут не гармоники, а ЛЧМ-поднесущие? 3. Наверняка есть уже такие сигналы и исследованы (например, при этом показаны их недостатки). Может есть какие-то источники с данной информацией? Вот я нашел пару статей, но это же по каким-то причинам не используется? Или наоборот просто надо дальше копать? https://ieeexplore.ieee.org/document/6313888 https://ieeexplore.ieee.org/document/7097051 4. Действительно ли просто разделить несколько ЛЧМ-сигналов, одновременно идущих во времени, частоты которых пересекаются между собой, но в разные моменты времени? А если это будет не просто в модели на графике, а в трансивере? -
Прием сигнала анализатором - ресемплинг
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
Ок, можно тогда проще. Допустим, я принял такое созвездие, как на рисунке. Частота дискретизации на передатчике 1 МГц. На приеме полоса 4,167 МГц. В двух словах то все просто, данные то я уже на глаз различаю. Просто в каком смысле - созвездие эллипсоид, значит дисбалланс I и Q, и созвездие с размытыми точками и крутящейся фазой, что исправляется синхронизацией несущей частоты. Как я могу это смоделировать в Matlab, или хотя бы с чего начать? -
Прием сигнала анализатором - ресемплинг
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
Попробовал еще так. 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); Но что-то не так может настраиваю. Если мои вопросы очень простые, прошу наставить, что я могу сделать следующим шагом. Возможно уже есть готовое решение на Матлабе, которым могу воспользоваться? -
Прием сигнала анализатором - ресемплинг
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
В общем, немного расширяется суть топика. Ресемпл я сделал, серьезно помогло. Передаю на синхросигнале длинную постедовательность Баркера 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; -
Прием сигнала анализатором - ресемплинг
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
Шикарно, в принципе решение, спасибо! Но думаю еще, а так же теряется информация об амплитудах остальных точек. Можно как-то использовать эти 4,167 выборки для накопления информации об амплитуде сигнала? -
Прием сигнала анализатором - ресемплинг
lennen опубликовал тема в Алгоритмы ЦОС (DSP)
Я генерирую сигнал векторным генератором, задал частоту дискретизации 1000 кГц, то есть полоса сигнала 1 МГц, 0.5 МГц слева несущей частоты и 0.5 МГц справа, я прав? Тогда имеем на приеме необходимость анализа полосы 1 МГц. В приборе доступно 4.167 МГц, то есть на каждую выборку моего сигнала теоретически приходится 4.167 выборок с анализатора спектра, опять же, ничего не путаю? Итак, в итоге получаем, что мне нужно в Матлабе использовать какой-то фильтр, который бы из 4.167 выборок сделал одну. Подскажите несложное и правильное решение, чтобы не ломать голову? Я бы мог просто откидывать лишние выборки, но дробный коэффициент заставляет меня пока сильно напрячься + фильтр, наверное, эффективнее был бы здесь, но вот хочу услышать варианты для моего случая. Принимаю обычный 13-позиционный код Баркера, на приеме отлично вижу как синхросигнал, так и информационный код, но надо дальше с ним что-то делать. -
Модель канала связи для слепого разделения сигналов
lennen опубликовал тема в Алгоритмы ЦОС (DSP)
Имеется 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-систем? -
Есть ли усиление в CDMA?
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
Супер. А получается, что IDMA это тоже аналог перенасыщенного множества сигналов? Только как итеративный Турбоэквалайзер + CDMA? Я бы сейчас прочитал про ПМД, но не сильно понял, можно в двух словах? Сложность приема ок, но получается, что перенасыщенное множество все таки дает выигрыш при прочих равных условиях? -
Есть ли усиление в CDMA?
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
Вынужден упомянуть мой последний пост, так как немного двигаемся, но масло масленым) Выигрыш в скорости за счет расширения спектра методом расширяющей последовательности - для меня это не равные условия, так можно сделать и для одного пользователя. Grizzzly, а есть какие-нибудь графики по поводу выигрыша при определенных замираниях CDMA с юзерами против OFDM c 1 пользователем? Ну хотя бы по памяти где-то встречались? Просто я понимаю, что когда у нас в течение 1 чипа ПСП сигнал замер, то конечно вроде как очевиден выигрыш CDMA. А как это показывают в теории? А по поводу этой моей цитаты в этом посте - все таки вроде количеством пользователей выигрыша не добъешься, не? Добъешься только если суммарная энергия этих юзеров окажется меньше, чем если бы их по-отдельности передавали. ? Andyp, но таки хороший комментарий по поводу широкополосности. Получается, что если куча потоков передается в одном спектре, спектральная эффективность все же может не упасть? Как раз по причине того, что действует, например, узкополосная помеха и тп... Статья интересная, но честно я до сих пор не всегда понимаю, как канал Рэлея + АБГШ модель канала связи помогает заметить в OFDM выигрыш, тогда как выигрыш, если правильно понял, в борьбе именно с узкополосными селективными помехами или быстрыми замираниями во временной области... -
Есть ли усиление в CDMA?
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
1. В отличие от TDMA, в CDMA-радиосигнале постоянно присутствует информация сразу обо всех пользователях. Конечно, это увеличивает мощность, тогда мы должны ее уменьшить для равных условий. Получается, что CDMA работает за счет корреляции с ортогональным кодом, что приводит к тому, что информация собирается во все моменты времени, в отличие от TDMA. Верно? 2. Так как надо уменьшать мощность, вроде TDMA и CDMA действительно практически одинаковы. А какие преимущества по совместному использованию спектра? Я пока вижу только борьбу с замираниями, но вроде замирание, так как мультипликативно, иначе ему без разницы, CDMA там или OFDM с 1 пользователем. Имеется ввиду, что если будет быстрое замирание, то потеряется информация не для пользователя N, а для всех пользователей, но за счет кода Уолша это будет не так критично? Меньшие требования к синхронизации? Да, можно и так подходить, как сейчас пробуем, но у меня остается эта дилемма, ведь если ортогональных кодов больше, чем длина кода Уолша, то получится выигрыш в скорости из за числа пользователей, так? Полоса должна быть одинаковой, все таки. Я так рассматриваю пока: Хотя подержите в голове, но я так понимаю, что конечно, растет полоса, растет и помехоустойчивость, так то интересная вещь, которую, кстати, кто и где использует?) На практике просто не встречал. То есть если не имеется выигрыша в CDMA, то почему именно на основе всего вышесказанного? Действительно не можем сделать больше ортогональных кодов, чтобы было скорее 2^n, а не просто n юзеров при длине ПСП n. -
Есть ли усиление в CDMA?
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
В Баскакове нет случая по поводу уровня шума для множества сигналов. Ок, по порядку и по полочкам. Наша цель посмотреть, есть ли выигрыш в 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 все ясно. Прошу по любому пункту сказать, бред это или нет, а то вроде я все по полочкам сейчас разложил, по крайней мере своим)) -
Есть ли усиление в CDMA?
lennen ответил lennen тема в Алгоритмы ЦОС (DSP)
Ок. Вот подробнее тогда здесь. Меня смущает, а точнее я, что-то не учитывая, считаю, что если мы сложим N-пользователей вместе, то их амплитуда будет уже больше амплитуды одного потока (NUSER = 1). Давайте рассмотрим случай, что все N-пользователей в итоге принимаются одним приемником, дескать если нам нужно просто кодовым разделением достичь какого-либо выигрыша. Амплитуда всего сигнала не возросла, так как где-то 1+(-1) может дать вообще ноль, но так-то есть амплитуды и 3 и 4 после сложения юзеров. В теории IDMA я прочитал, что соотношение сигнал-шум все же падает, типа как для одного пользователя остальные являются шумом, но я не понимаю в чем фишка для CDMA. Я по прежнему не понимаю. Если амплитуда суммарного сигнала возросла, то энергия полезного сигнала все-таки выросла. Если мы хотим ее оставить прежней, сигнал стоит нормировать, чтобы максимум был 1, а минимум - (-1). Но появляется другая вещь - тогда если мы умножаем на кодовую последовательность, то вроде как мощность и упала. Короче под вечер я немного разучился думать. В двух словах: я считал, что если мы можем спокойно выделить из суперпозиции Юзера 1, то нам не нужна уже мощность User1+User2+... Дескать выделение это некоторая магия, для которой нужна мощность такого сигнала, который только 1 пользователь. Но тогда получается, что мощность прежняя, а суммарная скорость на всех пользователях либо прежняя, либо больше... Разве не так? Все-таки Если последовательность длинная, то можем же мы найти, например, 128 ортогональных кодов в последовательности длиной, скажем, 16? Если не можем просто найти столько ортогональных кодов, то получается, что IDMA все таки переворачивает картину мира и позволяет поднять скорость. Либо подтвердите, либо где ошибаюсь?) -
Ок. Еще упорно и нундо не могу понять одну строчку: Ext[nuser][m] = SpreadSeq[j] * AppLlr[nuser][i] - Chip[nuser][m]; Я смоделировал отдельно без шумов, Ext получается 0!!!! Так как Chip и Spreaded AppLlr это одинаковые массивы. Где чего я не понял? Так то по логике турбоэквалайзера + CDMA на каждой итерации Chip должен использоваться для обновления матожидания и дисперсии, но эта строка это как-то странно.
-
Я уже почитал много чего, поэтому в точку! Но надо подробнее. Подробнее хочу понять теперь следующее: После нахождения 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 саб-пользователя? Есть ли в этом смысл, существует ли такая техника и если да, то как она называется?
-
Есть ли усиление в CDMA?
lennen опубликовал тема в Алгоритмы ЦОС (DSP)
Есть ли усиление в CDMA? Поясню. Если мы используем CDMA, то я вижу так, что мы каждый бит представляем в виде, например, 4-х бит функции Уолша. Если пользователя 4, то получается, что каждый разделен одной из функций Уолша, которые ортогональны между собой. Получается, что фактически данные теперь отправляются в 4 раза медленнее, чем если бы мы не использовали кодовое разделение. Для суммы всех 4-х пользователей именно здесь скорость будет в 4-ре раза выше, то есть такая же, как и без разделения пользователей, то есть как будто не было бы разделения на пользователей. Если же мы можем использовать больше 4-х пользователей, то выигрыш по скорости таки будет, если не рассматривать мощности пока. Например, длина функций Уолша = 16. Это 2^16 комбинаций, n из которых ортогональны. Сдается мне, что ортогональных функций больше 16-ти, получается выигрыш. Но мощность.... А возникает еще и приятный момент с мощностью, и прошу пояснить, если не так понимаю, или рассказать подробнее. Получается, что помехоустойчивость в канале связи зависит от того, насколько сигнал больше шума. Если амплитуда суммарного сигнала теперь увеличилась в 4 раза, то выходит, что мы увеличили мощность сигнала и ее надо уменьшить в 4-ре раза. Ок, уменьшим. Получаем мощность суммарного сигнала, равную мощности сигнала при отсутствии многих пользователей. Тогда получается, что соотношение сигнал/шум теперь то же, а при этом во время разделения (может тут не дошло до меня?) мы просто домножаем сигнал и еще и складываем все биты ПСП. Но этот сигнал, который мы домножаем на опорные ПСП, он зашумлен ровно также, как и сигнал без разделения пользователей. Что получается, действительно это дает усиление? То есть CDMA, если ее использовать для 1-го пользователя, дает выигрыш в помехоустойчивости? Или я не все учитываю? Я слышал, что есть такое понятие вообще, как кодовое усиление. Но помню еще, что вроде усиление то как раз и происходит за счет снижения скорости передачи данных. Чело в CDMA я не вижу. Прошу пояснить. Логично, если бы была такая лазейка, то зачем бороться за каждый дБ. Что-то тут явно не так. Прошу помочь понять. Либо это же нереально крутое свойство, как и MIMO технологии и тп...