文档详情

matlab程序设计语言.doc

发布:2017-01-01约4.04千字共9页下载文档
文本预览下载声明
《MATLAB程序设计语言》报告 课题:2ASK调制电路仿真测试 班级: 姓名: 学号: 任课教师: 设计目的 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具实现2ASK 调制解调的系统仿真,从而加深对所学知识的理解。 实验软件 Matlab R2014a版本 2ASK 调制原理 2ASK 技术是通过改变载波信号的幅值来表示二进制0 或1 的。载波根据0、1 信息只改变其振幅,而频率和相位保持不变。哪个电压代表0 以及哪个电压代表1 则由系统设计者按照通信约定来确定。当然,可以用载波信号的任意两值表示数字0、1,通常为了实现方便,用其最大值Acos(ωct+准)和0 分别表示1 和0。 有一种常用的幅值键控技术是开关键控(OOK, On Off Keying)。在OOK 中,某一比特值用有没有电压值来表示。其优点是传输 信息所需的能量下降了,且调制方法简单。 常用的解调方法有两种:包络解调法和相干解调法。相干解调也叫同步解调,就是利用相干波和接收到的2ASK 信号相乘分离出包含原始数据信号的低频信号,再进行抽样判决恢复数字序列。相干波必须是与发送端同频同相的正弦信号。 实验内容 所做的2ASK调制电路仿真如下: 图表 1 图表 2 图表 3 代码编写如下: 图1代码: function [ output_args ] = Untitled( input_args ) a=randint(1,15,2); t=0:0.001:0.999; m=a(ceil(15*t+0.01)); subplot(511); plot(t,m); axis([0 1.2 -0.2 1.2]); %2ASK载波信号 f=150; carry=cos(2*pi*f*t); %调制 st=m.*carry; subplot(512); plot(t,st); axis([0 1.2 -1.2 1.2]); title(2ASK信号); nst=awgn(st,70); %添加的噪声 nst=nst.*carry; %信号的解调 subplot(513); plot(t,nst); axis([0 1.2 -0.2 1.2]); title(乘以相干波后的); wp=2*pi*2*f*0.5; %低通滤波器的设计 ws=2*pi*2*f*0.9; Rp=2; As=45; [N,wc]=buttord(wp,ws,Rp,As,s); [B,A]=butter(N,wc,s); h=tf(B,A); %转换为传输函数 dst=lsim(h,nst,t); subplot(514); plot(t,dst); axis([0 1.2 -0.2 1.2]); title(乘以相干波后的); title(乘以相干波后的); %UNTITLED 此处显示有关函数的摘要 % 此处显示详细说明 end 图2和图3代码: function [ output_args ] = Untitled( input_args ) m=[1 1 1 0 0 0 1 0 1 1 0 1]; %数字信号序列 Lm=length(m); %序列的长度 F=200; %数字信号的带宽 f=800; %正弦载波信号的频率 A=1; %载波的幅度 Q=f/F; %频率比,即一个码元宽度中的正弦周期个数,为适配下面滤波器参数选取,推荐将Q 设为 Q=1/3 M=500; %一个正弦周期内的采样点数 t=(0:M-1)/M/f; %一个正弦信号周期内的时间 carry1=repmat(A*sin(2*pi*f*t),1,Q); %一个码元宽度内的正弦载波信号 Lcarry1=length(carry1); %一个码元宽度内的信号长度 carry2=kron(ones(size(m)),carry1); %载波信号 ask=kron(m,carry1); %调制后的信号 N=length(ask); %长度 tau=(0:N-1)/(M-1)/f; %时间 Tmin=min(tau); %最小时刻 Tmax=max(tau); %最大时刻 T=ones(size(carry1)); %一个数字信号‘1’ dsig=kron(m,T); %数字信号波形 subplot(3,1,1) %子图分割 plot(tau,dsig) %画出数字信号的波形图 grid on %添加网 axis([Tmin Tmax -0.2 1.2]) %设置坐标范围 subplot(3,1,2) %子图分割 plot(tau,carry2)
显示全部
相似文档