Передача цифрового диапазона частот - двоичная цифровая модуляция и моделирование MATLAB
Передача цифрового диапазона частот - двоичная цифровая модуляция и моделирование MATLAB

Предисловие

Сигналы цифрового диапазона также часто называют сигналами цифровой модуляции.,его сигнал Спектр Обычно полосовой тип,Подходит для передачи в полосовых каналах。Цифровая модуляция — это метод обработки сигналов, который преобразует цифровые сигналы основной полосы частот в подходящую передачу по полосовому каналу.,как в аналоговой связи,Может адаптироваться к характеристикам канала путем перемещения группового сигнала.,Той же цели можно достичь, используя частотную и фазовую модуляцию.

В этой статье Matlab в основном будет использоваться для изучения методов двоичной модуляции и демодуляции, включая OOK, 2PSK и 2FSK, а также для анализа и моделирования этих систем модуляции.


1. ОК

1. Выражение

Если двоичный символ «0» соответствует сигналу 0, а «1» соответствует сигналу

Acos2\pi f_ct

, то сигнал OOK можно записать в виде следующего выражения:

s(t)={\sum_na_ng(t-nT_s)}Acos2\pi f_ct

в,

a_n\in

{0,1},

g(t)=\begin{cases} 1& 0\le t \le T_s \\ 0& \text{Другие} \end{cases}

Видно, что приведенная выше формула представляет собой цифровой модулирующий сигнал.

m(t)=\sum_na_ng(t-nT_s)

Форма сигнала OOK, сформированного после модуляции DSB, показана на рисунке ниже:

Форма сигнала ОК

2. Спектральная плотность мощности

Спектральная плотность мощности сигнала OOK равна:

P_s(f)=\frac{A^2}{4}[P_m(f-f_c)+P_m(f+f_c)]

3. Блок-схема модуляции

Блок-схема модуляции OOK показана ниже:

Блок-схема модуляции сигнала OOK

2.2ПСК

1. Выражение

Соответствующая фаза двоичного символа «0» равна

\pi

перевозчик

-Acos2\pi f_ct

,“1” Соответствующая фаза 0перевозчик

Acos2 \pi f_ct

, то сигнал 2PSK можно записать в виде следующего выражения:

s(t)={\sum_na_ng(t-nT_s)}Acos2\pi f_ct

в,

a_n\in

{+1,-1},

g(t)=\begin{cases} 1& 0\le t \le T_s \\ 0& \text{Другие} \end{cases}

Форма сигнала 2PSK показана на рисунке ниже. Блок-схема его реализации аналогична OOK, за исключением того, что вход является биполярным.

Форма сигнала 2PSK

2. Спектральная плотность мощности

Спектральная плотность мощности сигнала 2PSK равна:

P_s(f)=\frac{A^2}{4}[P_m(f-f_c)+P_m(f+f_c)]

3. 2ФСК

1. Выражение

Соответствует двоичному символу «0» несущей.

Acos2 \pi f_1t

, «1» соответствует оператору связи

Acos2\pi f_2t

, то формируется сигнал 2FSK, который можно записать в виде следующего выражения:

s(t)=\sum_n \overline{a_n}g(t-nT_s)Acos(2\pi f_1t+\varphi_n)+\sum_n a_ng(t-nT_s)Acos(2\pi f_1t+\theta_n)

когда

a_n=1

Когда , соответствующая частота сигнала передачи равна

f_2

,когда

a_n=0

Когда , соответствующая частота сигнала передачи равна

f_1

, в приведенной выше формуле

\varphi_n

\theta_n

являются начальными фазами двух частотных волн. 2FSK можно записать и в другой форме:

s(t)=Acos[2\pi f_ct+2\pi h\sum_{n=-\infty}^{\infty}{a_n}g(t-nT_s)]

в,

a_n\in

{+1,-1},

f_c=(f_1+f_2)/2

,

g(t)=\begin{cases} 1& 0\le t \le T_s \\ 0& \text{Другие} \end{cases}

,

h=|f_c-f_1|

— это смещение частоты, и его форма сигнала показана на рисунке ниже:

Форма сигнала 2FSK

Сигнал 2FSK можно рассматривать как суперпозицию сигналов OOK двух разных несущих:

s(t)=s_1(t)cos(\omega t+\phi_1)+s_2(t)cos(\omega_t+\phi_2)

Когда эти два элемента некоррелированы (например, разница частот между несущими достаточно велика), его спектральная плотность мощности равна:

P_s=\frac{1}{4}[P_{s1}(f+f_1)+P_{s1}(f-f_1)]+\frac{1}{4}[P_{s2}(f+f_1)+P_{s1}(f-f_2)]

4. Моделирование MATLAB

Следующий код использует MATLAB для генерации независимых источников двоичной информации равной вероятности и выполняет следующие три функции:

  • Нарисуйте форму сигнала OOK и его спектр мощности;
  • Нарисуйте форму сигнала 2PSK и его спектр мощности;
  • Нарисуйте форму сигнала 2FSK и его спектр мощности (при условии, что
|f_1-f_2|>>\frac{1}{T_s}

)。

1. Исходный код MATLAB

Язык кода:javascript
копировать
% 2ASK,2PSK
clear all;
close all;

A  = 1;
fc = 2;                                     % 2Hz;
N_sample = 8; 
N  = 500;                                   % Количество элементов кода
Ts = 1;                                     % 1 baud/s

dt = Ts/fc/N_sample;                        % форма интервал дискретизации волн
t = 0 : dt : N*Ts-dt;
T = dt * length(t);
Lt = length(t);

% Создать двойной источник
d = sign(randn(1, N));                      
dd = sigexpand((d+1)/2, fc*N_sample);
gt = ones(1, fc*N_sample);                   % NRZ форма волны

figure(1)
subplot(221);                               % входить NRZ форма сигнал (униполярный)
d_NRZ = conv(dd, gt);
plot(t, d_NRZ(1:length(t))); 
axis([0 10 0 1.2]); xlabel('t/s'); ylabel('входить Сигнал');

subplot(222);                               % входить NRZ Спектр
[f, d_NRZf] = T2F(t, d_NRZ(1:length(t)));
plot(f, 10*log10(abs(d_NRZf).^2/T));
axis([-2 2 -50 10]); xlabel('f/Hz'); ylabel('входить Сигнал Спектральная плотность мощности (д Б/Гц)');

Сигнал %2ASK
ht = A*cos(2*pi*fc*t);
s_2ask = d_NRZ(1:Lt).*ht;

subplot(223)
plot(t,s_2ask);
axis([0 10 -1.2 1.2]); xlabel('t/s'); ylabel('2ASK');

[f, s_2askf]=T2F(t, s_2ask );
subplot(224)
plot(f, 10*log10(abs(s_2askf).^2/T));
axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('Спектральная плотность мощности 2ASK (д Б/Гц)');

figure(2)
%2PSK-сигнал
d_2psk = 2*d_NRZ-1;
s_2psk = d_2psk(1:Lt).*ht;
subplot(221)
plot(t,s_2psk);
axis([0 10 -1.2 1.2]); xlabel('t/s'); ylabel('2PSK');

subplot(222)
[f, s_2pskf] = T2F(t, s_2psk);
plot( f, 10*log10(abs(s_2pskf).^2/T) );
axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('Спектральная плотность мощности 2PSK (д Б/Гц)');

% 2FSK
% s_2fsk = Acos(2*pi*fc*t + int(2*d_NRZ-1) );
 sd_2fsk = 2*d_NRZ-1;

s_2fsk = A*cos(2*pi*fc*t + 2*pi*sd_2fsk(1:length(t)).*t );
subplot(223)
plot(t, s_2fsk);
axis([0 10 -1.2 1.2]);xlabel('t/s'); ylabel('2FSK')
subplot(224)
[f, s_2fskf] = T2F(t, s_2fsk);
plot(f, 10*log10(abs(s_2fskf).^2/T));
axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('Спектральная плотность мощности 2FSK (д Б/Гц)');

% случайная фаза 2FSK
fai = 2*pi*rand(1, N);
fai_2fsk = sigexpand(fai, fc*N_sample);
fai_2fsk = conv(fai_2fsk, gt);
s_2fskd = A*cos(2*pi*fc*t + 2*pi*sd_2fsk(1:length(t)).*t + fai_2fsk(1:length(t)) );
figure(3)
subplot(211);
plot(t, s_2fskd);
axis([0 10 -1.2 1.2]); xlabel('t/s'); ylabel('случайная фаза 2FSK');
[f, s_2fskdf] = T2F(t, s_2fskd);
subplot(212);
plot(f, 10*log10(abs(s_2fskdf).^2/T));
axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('случайная фаза 2FSK Спектральная плотность мощности (д Б/Гц)');

2. Моделирование и результаты

①.Входной сигнал и диаграмма спектра.
②, модуляция 2ASK
③, модуляция 2PSK
④, модуляция 2FSK
⑤ Случайная фазовая модуляция 2FSK.

5. Добывайте ресурсы самостоятельно

Двоичная цифровая модуляция и моделирование MATLAB

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.