• Регистрация
Roman22Suai
Roman22Suai 0.00
н/д

Спектр DQPSK

Здравствуйте! У меня вопрос по поводу дифференциальной квадратурной фазовой модуляции (DQPSK), которая применяется в стандарте связи TETRA.  Мне необходимо построить сигнал с данной модуляцией и получить спектр этого сигналав среде MATLAB. В сети можно найти уже изображение необходимого спектра, но мне необходимо именно наличие кода для построения данного спектра. В файлах прикрепил необходимый спектр. Заранее спасибо за помощь!

Файлы

  • 2.png

Теги

      07.12.2022

      Ответы

      • aBoomest
        aBoomest+929.89
        7.12.2022 20:21

        Из спектра (вашего) нельзя сигнал выделить. Вы начните с того какой должен быть исходный сигнал, и постройте его. А потом уже будем говорить про спектр.

        • Roman22Suai
          Roman22Suai0.00
          7.12.2022 21:44

          Исходным сигналом является обычная синусоида. И нужно вот её промодулировать данным способом и получить спектр, как во вложении.

           

          • aBoomest
            aBoomest+929.89
            7.12.2022 22:46

            Так и "промодулируйте" опираясь на то, что написал коллега. В хелпе (кстати) пример даже есть.

        • alextip
          alextip+45.13
          7.12.2022 22:23

          DQPSK предназначен для передачи данных по два бита на символ, поэтому исходным сообщением должен быть поток двоичных данных или целые числа от 0 до 3, но никак не синусоида.

          • aBoomest
            aBoomest+929.89
            7.12.2022 22:41

            Да, ну тут в принципе понятно что Т.С. имел ввиду.

          • alextip
            alextip+45.13
            7.12.2022 23:00

            dqpskmod = comm.DQPSKModulator;
            txfilter = comm.RaisedCosineTransmitFilter;
            data = randi([0 3],2000,1);
            modSig = dqpskmod(data);
            filteredData = txfilter(modSig);

            sa = spectrumAnalyzer(SampleRate=8e6);

            sa(filteredData);
            release(spectrumAnalyzer)

            Спектр DQPSK

            • Roman22Suai
              Roman22Suai0.00
              8.12.2022 00:20

              Я скопировал ваш код и даже перепроверил, но выдаёт следующую ошибку. И честно говоря, я не очень её понимаю.

              • aBoomest
                aBoomest+929.89
                8.12.2022 12:30

                SampleRate=8e6;

                sa = spectrumAnalyzer(SampleRate);

                попробуйте так

                • Roman22Suai
                  Roman22Suai0.00
                  8.12.2022 13:14

                  Unrecognized function or variable 'spectrumAnalyzer'. Теперь такая ошибка.

            • alextip
              alextip+45.13
              8.12.2022 20:58

              Прикольно, я даже внимания не обратил, что теперь такая запись работает. В старых версиях можно так попробовать:

              dqpskmod = comm.DQPSKModulator;
              txfilter = comm.RaisedCosineTransmitFilter;
              data = randi([0 3],2000,1);
              modSig = dqpskmod(data);
              filteredData = txfilter(modSig);

              sa = spectrumAnalyzer('SampleRate',8e6);

              sa(filteredData);
              release(spectrumAnalyzer)

              Лично у меня работают оба варианта.

              • Roman22Suai
                Roman22Suai0.00
                8.12.2022 21:21

                В MATLAB 2020 оба варианта не работаю. Unrecognized function or variable 'SpectrumAnalyzer'- ошибка такая же

              • alextip
                alextip+45.13
                8.12.2022 21:24

                Ну введите в справке spectrumAnalyzer, посмотрите как создать системный объект. Может у Вас DSP Toolbox не установлен.

                • Roman22Suai
                  Roman22Suai0.00
                  8.12.2022 21:48

                  Вы правы, в моём матлабе что-то не так. Скопировал в онлайн матлаб и там заработало всё. Спасибо большое! Очень помогли!

                Ближайшие события