- •Содержание
- •Введение
- •Двоичная фазовая манипуляция
- •Определение, методы формирования и когерентного приема сигналов с фм
- •Помехоустойчивость когерентного приема сигналов с фм
- •Спектральная плотность мощности сигналов с фм
- •Двоичная относительная фазовая манипуляция
- •Определение, методы формирования и когерентного приема сигналов с офм
- •Некогерентный прием сигналов с офм
- •Помехоустойчивость приема сигналов с офм
- •Программная реализация методов расчета характеристик сигналов с двоичной фазовой манипуляцией
- •Описание программы построения временн́ых диаграмм сигналов с фм
- •Описание программы расчета помехоустойчивости приема сигналов с фм
- •Описание программы расчета спектральной плотности мощности сигналов с фм
- •Заключение
- •Список использованных источников
- •Приложение а текст программы построения временных диаграмм сигналов с фм
- •Приложение б текст программы расчета помехоустойчивости приема сигналов с фм
- •Приложение в текст программы расчета спектральной плотности мощности сигналов с фм
Приложение а текст программы построения временных диаграмм сигналов с фм
%Временные диаграммы сигналов с двоичной ФМ и ОФМ
clc, clear all, close all
%Ввод исходных данных
prompt = {'Информационная последовательность (1,0):';...
'Число точек расчета на символ:';
'Множительнесущей частоты относительно длительности символа'};
dlg_title = 'Ввод исходных данных';
num_lines = 1;
def = {'1 0 1 1 0 0 0 1 1 1 0 0 ';'1001';'2'};
answer = inputdlg(prompt,dlg_title,num_lines,def);
%--------------------
if isempty(answer)~=1
%--------------------
b=str2num(answer{1});
nsamp=str2num(answer{2});
kf=str2num(answer{3});
%Задание параметров расчета
LW=1;
MS=1.5;
Ts=1;
dt=Ts/nsamp;
Fs = 1/dt;
nb=length(b);
t=0:dt:(nsamp*nb-1)*dt;
a_m=zeros(1,nb);a_s=zeros(1,nb);
a_ms0=-1;
%Несущая частота
omega0=kf*2*pi/Ts;
%Переход от униполярного к полярному коду
a=2*b-1;
%----------------------------------------------
%1-е окно
%ИКМ сигнал с полярным кодированием БВН (NRZ-L)
%Сигнал с абсолютной ФМ (Level)
%----------------------------------------------
%Расчет сигнала с ИКМ
d=[.5 : 1 : nb; a]';
g = pulstran(t,d,'rectpuls',Ts);
%Расчет сигнала с абсолютной ФМ (Level)
y = g.*cos(omega0*t);
%Построение графика ИКМ
ymi=-1.1; yma=-ymi;
subplot(2,1,1)
hp=plot(t,g);grid,box off
set(hp,'Color','black','LineWidth',LW)
hold on
stem(0:Ts:nb*Ts,zeros(1,nb+1),'filled','MarkerSize',MS,'Color','Red')
str1='Сигнал с ИКМ, полярный код БВН (NRZ-L)';
str2=['Информационная последовательность:',answer{1}];
title({str1;str2})
xlabel('Нормированное время {\itt }/{\itT}')
ylabel('ИКМ сигнал {\ita }({\itt})')
ylim([ymi yma])
%Построение графика ФМ
ymi=-1.1; yma=1.1;
subplot(2,1,2)
hp=plot(t,y);grid,box off
set(hp,'Color','black','LineWidth',LW)
hold on
stem(0:Ts:nb*Ts,zeros(1,nb+1),'filled','MarkerSize',MS,'Color','Red')
str1='Сигнал с ФМ, полярный код БВН (NRZ-L)';
str2=['Информационная последовательность:',answer{1}];
title({str1;str2})
xlabel('Нормированное время {\itt }/{\itT}')
ylabel('ФМ сигнал {\its }({\itt})')
ylim([ymi yma])
%---------------------------------------------
%2-е окно
%ИКМ сигнал с полярным кодированием БВН (NRZ-M)
%Сигнал с относительной ФМ (Mark)
%---------------------------------------------
%Дифференциальное кодирование (NRZ-M)
a_m(1)=-a(1)*a_ms0;
for k=2:length(a);a_m(k)=-a(k)*a_m(k-1);end
%Расчет сигнала с ИКМ
d=[.5 : 1 : nb; a_m]';
g = pulstran(t,d,'rectpuls',Ts);
%Расчет сигнала с относительной ФМ (Mark)
y = g.*cos(omega0*t);
%Построение графика ИКМ
figure
subplot(2,1,1)
hp=plot(t,g);grid,box off
set(hp,'Color','black','LineWidth',LW)
hold on
stem(0:Ts:nb*Ts,zeros(1,nb+1),'filled','MarkerSize',MS,'Color','Red')
str1='Сигнал с ИКМ, полярный код БВН (NRZ-M)';
str2=['Информационная последовательность:',answer{1}];
title({str1;str2})
xlabel('Нормированное время {\itt }/{\itT}')
ylabel('ИКМ сигнал {\ita }({\itt})')
ylim([ymi yma])
%Построение графика ФМ
subplot(2,1,2)
hp=plot(t,y);grid,box off
set(hp,'Color','black','LineWidth',LW)
hold on
stem(0:Ts:nb*Ts,zeros(1,nb+1),'filled','MarkerSize',MS,'Color','Red')
str1='Сигнал с ФМ, полярный код БВН (NRZ-M)';
str2=['Информационная последовательность:',answer{1}];
title({str1;str2})
xlabel('Нормированное время {\itt }/{\itT}')
ylabel('ФМ сигнал {\its }({\itt})')
ylim([ymi yma])
%---------------------------------------------
%3-е окно
%ИКМ сигнал с полярным кодированием БВН (NRZ-S)
%Сигнал с относительной ФМ (Space)
%---------------------------------------------
%Дифференциальное кодирование (NRZ-S)
a_s(1)=a(1)*a_ms0;
for k=2:length(a);a_s(k)=a(k)*a_s(k-1);end
%Расчет сигнала с ИКМ
d=[.5 : 1 : nb; a_s]';
g = pulstran(t,d,'rectpuls',Ts);
%Расчет сигнала с относительной ФМ (Space)
y = g.*cos(omega0*t);
figure
%Построение графика ИКМ
subplot(2,1,1)
hp=plot(t,g);grid,box off
set(hp,'Color','black','LineWidth',LW)
hold on
stem(0:Ts:nb*Ts,zeros(1,nb+1),'filled','MarkerSize',MS,'Color','Red')
str1='Сигнал с ИКМ, полярный код БВН (NRZ-M)';
str2=['Информационная последовательность:',answer{1}];
title({str1;str2})
xlabel('Нормированное время {\itt }/{\itT}')
ylabel('ИКМ сигнал {\ita }({\itt})')
ylim([ymi yma])
%Построение графика ФМ
subplot(2,1,2)
hp=plot(t,y);grid,box off
set(hp,'Color','black','LineWidth',LW)
hold on
stem(0:Ts:nb*Ts,zeros(1,nb+1),'filled','MarkerSize',MS,'Color','Red')
str1='Сигнал с ФМ, полярный код БВН (NRZ-S)';
str2=['Информационная последовательность:',answer{1}];
title({str1;str2})
xlabel('Нормированное время {\itt }/{\itT}')
ylabel('ФМ сигнал {\its }({\itt})')
ylim([ymi yma])
%--------------------
end
%--------------------
