精品文档
MATLAB的数字调制仿真实验报告
1:实验要求
实验要求通过输入随机信号的长度 ,得到二进制的随机原始信号 ,同时把得
到的原始信号用三种不同的方法调制出来。当分别输入各个控件名称时 ,得到原始信号相应的信号输出。
2:实验过程
2.1 实验条件
1:实验的原始信号由MATLAB的randint(n)函数输出 ,需要确定的只是
n,就是原始信号的宽度。
2:三种不同的调制函数
原始信号 调制信号函数
振幅调制: 0: 0
1: cos(t+pi/3)
频移调制: 0: cos(t+pi/3) 1: cos(2*t+pi/6) 相位移调制: 0: cos(t) 1: cos(t+pi)
时间t为单个信号存在的时间周期 ,为了将图形表达更加清晰 ,这里选择将其选定为2*pi ,并划分为100个具体的时间点,t=0:2*pi/99:2*pi。
2.2 实验步骤
1: 首先我要得到原始信号的长度 ,可以通过对s=rindint(n)函数产生
的随机矩阵信号用length(s)求取其长度。 2: 我们要得到单个的输入原始信号并对其进行调制 ,并同时将其用矩阵进行收集储存 ,最后输出调制后的信号。可以分别求取不同宽度上的信号 ,并将其赋值到对应输出原始信号的时间周期内 ,收集 ,最后输出。 3: 调制得到的信号是在每个单个波长时间 ,不同的时间点t应用不同的调制函数的到的。在进行信号调制时 ,需要对这些调制得到的信号信息进行储存。可以在循环内采用矩阵叠加的方法来储存这些信号。
4: 需要的输入只是唯一的信号长度n,输出为得到的三种调制信号 5: 编写实现输出全部调制信号的主函数Modulator和三个输出对应的调制信号的子函数ASK,FSK ,PSK.由子函数控制相应的信号输出. 6:编写程序,调试,写实验报告
3: 实验结果
通过输入不同Modulator(n) ,我们得到了调制的信号和相应的图形输出。
精品文档
4: 附录 实验程序及输出图
4.1: 主程序
function Modulator(n) %定义函数 global ask global fsk global psk global w
global signal %定义全局变量 ask=[]; fsk=[]; psk=[];
%定义ASK,FSK,PSK调制信号 a=[]; f=[]; p=[];
%定义ASK,FSK,PSK决定信号 signal=[];
%定义输出原始信号和ASK选择信号 dfp=[];
%定义FSK,PSK选择信号 s=randint(n); %得到原始信号 w=length(s); %信号长度
t=0:2*pi/99:2*pi;
%划分单个信号的时间周期 for n=1:w if s(n)==0;
signal1=zeros(1,100); dfp1=ones(1,100); f1=cos(t+pi/3); p1=cos(t);
%产生并收集信号为0的时输出原始信号和调制信号的相应信息 else
s(n)==1;
signal1=ones(1,100); dfp1=ones(1,100); f1=cos(2*t+pi/6); p1=cos(t+pi);
精品文档
%产生并收集信号为1时的输出原始信号和调制信号的相应信息 end
signal=[signal signal1];
%得到输出原始信号信息和ASK调制的信号决定信息 a1=cos(t+pi/3); a=[a a1];
%得到ASK调制的信号决定信息 f=[f f1];
%得到FSK调制的信号决定信息 p=[p p1];
%得到PSK调制的信号决定信息 dfp=[dfp dfp1];
%得到FSK,PSK调制的选择信息 end
%循环结束
ask=signal.*a; fsk=dfp.*f; psk=dfp.*p;
%得到ASK ,FSK ,PSK调制信号 ASK FSK PSK
%调用子函数
精品文档
4.2:子函数
4.2.1:ASK调制程序
function ASK() global ask global w
global signal figure(1)
subplot(2,1,1)
plot(signal,'LineWidth',1.5) axis([0 100*w -1.5 1.5]) ylabel('调制前信号') title('ASK信号调制图') grid on
%画出输出原始信号图 subplot(2,1,2)
plot(ask,'LIneWidth',1.5) axis([0 100*w -1.5 1.5]) xlabel('时间')
ylabel('2ASK调制后信号') grid on
%画出输出ASK调制信号图
精品文档
4.2.2: FSK调制程序
function FSK() global fsk global w
global signal figure(2)
subplot(2,1,1)
plot(signal,'LIneWidth',1.5) axis([0 100*w -1.5 1.5]) ylabel('调制前信号') title('FSK信号调制图') grid on
%画出输出原始信号图 subplot(2,1,2)
plot(fsk,'LIneWidth',1.5) axis([0 100*w -1.5 1.5]) xlabel('时间')
ylabel('2FSK调制后信号') grid on
%画出输出SFK调制信号图
数字调制仿真.doc



