基于MATLAB的ASK调制解调实验
基于MATLAB 的ASK 调制解调实验
1.实验⽬的
(1) 熟悉MATLAB 中M ⽂件的使⽤⽅法,并在掌握ASK 调制解调原理的基础上,编写出ASK 调制解调程序。
(2) 绘制出ASK 信号解调前后在时域和频域中的波形,并观察解调前后频谱有何变化以加深对ASK 信号解调原理的理解。
(3) 对信号叠加噪声,并进⾏解调,绘制出解调前后信号的时频波形,改变
噪声功率进⾏解调,分析噪声对信号传输造成的影响。 2.实验原理
(1)ASK 调制原理
ASK 指的是振幅键控⽅式。这种调制⽅式是根据信号的不同,调节正弦波的幅度。幅度键控可以通过乘法器和开关电路来实现。载波在数字信号1或0的控制下通或断,在信号为1的状态载波接通,此时传
输信道上有载波出现;在信号为0的状态下,载波被关断,此时传输信道上⽆载波传送。那么在接收端我们就可以根据载波的有⽆还原出数字信号的1和0。对于⼆进制幅度键控信号的频带宽度为⼆进制基带信号宽度的两倍。幅移键控法(ASK )的载波幅度是随着调制信号⽽变化的,其最简单的形式是,载波在⼆进制调制信号控制下通断,此时⼜可称作开关键控法(OOK )。⼆进制幅度键控记作2ASK 。2ASK 是利⽤代表数字信息“0”或“1”的基带矩形脉冲去键控⼀个连续的载波,使载波时断时续地输出。有载波输出时表⽰发送“1”,⽆载波输出时表⽰发送“0”。2ASK 信号可表⽰为
t
w t s t e c cos )()(0=式中,
c
w 为载波⾓频率,s(t)为单极性NRZ 矩形脉冲序列
)()(b n
用subplot函数n nT t g a t s -=∑其中,g(t)是持续时间b T 、⾼度为1的矩形脉冲,常称为
门函数;n a 为⼆进制数字-=P P a n 101,出现概率为
,出现概率为
2ASK/OOK 信号的产⽣⽅法通常有两种:模拟调制(相乘器法)和键控法。本模拟幅度调制的⽅法⽤乘法器实现。相应的调制如图5-1和图5-2:
图5-1模拟相乘法
图5-2键控/开关法
(2)ASK 解调原理
2ASK/OOK 信号有两种基本的解调⽅法:⾮相⼲解调(包络检波法)和相⼲解调(同步检测法)。本课程设计要求的是相⼲解调,如图5-3:
图5-3相⼲解调
3.实验内容
(1) 产⽣数字基带信号并绘制时域谱和频域谱; (2) 设置载波频率并绘制其时域谱和频域谱; (3) 对信号进⾏数字调制并绘制时域谱和频域谱; (4) 对已调信号进⾏解调并绘制时域谱和频域谱; (5) 对已调信号加⼊⾼斯⼩噪声并绘制时域谱和频域谱; (6)对加⼩噪声信号进⾏解调并绘制时域谱和频域谱; (7) 对已调信号加⼊⾼斯⼤噪声并绘制时域谱和频域谱; (8) 对加⼤噪声信号进⾏解调并绘制时域谱和频域谱; (9) ⽐较当信噪⽐不同时,误码率⼤⼩。
)
(2t e ASK
4.实验程序(1)
%产⽣⼆进制随机序列
x=ceil(rand(1,100000)-0.5) %产⽣⼆进制随机序列并取⼤于x 的最⼩整数figure(1) %窗⼝1,包含时域谱和频域谱
subplot(2,1,1) %分块图函数subplot,图形窗⼝分成2块⼦窗⼝的第1个图像
stairs(x); %第2个图像
xlabel('时间t'); %x轴标注
ylabel('序列值'); %y轴标注
title('⼆进制随机序列'); %添加图像标题
axis([1 21 -1 2]) %控制坐标轴的范围
grid on %图像中添加栅格
%对随机序列进⾏频谱分析
FFT1=fft(x,128); %对随机序列进⾏傅⾥叶变换
FFT1=abs(FFT1); %对傅⾥叶变换取绝对值
figure(1)
subplot(2,1,2) %第2个图像
plot(FFT1);
xlabel('频率f');
ylabel('幅度FFT1');
title('随机序列频谱');
axis([0 128 0 50])
grid on
(2)
t=1/360:1/360:20; %载波时间范围
Fc=36; %载波频率
carry=cos(2*pi*Fc*t); %正弦载波信号
figure(2) %窗⼝2,包含时域谱和频域谱
subplot(2,1,1)
plot(carry);
xlabel('时间t');
ylabel('幅度carry');
title('载波信号');
axis([1 600 -2 2])
grid on
%对载波信号进⾏频谱分析
FFT2=fft(carry,256); %对载波信号进⾏傅⾥叶变换
FFT2=abs(FFT2); %对傅⾥叶变换取绝对值
figure(2)
subplot(2,1,2)
plot(FFT2);
xlabel('频率f');
ylabel('幅度FFT2');
title('载波信号频谱');
axis([0 256 0 100])
grid on
(3)
%ASK的调制
Fd=12; %Fd为码速率,Fs为采样频率
Fs=360;
y=dmod(x,Fc,Fd,Fs,'ask',2);%调⽤数字带通调制函数dmod进⾏2ASK调制for i=1:20 if x(i)==0
yy(30*(i-1)+1:30*i)=0;
else
yy(30*(i-1)+1:30*i)=y(30*(i-1)+1:30*i);
end
end
%对20个随机码元进⾏判别,若码元为0则该码元周期内调制信号为零figure(3)
plot(yy);
xlabel('时间t');
ylabel('幅度y');
title('已调信号');
axis([1 600 -2 2])
grid on
%对已调信号进⾏频谱分析
FFT3=fft(y,256); %对已调信号进⾏傅⾥叶变换
FFT3=abs(FFT3); %对傅⾥叶变换取绝对值
figure(3)
subplot(2,1,2)
plot(FFT3);
xlabel('频率f');
ylabel('幅度FFT3');
title('已调信号频谱');
axis([0 256 0 50])
grid on
(4)
%ASK的解调
z=ddemod(y,Fc,Fd,Fs,'ask',2); %调⽤数字带通调制函数dmod进⾏2ASK解调figure(4) %对傅⾥叶变换取绝对值subplot(2,1,1)
stairs(z);
xlabel('时间t');
ylabel('幅度z');
title('解调信号');
axis([1 21 -1 2])
grid on
%对解调信号进⾏频谱分析
FFT4=fft(z,64); %对解调信号进⾏傅⾥叶变换FFT4=abs(FFT4); %对傅⾥叶变换取绝对值
figure(4)
subplot(2,1,2)
plot(FFT4);
xlabel('频率f');
ylabel('幅度FFT4');
title('解调信号频谱');
axis([0 64 0 50])
grid on
(5)
%加⼊⾼斯⼩噪声,SNR为6
Ynt1=awgn(y,6); %加⼊⾼斯⼩噪声,信噪⽐为6 figure(5)
subplot(2,1,1)
plot(Ynt1);
xlabel('时间t');
ylabel('幅度Ynt1');
title('加⼩噪声信号');
axis([1 600 -2 2])
grid on
%对加⼩噪声信号进⾏频谱分析
FFT5=fft(Ynt1,256); %对加⼊⼩噪声的调制信号进⾏傅⾥叶变换FFT5=abs(FFT5); %对傅⾥叶变换取绝对值figure(5)
subplot(2,1,2)
plot(FFT5);
xlabel('频率f');
ylabel('幅度FFT5');
title('加⼩噪声信号频谱')
axis([0 256 0 50])
grid on
(6)
%ASK加⼩噪声信号的解调及误码率
z1=ddemod(Ynt1,Fc,Fd,Fs,'ask',2);
%调⽤数字带通调制函数dmod对加⼩噪声信号进⾏解调
[br,Pe1]=symerr(x,z1)
%对解调后加⼩噪声信号误码分析,br为符号误差数,Pe1为符号误差率figure(6)
subplot(2,1,1)
stairs(z1);
xlabel('时间t');
ylabel('幅度z1');
title('加⼩噪声解调信号');
axis([1 21 -1 2])
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论