通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx

上传人:b****5 文档编号:3696912 上传时间:2022-11-24 格式:DOCX 页数:15 大小:185.54KB
下载 相关 举报
通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx_第1页
第1页 / 共15页
通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx_第2页
第2页 / 共15页
通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx_第3页
第3页 / 共15页
通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx_第4页
第4页 / 共15页
通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx

《通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx》由会员分享,可在线阅读,更多相关《通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx(15页珍藏版)》请在冰豆网上搜索。

通信原理概论实验数字调制系统二进制数字调制多进制数字调制.docx

通信原理概论实验数字调制系统二进制数字调制多进制数字调制

《通信原理概论实验》实验报告

班级:

计科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');

显示结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1