二进制数字调制与解调系统的设计
二进制数字调制和解调系统设计 MATLAB及SIMULINK建模环境介绍 MATLAB 是美国MathWorks企业出品商业数学软件,用于算法开发、数据可视化、数据分析和数值计算高级技术计算语言和交互式环境,关键包含MATLAB和SIMULINK两大部分。 Simulink是MATLAB最关键组件之一,它提供一个动态系统建模、仿真和综合分析集成环境。在该环境中,无需大量书写程序,而只需要经过简单直观鼠标操作,就可结构出复杂系统。Simulink含有适应面广、结构和步骤清楚及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理复杂仿真和设计。同时有大量第三方软件和硬件可应用于或被要求应用于Simulink。 Simulink是MATLAB中一个可视化仿真工具, 是一个基于MATLAB框图设计环境,是实现动态系统建模、仿真和分析一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理建模和仿真中。Simulink能够用连续采样时间、离散采样时间或两种混合采样时间进行建模,它也支持多速率系统,也就是系统中不一样部分含有不一样采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一个愈加快捷、直接明了方法,而且用户能够立即看到系统仿真结果。 数字通信系统基础模型 从消息传输角度看,该系统包含了两个关键交换,即消息和数字基带信号之间交换,数字基带信号和信道信号之间交换.通常前一个交换由发收端设备完成.以后一个交换则由调制和解调完成. 数字通信系统模型 一、2ASK调制解调 基础原理 2ASK是利用载波幅度改变来传输数字信息,而其频率和初始相位保持不变。 其信号表示式为: ,S (t)为单极性数字基带信号。 2ASK幅移键控 幅移键控(ASK)相当于模拟信号中调幅,只不过和载频信号相乘是二进数码而已。幅移就是把频率、相位作为常量,而把振幅作为变量,信息比特是经过载波幅度来传输。因为调制信号只有0或1两个电平,相乘结果相当于将载频或关断,或接通,它实际意义是当调制数字信号“1时,传输载波;当调制数字信号为“0“时,不传输载波。 由图能够看出2ASK信号时间波形e2ASK(t)随二进制基带信号s(t)通断改变。所以又被称为通断键控信号 2ASK信号产生方法通常有两种:模拟调制法和键控法。 模拟调制法使用乘法器实现 键控法使用开关电路实现 2ASK调制方法 2ASK有两种基础解调方法:相干解调法(同时检测法)和非相干解调法(包络检波法)。相干解调需要将载频位置已调信号频谱重新搬回原始基带位置,所以用相乘器和载波相乘来实现。为确保无失真还原信号,必需在接收端提供一个和调制载波严格同时当地载波,这是整个解调过程能否顺利完好进行关键。 相干解调 非相干解调 2ASK信号非相干解调过程时间波形 振幅键控是利用载波幅度改变来传输数字信息,而频率和初始相位保持不变。 在2ASK中: S2ask=m(t)*cos(2*pi*f*t), 其中m(t)为数字信号,后者为载波。 载波在二进制基带信号控制下通断改变,所以又叫通-断键控(OOK)。 2ASK产生方法有两种:模拟调制和键控法 而解调也有两中基础方法:非相干解调(包络检波)和相干解调(同时检测法) DS2ask=s(t)*cos(2*pi*f*t) =0.5*m(t)+0.5*m(t)*cos(2*wc*t) 乘以相干载波后,只要滤去高频部分就能够了 此次仿真使用相干解调方法: 2ask信号 à带通滤波器和à和载波相乘à低通滤波器 à抽样判决 à输出 以下就是matlab仿真结果极其频谱图(省去了带通filter) 能够看到解调后信号和信源有一定延时。 经过观察频谱图,用放大镜能够清楚看到,2ask实现了频谱搬移,将基带信号 搬移到了fc=150hz频率上,而且若只计频谱主瓣则有: B2ask=2fs,fs=1/Ts 其中Ts为一个码元宽度 即:2ask信号传输带宽是码元传输速率2倍 Matlab程序实现 clc; clear all; close all; %信源 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]); title( 信源 ); %载波 f=150; carry=cos(2*pi*f*t); %2ASK调制 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( 经过低通滤波器后信号 ); %判决器 k=0.25; pdst=1*(dst>0.25); subplot(515) plot(t,pdst) axis([0 1.2 -0.2 1.2]); title( 经过抽样判决后信号 ) %频谱观察 %调制信号频谱 T=t(end); df=1/T; N=length(st); f=(-N/2:N/2-1)*df; sf=fftshift(abs(fft(st))); figure(2) subplot(411) plot(f,sf) title( 调制信号频谱 ) %信源频谱 mf=fftshift(abs(fft(m))); subplot(412) plot(f,mf) title( 信源频谱 ) % 乘以相干载波后频谱 mmf=fftshift(abs(fft(nst))); subplot(413) plot(f,mmf) title( 乘以相干载波后频谱 ) %经过低通滤波后频谱 dmf=fftshift(abs(fft(ds