2ASK调制与解调的MATALAB仿真实验 联系客服

发布时间 : 星期二 文章2ASK调制与解调的MATALAB仿真实验更新完毕开始阅读5f028e676edb6f1aff001fa0

图 1.2.1-1 模拟相乘法(上)数字键控法(下)

[1]

Fig 1.2.1-1 Analog multiplication ( on ) digital keying ( below)

2ASK信号与模拟调制中的AM信号类似。所以,对2ASK信号也能够采用非相干解调(包络检波法)和相干解调(同步检测法),其相应原理方框图如图1.2.1-2所示。

图 1.2.1-2 非相干解调方式(a)相干解调方式(b)

[1]

Fig 1.2.1-2 non-coherent demodulation ( a ) coherent demodulation method ( b )

2、 仿真目的

利用MATLAB进行调制与解调的仿真的程序,以下是建立的M文件:

编写M脚本文件对数字信号序列1101001101011001进行2ASK调制与解调进行仿真,数字信号的码元速率Rb=1000Band,载波频率为f=4kHZ.以下是仿真程序及注释。例子中采用OOK键控方式实现2ASK调制。第一行为数字序列波1101001101011001的单极性不归零码,码元宽度Tb=1/Rb=0.001s,第二行为载波波形,在一个码元宽度,有4个周期的正玄波载波信号f=1/4Tb=4kHz;第三行为调整之后的波形,码

- 5 -

元1对应的调制后波形对应正玄波,0对应的调制后波形为0,结果满足要求.。

%数字信号的ASK调制 3、 使用MATLAB编程

Clear; %清空空间变量 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>=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); %长度

- 6 -

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) %画出载波波形 grid on %添加网络

axis([Tmin Tmax -1.2*A 1.2*A]); %设置坐标范围 subplot(3,1,3) %子图分割 plot(tau,ask) %画出调制后的波形 grid on %添加网络

axis([Tmin Tmax -1.2*A 1.2*A]) %设置坐标范围

%Part 2 数字信号的ASK相干解调

- 7 -

sig_mul=ask.*carry2;%已调信号与载波信号相乘 figure(2) %图形2 subplot(4,1,1) %子图分割

plot(tau,sig_mul) %画出信号相乘后的波形 grid on

axis([Tmin Tmax -0.2 1.2]) %设置坐标范围

[Ord,omega_c]=buttord(4*pi*f*0.6,4*pi*f*0.8,2,30,’s’); %获得Butterworth模拟低通原型滤波器的阶数及3DB截止频率

[num,den]=butter(Ord,omega_c,’s’); %由原型滤波器向实际滤波器,获得滤波器的分子,分母系数

h=tf(num,den); %获得滤波器传递函数%滤波 x=lsim(h,sig_mul,tau); %运用模拟滤波器对信号进行滤波 subplot(4,1,2) %子图分割

plot(tau,x) %画出滤波后的图形 grid on

axis([Tmin Tmax -0.3 0.8]) %设置坐标范围 th=0.25; %抽样判决的阈值设置 t_judge=(0:Lm-1)*Lcarry1+Lcarry1/2; %抽样判决点的选取 y=(x(t_judge)); %抽样判决时刻的信号值 y_judge=1*(y>=th)+0*(y<=th); %抽样判决信号的0阶保持

- 8 -