1、实验要求: 请按照本实验说明的实验内容部分的信息独立完成本实验,并提交实验报告,实验报告请参照实验报告模板的格式。实验内容: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),如果
2、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)将
3、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:else t0 %如果输入信息为1,码元对应的点值取1 y(i-1)*t0+j)=sin(2*pi*fc1*j/t0);end N=length(y); temp=y(N); y=y,temp; plot(t,y
4、); 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); %该波形表示14. 修改程序,编制一个函数DPSK,用于对任意的二进制序列产生对应的2DPSK信号。(1)直接根据是符号0还是符号1,输出DPSK波形。(2)将原始二进制序列的绝对码变换成相对码后,再进行绝对移相得到DPSK信号。不
5、管用哪种方法,均需要有一个前提规定,即什么样的相位差对应什么符号,请在程序中用注释说明这一点。function y=DPSK(x) %初始频率p1=1; %始初为sin,且遇到符号0变化,1不变化 if p1=1 p1=1; else y(i-1)*t0+j)=-sin(2*pi*fc*j/t0); p1=0;DPSK 数字调制系统多进制数字调制 (1)使用MATLAB产生多进制数字调制信号。 (2)通过实验进一步熟悉和掌握多进制数字调制的基本原理。1.参考第6次实验的相关代码,编制一个函数MASK,用于对任意的二进制序列产生对应的MASK信号(如M=4)。需要将原始的序列分成每两位为1组,按
6、照特定组合来决定输出的载波的振幅。程序中用axis函数来控制好显示的刻度范围。代码:输入值为x=1 1 0 1 1 0 0 0;function y=MASK(x)2:length(x)-1 %计算机码元的值 if x(i)=1 & x(i+1)=1 %遇到分组112*t0 y(i-1)*t0+j)=3*sin(2*pi*fc*j/t0); x(i+1)=0 %遇到分组10 y(i-1)*t0+j)=2*sin(2*pi*fc*j/t0); if x(i)=0 & x(i+1)=1 %遇到分组01 x(i+1)=0 %遇到分组00 y(i-1)*t0+j)=0;end; axis(0,leng
7、th(x),-3.1,3.1);MASK2.修改程序,编制一个函数MFSK,用于对任意的二进制序列产生对应的MFSK信号(如M=4)。function y=MFSK(x) %11时初始频率 %10时初始频率fc2=3; %01时初始频率fc3=4; %00时初始频率 y(i-1)*t0+j)=sin(2*pi*fc2*j/t0); y(i-1)*t0+j)=sin(2*pi*fc3*j/t0); axis(0,length(x),-1.1,1.1);MFSK3.修改程序,编制一个函数QPSK,用于对任意的二进制序列产生对应的QPSK信号(M=4的MPSK信号),假设使用0o、90o、180o、
8、270o 4种相位,事先先确定好相位和二进制代码组合的对应关系,请在程序中用注释说明这一点。输入值为:x=1 1 0 1 1 0 1 1 0 0 ;function y=QPSK(x) y(i-1)*t0+j)=sin(2*pi*fc*j/t0+1.5*pi); %遇到11分组,初始相位为270 y(i-1)*t0+j)=sin(2*pi*fc*j/t0+pi); %遇到10分组,初始相位为180 y(i-1)*t0+j)=sin(2*pi*fc*j/t0+pi/2); %遇到01分组,初始相位为90 %遇到00分组,初始相位为0QPSK4.修改程序,编制一个函数QDPSK,用于对任意的二进制序列产生对应的QDPSK信号(M=4的MDPSK信号),假设使用0o、90o、180o、270o 4种相位差,事先先确定好相位差和二进制代码组合的对应关系,请在程序中用注释说明这一点。代码实现: function y=QDPSK(x)p=0; %初始相位为0 p=p+1.5*pi; p=mod(p,2*pi); end x(i+1)=0 %遇到分组为10 p=p+pi; end x(i+1)=1 %遇到分组为01 p=p+0.5*pi; y(i-1)*t0+j)=sin(2*pi*fc*j/t0+p); %遇到11分组,移动相位为270QDPSK
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1