通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx
- 文档编号:4467977
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:15
- 大小:185.63KB
通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx
《通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx》由会员分享,可在线阅读,更多相关《通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx(15页珍藏版)》请在冰豆网上搜索。
通信原理概论实验数字调制系统二进制数字调制多进制数字调制
《通信原理概论实验》实验报告
班级:
计科101学号:
姓名:
日期:
2013年5月21日
实验序号:
实验三
实验名称:
数字调制系统—二进制数字调制
实验目的:
(1)使用MATLAB产生三种基本的二进制数字调制信号。
(2)通过实验进一步熟悉和掌握二进制数字调制的基本原理。
实验要求:
请按照本实验说明的实验内容部分的信息独立完成本实验,并提交实验报告,实验报告请参照实验报告模板的格式。
实验内容:
1.参考第4次和第5次实验的相关代码,编制一个函数ASK,用于对任意的二进制序列产生对应的2ASK信号。
提示:
本程序的代码结构和前两次实验大体相同,可在原来的程序基础上修改得到。
首先要有一个输入序列,然后依次处理该序列中的每一个符号。
对于2ASK来说,如果对应符号1,则输出载波,否者输出0。
输出载波的代码片段为:
forj=1:
t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);
end;
注意:
(1)fc是载波的频率(因此之前需要定义一个fc),如果fc=1,则一个二进制符号调制后输出1个周期的正弦波,如果fc=2,则输出2个周期的正弦波,等等。
(2)该函数编制好后,在MATLAB的命令窗口输入:
x=[111010101];%这个二进制序列可以任意修改
ASK(x)%执行函数,输出显示对应的2ASK信号
(3)程序最后一行使用:
axis([0,i,-1.1,1.1]);控制显示的刻度范围。
显示结果:
2.修改程序,编制一个函数FSK,用于对任意的二进制序列产生对应的2FSK信号。
(注意:
要求本题目用两种方法实现:
(1)直接根据是符号0还是符号1,输出不同的载波。
输出载波的方法同上,但注意要有两种不同频率的载波。
(2)将FSK分解为两路不同的ASK信号之和,分别求得两路ASK,然后相加得到FSK。
注意两路ASK对应的二进制序列正好相反。
)
functiony=FSK(x)
%输入x为二进制码,输出y为编好的码
t0=200;%每个码元200个点
t=0:
1/t0:
length(x);%时间序列
fc=1;
fc1=2;
fori=1:
length(x)%计算机码元的值
ifx(i)==1
forj=1:
t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);
end;
else
forj=1:
t0%如果输入信息为1,码元对应的点值取1
y((i-1)*t0+j)=sin(2*pi*fc1*j/t0);
end;
end
end
N=length(y);
temp=y(N);
y=[y,temp];
plot(t,y);
axis([0,i,-1.1,1.1]);
title('FSK');
显示结果
3.修改程序,编制一个函数PSK,用于对任意的二进制序列产生对应的2PSK信号。
(注意:
PSK信号的产生应该有一个前提规定,即什么样的波形表示0,什么样的波形表示1,请在程序中用注释说明这一点。
)
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);%该波形表示0
y((i-1)*t0+j)=-sin(2*pi*fc*j/t0);%该波形表示1
显示结果:
4.修改程序,编制一个函数DPSK,用于对任意的二进制序列产生对应的2DPSK信号。
(注意:
要求本题目用两种方法实现:
(1)直接根据是符号0还是符号1,输出DPSK波形。
(2)将原始二进制序列的绝对码变换成相对码后,再进行绝对移相得到DPSK信号。
不管用哪种方法,均需要有一个前提规定,即什么样的相位差对应什么符号,请在程序中用注释说明这一点。
)
functiony=DPSK(x)
%输入x为二进制码,输出y为编好的码
t0=200;%每个码元200个点
t=0:
1/t0:
length(x);%时间序列
fc=1;%初始频率
p1=1;%始初为sin,且遇到符号0变化,1不变化
fori=1:
length(x)%计算机码元的值
ifx(i)==1
ifp1==1
forj=1:
t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);
end;
p1=1;
else
forj=1:
t0
y((i-1)*t0+j)=-sin(2*pi*fc*j/t0);
end;
p1=0;
end;
else
ifp1==1
forj=1:
t0
y((i-1)*t0+j)=-sin(2*pi*fc*j/t0);
end;
p1=0;
else
forj=1:
t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);
end;
p1=1;
end;
end
end
N=length(y);
temp=y(N);
y=[y,temp];
plot(t,y);
axis([0,i,-1.1,1.1]);
title('DPSK');
实验名称:
数字调制系统—多进制数字调制
实验目的:
(1)使用MATLAB产生多进制数字调制信号。
(2)通过实验进一步熟悉和掌握多进制数字调制的基本原理。
实验要求:
请按照本实验说明的实验内容部分的信息独立完成本实验,并提交实验报告,实验报告请参照实验报告模板的格式。
实验内容:
1.参考第6次实验的相关代码,编制一个函数MASK,用于对任意的二进制序列产生对应的MASK信号(如M=4)。
提示:
需要将原始的序列分成每两位为1组,按照特定组合来决定输出的载波的振幅。
注意:
程序中用axis函数来控制好显示的刻度范围。
代码:
输入值为x=[11011000];
functiony=MASK(x)
%输入x为二进制码,输出y为编好的码
t0=200;%每个码元200个点
t=0:
1/t0:
length(x);%时间序列
fc=1;%初始频率
fori=1:
2:
length(x)-1%计算机码元的值
ifx(i)==1&x(i+1)==1%遇到分组11
forj=1:
2*t0
y((i-1)*t0+j)=3*sin(2*pi*fc*j/t0);
end;
end;
ifx(i)==1&x(i+1)==0%遇到分组10
forj=1:
2*t0
y((i-1)*t0+j)=2*sin(2*pi*fc*j/t0);
end;
end;
ifx(i)==0&x(i+1)==1%遇到分组01
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);
end;
end;
ifx(i)==0&x(i+1)==0%遇到分组00
forj=1:
2*t0
y((i-1)*t0+j)=0;
end;
end;
end;
N=length(y);
temp=y(N);
y=[y,temp];
plot(t,y);
axis([0,length(x),-3.1,3.1]);
title('MASK');
显示结果:
2.修改程序,编制一个函数MFSK,用于对任意的二进制序列产生对应的MFSK信号(如M=4)。
functiony=MFSK(x)
%输入x为二进制码,输出y为编好的码
t0=200;%每个码元200个点
t=0:
1/t0:
length(x);%时间序列
fc=1;%11时初始频率
fc1=2;%10时初始频率
fc2=3;%01时初始频率
fc3=4;%00时初始频率
fori=1:
2:
length(x)-1%计算机码元的值
ifx(i)==1&x(i+1)==1%遇到分组11
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);
end;
end;
ifx(i)==1&x(i+1)==0%遇到分组10
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc1*j/t0);
end;
end;
ifx(i)==0&x(i+1)==1%遇到分组01
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc2*j/t0);
end;
end;
ifx(i)==0&x(i+1)==0%遇到分组00
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc3*j/t0);
end;
end;
end;
N=length(y);
temp=y(N);
y=[y,temp];
plot(t,y);
axis([0,length(x),-1.1,1.1]);
title('MFSK');
显示结果:
3.修改程序,编制一个函数QPSK,用于对任意的二进制序列产生对应的QPSK信号(M=4的MPSK信号),假设使用0o、90o、180o、270o4种相位,事先先确定好相位和二进制代码组合的对应关系,请在程序中用注释说明这一点。
输入值为:
x=[1101101100];
functiony=QPSK(x)
%输入x为二进制码,输出y为编好的码
t0=200;%每个码元200个点
t=0:
1/t0:
length(x);%时间序列
fc=1;%初始频率
fori=1:
2:
length(x)-1%计算机码元的值
ifx(i)==1&x(i+1)==1%遇到分组11
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0+1.5*pi);%遇到11分组,初始相位为270°
end;
end;
ifx(i)==1&x(i+1)==0%遇到分组10
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0+pi);%遇到10分组,初始相位为180°
end;
end;
ifx(i)==0&x(i+1)==1%遇到分组01
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0+pi/2);%遇到01分组,初始相位为90°
end;
end;
ifx(i)==0&x(i+1)==0%遇到分组00
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0);%遇到00分组,初始相位为0°
end;
end;
end;
N=length(y);
temp=y(N);
y=[y,temp];
plot(t,y);
axis([0,length(x),-1.1,1.1]);
title('QPSK');
显示结果:
4.修改程序,编制一个函数QDPSK,用于对任意的二进制序列产生对应的QDPSK信号(M=4的MDPSK信号),假设使用0o、90o、180o、270o4种相位差,事先先确定好相位差和二进制代码组合的对应关系,请在程序中用注释说明这一点。
代码实现:
functiony=QDPSK(x)
%输入x为二进制码,输出y为编好的码
t0=200;%每个码元200个点
t=0:
1/t0:
length(x);%时间序列
fc=1;%初始频率
p=0;%初始相位为0°
fori=1:
2:
length(x)-1%计算机码元的值
ifx(i)==1&x(i+1)==1%遇到分组11
p=p+1.5*pi;
p=mod(p,2*pi);
end
ifx(i)==1&x(i+1)==0%遇到分组为10
p=p+pi;
p=mod(p,2*pi);
end
ifx(i)==0&x(i+1)==1%遇到分组为01
p=p+0.5*pi;
p=mod(p,2*pi);
end
ifx(i)==0&x(i+1)==0%遇到分组为10
p=mod(p,2*pi);
end
forj=1:
2*t0
y((i-1)*t0+j)=sin(2*pi*fc*j/t0+p);%遇到11分组,移动相位为270°
end;
end;
N=length(y);
temp=y(N);
y=[y,temp];
plot(t,y);
axis([0,length(x),-1.1,1.1]);
title('QDPSK');
显示结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 原理 概论 实验 数字 调制 系统 二进制数字 多进制