des00 25 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба Возник тут у меня вопрос, из класса вопросов "нутром чувствую что литр, а доказать не могу" (с). Итак : 1. возьмем созвездие BPSK с точками 1+1i и -1-1i. Его мощность равна 2. Мягкое решение по такому созвездию будем считать как LLR = re + im 2. возьмем комплексный генератор AWGN шума. Получим SNR = 0дб, для этого сделаем мощность шума равной 2. Сложим с сигналом из пункта 1. Для такой системы будет EbN0 = EsNo - 10*log10(1) = SNR - 10*log10(1) = 0дб. 3. возьмем созвездие BPSK с точками sqrt(2) и -sqrt(2). Его мощность равна 2. Мягкое решение по такому созвездию будем считать как LLR = re. 4. возьмем комплексный генератор AWGN шума из первого примера. Сложим с сигналом из пункта 3. Чему для такой системы будет равно EbN0 ? По идее должно быть тоже самое, но ведь по сути, с этим сигналом мы работаем как с вещественным и отбросили мнимую часть шума. Т.е. уменьшили мощность шума в 2 раза и EbNo не помешало бы подправить. Так как правильно ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 25 марта, 2015 Опубликовано 25 марта, 2015 (изменено) · Жалоба Чему для такой системы будет равно EbN0 ? По идее должно быть тоже самое, но ведь по сути, с этим сигналом мы работаем как с вещественным и отбросили мнимую часть шума. Т.е. уменьшили мощность шума в 2 раза и EbNo не помешало бы подправить. Так как правильно ? СПМ шума не изменилась от того, что ты повернул созвездие. Энеригия, затраченная на передачу бита тоже не изменилась, следовательно Eb/N0 осталось тем же самым. Т.е. имеем два случая 1. Имеем два независимых AWGN канала с спм N0, по которым передаем параллельно одно и то же. 2. Сигнал с удвоенной энергетикой передается по AWGN каналу c спм N0. Отношение Eb/N0 одинаковое. Формулы с картинки странные - не очень понятен конекст - при одинаковой длительности символа и SNR получаем вдвое худшее Es/N0, но при этом передаем двое меньшее количество бит на символ? Изменено 25 марта, 2015 пользователем andyp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба Отношение Eb/N0 одинаковое. Формулы с картинки странные - не очень понятен конекст - при одинаковой длительности символа и SNR получаем вдвое худшее Es/N0, но при этом передаем двое меньшее количество бит на символ? Это скан с хелпа матлаба. Смотреть по ключевой фразе "AWGN Сhannel Noise Level" там раздел "Relationship Between EsNo and SNR". Все началось с простого скрипта : clear all; format short; EbNo = 3; EsNo = EbNo + 10*log10(1); % uncoded BPSK SNR = EsNo; Nbits = 1e6; msg = randi([0:1], 1, Nbits); tx_symb = (2*msg-1) + 1i*(2*msg-1); tx_symb1 = sqrt(2)*real(tx_symb); % rx_symb = awgn(tx_symb, SNR, 10*log10(2)); % rx_symb1 = awgn(tx_symb1, SNR, 10*log10(2)); rx_symb = awgn(tx_symb, SNR, 'measured'); rx_symb1 = awgn(tx_symb1, SNR, 'measured'); hd_bits = ((real(rx_symb) + imag(rx_symb)) >= 0); hd_bits1 = (rx_symb1 >= 0); ber = biterr(msg, hd_bits)/Nbits; ber1 = biterr(msg, hd_bits1)/Nbits; disp(['ber = ', num2str(ber), ' ber1 = ', num2str(ber1)]); и вот результат ber = 0.022964 ber1 = 0.078718 если сделать правку rx_symb1 = awgn(tx_symb1, SNR+3, 'measured'); то результат более ожидаем ber = 0.02301 ber1 = 0.022947 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба Для вещественных сигналов (созвездий) нужно добавлять 3 дБ. Вы должны принимать решение по одномерному созвездию, то есть использовать только одну координату. Поворот не делает созвездие двумерным. rx_symb = awgn(tx_symb, SNR+3, 'measured'); rx_symb1 = awgn(tx_symb1, SNR+3, 'measured'); hd_bits = (real(rx_symb)>= 0); hd_bits1 = (rx_symb1 >= 0); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба Дело кажется в реализации функции awgn. Добавляю шум вручную: Ps = 2; Pn = Ps * 10^(-SNR/10); noise = randn(1, Nbits)+1j*randn(1, Nbits); noise = noise * Pn; Pn_meas = noise*noise'/Nbits; rx_symb = tx_symb + noise; rx_symb1 = tx_symb1 + real(noise); Результат: ber = 0.07943 ber1 = 0.079298 Возможно там делается какая то нормировка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба Нельзя BPSK рассматривать как двумерное созвездие. Про комплекнсый и вещестыенный шум в справке по AWGN всё написано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба В функции awgn есть такая проверка % --- Add the noise if(isreal(sig)) opType = 'real'; else opType = 'complex'; end Если в первом примере записать так: tx_symb = (2*msg-1) + 1i*(2*msg-1); tx_symb1 = sqrt(2)*real(tx_symb) + 1i*1e-15; То результаты для обоих созвездий примерно совпадают. Нельзя BPSK рассматривать как двумерное созвездие. Почему? Это такой же комплексный сигнал как и остальные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 25 марта, 2015 Опубликовано 25 марта, 2015 (изменено) · Жалоба Почему? Это такой же комплексный сигнал как и остальные. Это одномерный сигнал. В решении участвует только одна координата. Поворот созвездия изменяет только направление измерения. Изменено 25 марта, 2015 пользователем Grizzzly Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 25 марта, 2015 Опубликовано 25 марта, 2015 · Жалоба Вот в приведенном примере: hd_bits = ((real(rx_symb) + imag(rx_symb)) >= 0); Энергия для решения собирается с обеих координат иначе потеря в энергетике не менее 3 дБ (при условии 100% восстановленной фазы). К bpsk применимы все комплексные мат методы, что и для остальных psk, в т.ч. arg(x), которая не имеет смысла для вещественного/одномерного сигнала. Предлагаю спор о вещественности/материальности/еще-чего-то-там bpsk сигнала закрыть, что бы не засорять тему :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 25 марта, 2015 Опубликовано 25 марта, 2015 (изменено) · Жалоба Результат: ber = 0.07943 ber1 = 0.079298 Для SNR = 3 дБ BER = 0.022964. Если в первом примере записать так: tx_symb = (2*msg-1) + 1i*(2*msg-1); tx_symb1 = sqrt(2)*real(tx_symb) + 1i*1e-15; Вы изначально вещественный сигнал tx_symb1 сделали комплексным, тогда, естественно, в awgn нужно использовать SNR. В случае же вещественного сигнала - (SNR + 3). Изменено 25 марта, 2015 пользователем Grizzzly Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 26 марта, 2015 Опубликовано 26 марта, 2015 (изменено) · Жалоба Да, вчера вечером затупил про одномерность повернутого BPSK... Нашел в архиве статью про добавление белого шума к сигнальным отсчетам. Там как раз про 3 дБ говорится. 10.1109_13.168713.pdf Про различия СПМ - когда N0, а когда N0/2. А в разделе "Relationship Among Eb/No, Es/No, and SNR Modes" говорится тоже самое, что в статье, только кратко: http://www.mathworks.com/help/comm/ref/awgnchannel.html Изменено 26 марта, 2015 пользователем Grizzzly Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 26 марта, 2015 Опубликовано 26 марта, 2015 · Жалоба Почитал статью, спасибо. Но меня их подход решительно смутил. Выразили мощность полосового реального сигнала через 0-й отчёт автокорреляционной функции - ок, далее они говорят, что мощность комплексной огибающей на нуле такого сигнала можно выразить через сумму 0-х отчётов автокорреляционных функций квадратур re и im. Тоже нет вопросов. Но потом они удтверждают, что при переходе на комплексное представление сигнала мы имеем (математически) удвоение мощности, для этого они полагают, что максимум АКФ квадратур и АКФ полосового сигнала одинаковы по величине. Но пардонте, как же так? Вот накида скрипт (взял ЛЧМ для примера) envelope_pwr.zip Из него видно, что при переносе сигнала с ПЧ на ноль энергия делится между квадратурами, так что суммарная энергия не изменяется. Тоже и для шумового процесса: берем действительный шум, умножаем его на комплексную несущую и измеряем мощность полученных re и im компонент комплексного шумового процесса. В скрипте это тоже приведено. Что касается АКФ, получил вот такую картинку: Из неё видно, что в lag=0 АКФ полосового сигнала в 2 раза больше АКФ квадратуры. В общем у меня много вопросов к статье. Получается, что там ищутся объяснения математическим эффектам, которые не проявляются в реальной жизни. Поправте, если я рассуждаю неверно, всегда готов учиться :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 26 марта, 2015 Опубликовано 26 марта, 2015 · Жалоба Да, при чтении меня тоже кое-что там смущало. Надо будет внимательнее посмотреть. Сейчас просмотрел десяток учебников по Digital Communication, нигде ничего подобно нет. Есть только описание действительного шума с N0/2 и комплексного с N0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 марта, 2015 Опубликовано 26 марта, 2015 · Жалоба Вы должны принимать решение по одномерному созвездию, то есть использовать только одну координату. Поворот не делает созвездие двумерным. На каком основании именно должен? Есть квадратурный приемник, обработка идет в двух квадратурах. Как я их поверну для принятия решения дело десятое. Могу вообще перевести в полярные координаты и принимать решение по углу. Дело кажется в реализации функции awgn. Добавляю шум вручную: проверка sum(abs(rx_symb - tx_symb).^2)/Nbits и sum(abs(rx_symb1 - tx_symb1).^2)/Nbits показывает что мощность шума у вас там разная. Если в первом примере записать так: tx_symb = (2*msg-1) + 1i*(2*msg-1); tx_symb1 = sqrt(2)*real(tx_symb) + 1i*1e-15; То результаты для обоих созвездий примерно совпадают. Результат удивил. похоже что Возможно там делается какая то нормировка. вы правы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 26 марта, 2015 Опубликовано 26 марта, 2015 (изменено) · Жалоба На каком основании именно должен? Есть квадратурный приемник, обработка идет в двух квадратурах. Как я их поверну для принятия решения дело десятое. Могу вообще перевести в полярные координаты и принимать решение по углу. С утра понял, что был неправ. Результат удивил. похоже что Возможно там делается какая то нормировка. вы правы. Для комплексного сигнала мощность шума делится пополам между квадратурами, а для вещественного она целиком добавляется к нему. Можно открыть функции awgn и wgn и посмотреть на эту реализацию. if(strcmp(cplxMode,'complex')) y = (sqrt(imp*noisePower/2))*(func(row, col)+1i*func(row, col)); else y = (sqrt(imp*noisePower))*func(row, col); end; noisePower = sigPower-reqSNR (в дБ) или noisePower = sigPower/reqSNR; Для ВЕЩЕСТВЕННЫХ сигналов должна быть (noisePower/2), как в данном коде: http://www.mathworks.com/matlabcentral/fil...tent/bpskAWGN.m Вообще странно реализована функция awgn, в своё время с этим намучился, понял, что надо добавлять 3 дБ и успокоился, только сейчас так глубоко докопался. В Simulink таких проблем с AWGN Channel нет. Задаю для обычного BPSK Eb/N0 = 3 дБ и получаю BER =~0.025, что ожидаемо. Задаю BPSK с поворотом на 45 градусов против часой стрелки, получаю такой же BER. AWGN Channel правильно распознает типы данных и прибавляет нужный уровень шума. Изменено 26 марта, 2015 пользователем Grizzzly Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться