• Регистрация
Нгуен Ван Зунг
Нгуен Ван Зунг +19.83
н/д

Ошибка вычисления вероятности ошибки приема сигнала DBPSK

26.12.2019

Здравствуйте, коллеги!

Мне нужна ваша помощь!

Я тратил много времени на эту задачу, но не получил правильный результат.

Задача такая: моделирование приема сигнала DBPSK при наличии белого гауссовского шума. то есть на входе приемника будет смесь сигнала DBPSK + белого гауссовского шума. 

Опорный сигнал будет принимаемый сигнал на длительности символа Ts. Потом на интегратор и результат сравнить с порогом. Видно, что не применить полосовой фильтр вероятность ошибки очень большая.  

Если применить полосовой фильтр, то вероятность ошибки выигрыш, чем без фильтра. Но сравнить с теоретической вероятности ошибки, то две вероятности не равны.

Скажите, в чем Я ошибся. Я думал, если Мы применим фильтр, то он может подавлять не только шум и сигнал. Тогда надо пересчитать отношение сигнал/шум на выходе фильтра. и построить вероятность ошибки от этого отношения? (Если так, то скажите, как измерить отношение сигнал/шум на выходе фильтра). 

Помогите, пожалуйста!

Заранее, Я благодарю Вас за помощь!

 

С уважением, Зунг.

Теги

    26.12.2019

    Лучший ответ

    • Н/Д0
      27.12.2019 12:00
      Ответ был удален

    Ответы

    • Ответ был удален
    • _______ ____________
      _______ ____________ -1.52
      27.12.2019 13:38

      Как настраивали канал связи?

      • Нгуен Ван Зунг
        Нгуен Ван Зунг+19.83
        27.12.2019 13:46

        Спасибо Вам за ответ!

        Формировал сигнал DBPSK. На каналах связи кроме сигнала, присутствует белый гауссовский шум. Принимаемый сигнал будет сигнал DBPSK + белый гауссовский шум.

        Форма БГШ: sigma*randn(1,N); Если хотим построить вероятность ошибки от ОСШ в дБ.

        То надо найти sigma от ОСШ (проведен в файле форде, определим СКО шума).

        Для сигнала BPSK(2-ФМ) теоретическая вероятность ошибки абсолютно совпадает с имитационной, а DBPSK различается много.

        Простите, пожалуйста! Если Я не правильно понял ваш вопрос.

        Подскажите, пожалуйста! Что сделать с этой проблемой?

         С уважением, Зунг.

        • _______ ____________
          _______ ____________ -1.52
          30.12.2019 11:20

          Сделайте модуль в Simulink, там будет проще отловить ошибку.

          p.s. Если график BER похож на правду, но кратно отличается от теоретического, значит Вы где-то забыли или перепутали коэффициет, например, длительность символа и т.д.

          • Нгуен Ван Зунг
            Нгуен Ван Зунг+19.83
            30.12.2019 11:54

            Спасибо Вам!

            Я думаю, в матлабе более нагляднее, как формировать (модуляция) сигнал, шум потом процесс демодуляции сигнала. и Задача требуется выполнить на Матлабе. В  Simulink? все блоки закрытые, как они построены, трудно объяснить.

            Подскажите, как написать алгоритм наколение сигнала с фильтром низких частот, пожалуйста!

            Накопить сигнала с ФНЧ, надо вычислить светрку импульсной характеристики ФНЧ и и модуля сигнала, или простно пропускать сигнал через ФНЧ с командой filter(b,a, сигнал)?

            Я хотел заменить интегратор на ФНЧ, но еще ничего не получил.

            C уважением, Зунг.

          • _______ ____________
            _______ ____________ -1.52
            30.12.2019 11:58

            Воспользуйтесь

            filterDesigner

            прям так и надо набрать в командной строке. Сделайте там фильтр с нужными Вам характеристиками и экспортируйте его в Matlab в виде коэффициентов или системного объекта.

            • Нгуен Ван Зунг
              Нгуен Ван Зунг+19.83
              30.12.2019 12:04

              Попрошу Вас, посмотрите мою программу, пожалуйста!

              Писал. но еще не получал. 

              Подскажите, где надо поправить в программе.

              Коэффиенты фильтра, потом Я выбер. Но желаю получить правильные алгоритмы в Матлабе.

               С уважением, Зунг.

               

              • Нгуен Ван Зунг
                Нгуен Ван Зунг+19.83
                30.12.2019 12:08

                A0 =1;

                N = 108000;

                c = randi([0, 1], 1, N);

                d = zeros(1, N);

                d(1) = c(1);

                for n = 2:length(c)

                d(n) = xor(c(n), d(n-1));

                end

                fc = 10; % часота несущего колебания

                fz = 1; % частота символов

                fd = 20*fc; % чатоста дискретизации

                td = 1/fd; % период дискретизации

                t = 0 : td : N/fz-td; % массив времени

                M = fd/fz; % количество отсчетов на бит

                Z = repmat(d, M, 1); % повторяем последовательность по строкам

                Z = Z(:)'; % вытягиваем по столбцам

                S1 = A0.*sin(2*pi*fc*t + Z*pi); % сигнал с БФМ

                % белый гауссовский шум

                sigma = 2.24;

                noise = sigma .* randn(1, length(t));

                % Сумма сигнала DPSK + белый гауссовский шум

                S2 = S1 + noise; % Фильтрация шума

                [b,a] = butter(2,[fc-1 fc+1]/(fd/2));

                S3 = filtfilt(b,a,S2); % Задержанный принимаемый сигнала на тактовой интервал сигнал Ts

                S4=[zeros(1, 1 * M) S3(1 : end - 1* M)]; %сравнить результат после интегратора с порогом

                S5 = S3 .* S4;

                tau = 5e-6; %постоянная времени фильтра

                [y,x] = butter(2,2/tau/pi/fd); %расчет коффициентов полиномов функции переачи ФНЧ

                ik = impz(y,x); %расчет импульсной характеристики ФНЧ

                %f = 0.1 .* exp(-t .* fs); %или надо по этой команде для ИХ ФНЧ с fs (частота среза)

                % накодение в ФНЧ и сравнить результат с порогом

                SS = filter(y,x,S5); %фильтрация ФНЧ

                %SS = conv(S5,f); %или надо вычислить сверту сигнала с ИХ ФНЧ

                for n = 2 : N

                if SS(n .* fd) < 0;

                d(n) = 1;

                else d(n) = 0;

                end

                end

                % Вероятность ошибки

                error = sum(c(2:end) ~= d(2:end)) / (N-1);

            • AlekseyP.
              AlekseyP.0.00
              23.01.2020 11:41

              При рассчете ОСШ входного сигнала вы фильтровали шум (полосой сигнала)? Иначе ОСШ будет некорректным.

              • Нгуен Ван Зунг
                Нгуен Ван Зунг+19.83
                23.01.2020 15:23

                Спасибо Вам!

                Вы правильно подсказали, надо учитывать после фильтрации шума. и получили результаты ближе к теории. Сейчас, наша трудность в решении с сигнала DQPSK. Прием сигнала DQPSK чуть по разной с DBPSK. Мы тратили много времени, но не могли решать проблему с приемом сигнала DQPSK.

                Если Вы нам помогите, Я отправлю программу DQPSK.

                Заранее спасибо Вам за помощь!

                • AlekseyP.
                  AlekseyP.0.00
                  24.01.2020 11:46

                  Программу не надо -  у меня своих хватает.

                  Прием сигнала DQPSK я делал так же как QPSK, в конце просто дифкод снимается по таблице кодирования символов.

                  Та схема, что у вас приведена (где, я так понимаю, вы получаетет разностный сигнал сразу после фильтра) - возможна для моделирования, но в ней не учтена тактовая и частотная синхронизация. Т.е. с реальным сигналом работать не будет.

                  • Нгуен Ван Зунг
                    Нгуен Ван Зунг+19.83
                    24.01.2020 12:21

                    Спасибо Вам за ответ!

                    Схема автокорреляционного демодулятора DQPSK, в которой Мы исследовали.

                    Честно говоря, Мы много думали, решали поставить  полосу входного фильтра и тау ФНЧ (другой способ сравить и выводить канальные символы). Но результаты всегда хуже много, чем теория. Спросили людей, но мало кто знает про этом.

                    Подскажите, что надо поправить программу?

                    Если наш подход не правильно.

                    У нас большая просьба к Вам. Вы можете отправить Нам вашу программу?

                    Мы благодарим Вас за помощь!

                    Напишите на форуме программе, или отправите на адрес: codonmaimai92@gmail.com (если есть какие условия, напишите на этом адресе, пожалуйста!)

              • AlekseyP.
                AlekseyP.0.00
                24.01.2020 12:44

                Вы не поймете мою программу. Там решающее устройство с адаптивным фильтром и ФАПЧ.

                У вас решающее устройство, я так понимаю, работает по максимуму (на длинне символа) разности мгновенной фазы Z.

                Для того, чтобы получить результаты, близкие к теории, вам нужно иметь согласованные формирующие фильтры на передатчике и приемнике (ваши ФНЧ и ФНЧ передатчика). Обчно используют sqrt-rolloff (корень из приподнятого cos), их описание есть в учебниках ЦОС.

                Если у вас в приемнике произвольный фильтр (типа sin(x)/x с окном) - то результат будет хуже теории.

                • Нгуен Ван Зунг
                  Нгуен Ван Зунг+19.83
                  24.01.2020 13:03

                  Спасибо Вам! Я попробую. Простите, пожалуйста! Если Я не правильно говорю. Нам очень нужна Ваша программа, если Вы не против. Хотим посмотреть и что то обязательно применить в нашем исследовании.

                  С уважением, Зунг.

                  • AlekseyP.
                    AlekseyP.0.00
                    24.01.2020 13:26

                    Моя "программа" на С++ - это комплекс мониторинга сигналов беспроводной связи.

                    Если вы студент или аспирант - гораздо полезнее для вас будет разобраться и написать такой обработчик самому.

                    • Нгуен Ван Зунг
                      Нгуен Ван Зунг+19.83
                      24.01.2020 13:33

                      Спасибо Вам! Я напишу на Матлабе и если что не так получу. Попрошу Вас, помогите поправить, пожалуйста!