资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
通信原理概论实验实验报告班级: 计科101 学号: 姓名: 日期:2013年5月21日实验序号:实验三实验名称: 数字调制系统二进制数字调制实验目的: (1)使用MATLAB产生三种基本的二进制数字调制信号。 (2)通过实验进一步熟悉和掌握二进制数字调制的基本原理。 实验要求: 请按照本实验说明的实验内容部分的信息独立完成本实验,并提交实验报告,实验报告请参照实验报告模板的格式。实验内容:1. 参考第4次和第5次实验的相关代码,编制一个函数ASK,用于对任意的二进制序列产生对应的2ASK信号。提示:本程序的代码结构和前两次实验大体相同,可在原来的程序基础上修改得到。首先要有一个输入序列,然后依次处理该序列中的每一个符号。对于2ASK来说,如果对应符号1,则输出载波,否者输出0。输出载波的代码片段为: for j=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=1 1 1 0 1 0 1 0 1 ; %这个二进制序列可以任意修改 ASK(x) %执行函数,输出显示对应的2ASK信号(3)程序最后一行使用: axis(0,i,-1.1,1.1); 控制显示的刻度范围。显示结果:2. 修改程序,编制一个函数FSK,用于对任意的二进制序列产生对应的2FSK信号。(注意:要求本题目用两种方法实现:(1)直接根据是符号0还是符号1,输出不同的载波。输出载波的方法同上,但注意要有两种不同频率的载波。(2)将FSK分解为两路不同的ASK信号之和,分别求得两路ASK,然后相加得到FSK。注意两路ASK对应的二进制序列正好相反。)function y=FSK(x)%输入x为二进制码,输出y为编好的码t0=200; %每个码元200个点t=0:1/t0:length(x); %时间序列fc=1;fc1=2;for i=1:length(x) %计算机码元的值 if x(i)=1 for j=1:t0 y(i-1)*t0+j)=sin(2*pi*fc*j/t0); end; else for j=1:t0 %如果输入信息为1,码元对应的点值取1 y(i-1)*t0+j)=sin(2*pi*fc1*j/t0); end; endend 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); %该波形表示0y(i-1)*t0+j)=-sin(2*pi*fc*j/t0); %该波形表示1显示结果:4. 修改程序,编制一个函数DPSK,用于对任意的二进制序列产生对应的2DPSK信号。(注意:要求本题目用两种方法实现:(1)直接根据是符号0还是符号1,输出DPSK波形。(2)将原始二进制序列的绝对码变换成相对码后,再进行绝对移相得到DPSK信号。不管用哪种方法,均需要有一个前提规定,即什么样的相位差对应什么符号,请在程序中用注释说明这一点。)function y=DPSK(x)%输入x为二进制码,输出y为编好的码t0=200; %每个码元200个点t=0:1/t0:length(x); %时间序列fc=1; %初始频率p1=1; %始初为sin,且遇到符号0变化,1不变化for i=1:length(x) %计算机码元的值 if x(i)=1 if p1=1 for j=1:t0 y(i-1)*t0+j)=sin(2*pi*fc*j/t0); end; p1=1; else for j=1:t0 y(i-1)*t0+j)=-sin(2*pi*fc*j/t0); end; p1=0; end; else if p1=1 for j=1:t0 y(i-1)*t0+j)=-sin(2*pi*fc*j/t0); end; p1=0; else for j=1:t0 y(i-1)*t0+j)=sin(2*pi*fc*j/t0); end; p1=1; end;endend 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=1 1 0 1 1 0 0 0;function y=MASK(x)%输入x为二进制码,输出y为编好的码t0=200; %每个码元200个点t=0:1/t0:length(x); %时间序列fc=1; %初始频率for i=1:2:length(x)-1 %计算机码元的值 if x(i)=1 & x(i+1)=1 %遇到分组11 for j=1:2*t0 y(i-1)*t0+j)=3*sin(2*pi*fc*j/t0); end; end; if x(i)=1 & x(i+1)=0 %遇到分组10 for j=1:2*t0 y(i-1)*t0+j)=2*sin(2*pi*fc*j/t0); end; end; if x(i)=0 & x(i+1)=1 %遇到分组01 for j=1:2*t0 y(i-1)*t0+j)=sin(2*pi*fc*j/t0); end; end; if x(i)=0 & x(i+1)=0 %遇到分组00 for j=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)。function y=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时初始频率for i=1:2:length(x)-1 %计算机码元的值 if x(i)=1 & x(i+1)=1 %遇到分组11 for j=1:2*t0 y(i-1)*t0+j)=sin(2*pi*fc*j/t0); end; end; if x(i)=1 & x(i+1)=0 %遇到分组10 for j=1:2*t0 y(i-1)*t0+j)=sin(2*pi*fc1*j/t0); end; end; if x(i)=0 & x(i+1)=1 %遇到分组01 for j=1:2*t0 y(i-1)*t0+j)=sin(2*pi*fc2*j/t0); end; end; if x(i)=0 & x(i+1)=0 %遇到分组00 for j=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、270o 4种相位,事先先确定好相位和二进制代码组合的对应关系,请在程序中用注释说明这一点。输入值为:x=1 1 0 1 1 0 1 1 0 0 ;function y=QPSK(x)%输入x为二进制码,输出y为编好的码t0=200; %每个码元200个点t=0:1/t0:length(x); %时间序列fc=1; %初始频率for i=1:2:length(x)-1 %计算机码元的值 if x(i)=1 & x(i+1)=1 %遇到分组11 for j=1:2*t0
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号