基于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 nn 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 ASK4.实验程序(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:20if x(i)==0yy(30*(i-1)+1:30*i)=0;elseyy(30*(i-1)+1:30*i)=y(30*(i-1)+1:30*i);endend%对20个随机码元进行判别,若码元为0则该码元周期内调制信号为零figure(3)subplot(2,1,1)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为6Ynt1=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])grid on%对加小噪声解调信号进行频谱分析FFT6=fft(z1,64); %对加入小噪声的解调信号进行傅里叶变换FFT6=abs(FFT6); %对傅里叶变换取绝对值figure(6)subplot(2,1,2)plot(FFT6);xlabel('频率f');ylabel('幅度FFT6');title('加小噪声解调信号频谱');axis([0 64 0 50])grid on(7)%加入高斯大噪声,SNR为-2Ynt2=awgn(y,3); %加入高斯大噪声,信噪比为-2figure(7)subplot(2,1,1)plot(Ynt2);xlabel('时间t');ylabel('幅度Ynt2');title('加大噪声信号');axis([1 600 -2 2])grid on%对加大噪声信号进行频谱分析FFT7=fft(Ynt2,256); %对加入大噪声的调制信号进行傅里叶变换FFT7=abs(FFT7); %对傅里叶变换取绝对值figure(7)subplot(2,1,2)plot(FFT7);xlabel('频率f');ylabel('幅度FFT5');title('加大噪声信号频谱')axis([0 256 0 50])grid on(8)%ASK加大噪声信号的解调及误码率z2=ddemod(Ynt2,Fc,Fd,Fs,'ask',2);%调用数字带通调制函数dmod对加大噪声信号进行解调[br,Pe2]=symerr(x,z2)%对解调后加大噪声信号误码分析,br为符号误差数,Pe1为符号误差率figure(8)subplot(2,1,1)stairs(z2);xlabel('时间t');ylabel('幅度z2');title('加大噪声解调信号');axis([1 21 -1 2])grid on%对加大噪声解调信号进行频谱分析FFT8=fft(z2,64); %对加入大噪声的解调信号进行傅里叶变换FFT8=abs(FFT8); %对傅里叶变换取绝对值figure(8)subplot(2,1,2)plot(FFT8);xlabel('频率f');ylabel('幅度FFT6');title('加大噪声解调信号频谱');axis([0 64 0 50])grid on(9)%误码分析SNR=-10:10for i=1:length(SNR);Ynt3=awgn(y,SNR(i)); %加入高斯小噪声,信噪比从-10dB到10dBZ=ddemod(Ynt3,Fc,Fd,Fs,'ask',2);%调用数字带通解调函数ddemod对加噪声信号进行解调[br, Pe(i)]=symerr(x,Z);%对解调后加大噪声信号误码分析,br为符号误差数,Pe(i)为符号误差率endfigure(9)semilogy(SNR,Pe); % 调用semilogy函数绘制信噪比与误码率的关系曲线xlabel('信噪比SNR(r/dB)');ylabel('误码率Pe');title('信噪比与误码率的关系');axis([-10 10 0 1])grid on5.实验结果(因每个人产生的二进制随机序列不同,致使后面所有的图形都会有所差异,所以一定要自己运行程序,或以组为单位运行)(1)二进制基带信号时域谱和频域谱(2)载波信号时域谱和频域谱(1)已调信号时域谱和频域谱(2)解调信号解调时域谱和频域谱(3)叠加小噪声调制信号时域谱和频域谱(6)叠加大噪声调制信号时域谱和频域谱(7)叠加小噪声解调信号时域谱和频域谱(8)叠加大噪声解调信号时域谱和频域谱(9)信噪比与误码率的关系6.实验小结。