Спектр DQPSK
07.12.2022
Здравствуйте! У меня вопрос по поводу дифференциальной квадратурной фазовой модуляции (DQPSK), которая применяется в стандарте связи TETRA. Мне необходимо построить сигнал с данной модуляцией и получить спектр этого сигналав среде MATLAB. В сети можно найти уже изображение необходимого спектра, но мне необходимо именно наличие кода для построения данного спектра. В файлах прикрепил необходимый спектр. Заранее спасибо за помощь!
Ответы
Из спектра (вашего) нельзя сигнал выделить. Вы начните с того какой должен быть исходный сигнал, и постройте его. А потом уже будем говорить про спектр.
Исходным сигналом является обычная синусоида. И нужно вот её промодулировать данным способом и получить спектр, как во вложении.
Так и "промодулируйте" опираясь на то, что написал коллега. В хелпе (кстати) пример даже есть.
DQPSK предназначен для передачи данных по два бита на символ, поэтому исходным сообщением должен быть поток двоичных данных или целые числа от 0 до 3, но никак не синусоида.
Да, ну тут в принципе понятно что Т.С. имел ввиду.
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)
Я скопировал ваш код и даже перепроверил, но выдаёт следующую ошибку. И честно говоря, я не очень её понимаю.
SampleRate=8e6;
sa = spectrumAnalyzer(SampleRate);
попробуйте так
Unrecognized function or variable 'spectrumAnalyzer'. Теперь такая ошибка.
Прикольно, я даже внимания не обратил, что теперь такая запись работает. В старых версиях можно так попробовать:
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)
Лично у меня работают оба варианта.
В MATLAB 2020 оба варианта не работаю. Unrecognized function or variable 'SpectrumAnalyzer'- ошибка такая же
Ну введите в справке spectrumAnalyzer, посмотрите как создать системный объект. Может у Вас DSP Toolbox не установлен.
Вы правы, в моём матлабе что-то не так. Скопировал в онлайн матлаб и там заработало всё. Спасибо большое! Очень помогли!
В данном коде сначала генерируется случайный набор данных, Pizza Tower который затем модулируется с помощью QPSK и дифференцируется для получения DQPSK-модуляции. Затем вычисляется BER, и строится график спектра сигнала с помощью функции fftshift и fft.