(完整word版)2ASK、2FSK、2PSK数字调制系统的Matlab实现及性能分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2ASK、2FSK、2PSK数字调制系统的Matlab实现及性能分析比较
引言:数字信号有两种传输方式,分别是基带传输方式和调制传输方式,即带通,在实际应用中,因基带信号含有大量低频分量不利于传送,所以必须经过载波和调制形成带通信号,通过数字基带信号对载波某些参量进行控制,使之随机带信号的变化而变化,这这一过程即为数字调制。
数字调制为信号长距离高效传输提供保障,现已广泛应用于生活和生产中.另外根据控制载波参量方式的不同,数字调制主要有调幅(ASK ),调频(FSK ),调相(PSK) 三种基本形式。
本次课题针对于二进制的2ASK 、2FSK 、2PSK 进行讨论,应用Matlab 矩阵实验室进行仿真,分析和修改,通过仿真系统生成一个人机交互界面,以利于仿真系统的操作。
通过对系统的仿真,更加
直观的了解数字调制系统的性能及影响其性能的各种因素,以便于比较,评论和改进。
关键词: 数字,载波,调制,2ASK,2FSK ,2PSK ,Matlab ,仿真,性能,比较,分析
正文:
一 。
数字调制与解调原理
1.1 2ASK
(1)2ASK
2ASK 就是把频率、相位作为常量,而把振幅作为变量,信息比特是通过载波的幅度来传递的。
由于调制信号只有0或1两个电平,相乘的结果相当于将载频或者关断,或者接通,它的实际
意义是当调制的数字信号"1时,传输载波;当调制的数字信号为"0"时,不传输载波。
表达式为:
⎩⎨⎧===0
01
,cos )(2k k c ASK a a t A t s 当,
当ω
1。
2 2FSK
2FSK 可以看做是2个不同频率的2ASK 的叠加,其调制与解调方法与2ASK 差不多,主要频率F1和F2,不同的组合产生所要求的2FSK 调制信号. 公式如下:
1。
3 2PSK
2PSK 以载波的相位变化为基准,载波的相位随数字基带序列信号的1或者0而改变,通常用已经调制完的载波的0或者π表示数据1或者0,每种相位与之一一对应。
⎩⎨⎧===0
cos 1,cos )(212k k FSK a t A a t A t s 当,当ωω
二.数字调制技术的仿真实现
本课程设计需要借助MATLAB的M文件编程功能,对2ASK。
2PSK。
2FSK进行调制与解调的设计,并绘制出调制与解调后的波形,误码率的情况分析,软件仿真可在已有平台上实现. 1.2ASK代码主函数
close all
clear all
n=16;
fc=1000000;bitRate=1000000;
N=50;
%noise=ti;
noise=10;
signal=source(n,N);%生成二进制代码
transmittedSignal=askModu(signal,bitRate,fc,N);%调制后信号
signal1=gussian(transmittedSignal,noise);%加噪声
configueSignal=demoASK(signal1,bitRate,fc,n,N);
source代码
function sendSignal=source(n,N)
sendSignal=randint(1,n)
bit=[];
for i=1:length(sendSignal)
if sendSignal(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bit=[bit,bit1];
end
figure(1)
plot(1:length(bit),bit),title(’transmitting of binary’),grid on;
axis([0,N*length(sendSignal),—2,2]);
end
askModu代码
function transmittedSignal=askModu(signal,bitRate,fc,N)%signal为输入信号,bitrate为bit速率,fc调制信号频率,N
%signal=[0 0 1 0 1 1 0 1];
%bitRate=1000000;
%fc=1000000;
% N=32;
t=linspace(0,1/bitRate,N);
c=sin(2*pi*t*fc);
transmittedSignal=[];
for i=1:length(signal)
transmittedSignal=[transmittedSignal,signal(i)*c];
end
figure(2) %画调制图
plot(1:length(transmittedSignal),transmittedSignal);title('Modulation of ASK');grid on; figure(3)%画频谱实部
m=0:length(transmittedSignal)—1;
F=fft(transmittedSignal);
plot(m,abs(real(F))),title('ASK_frequency-domain analysis real');
grid on;
%figure(4) 画频谱虚部
%plot(m,imag(F));title('ASK_frequency-domain analysis imag’);
%grid on;
end
CheckRatePe代码
function PeWrong=CheckRatePe(signal1,signal2,s)
rights=0;
wrongs=0;
for ki=1:s—2
if(signal1(ki)==signal2(ki))
rights=rights+1;
else
wrongs=wrongs+1;
end
end
PeWrong=wrongs/(wrongs+rights);
end
demoASK代码
function bitstream=demoASK(receivedSignal,bitRate,fc,n,N) load num
signal1=receivedSignal;
signal2=abs(signal1);%ÕûÁ÷
signal3=filter(num1,1,signal2);%LPF,°üÂç¼ì²¨IN=fix(length(num1)/2);%ÑÓ³Ùʱ¼ä
bitstream=[];
LL=fc/bitRate*N;
i=IN+LL/2;
while (i<=length(signal3))%Åоö
bitstream=[bitstream,signal3(i)〉=0。
5];
i=i+LL;
end
figure(6)
subplot(3,1,1);%接收波形
plot(1:length(signal1),signal1);title('Wave of receiving terminal(including noise)');grid on;
subplot(3,1,2);%接收整流后波形
plot(1:length(signal2),signal2);title('Wave of commutate');grid on;
subplot(3,1,3);%包络检波波形
plot(1:length(signal3),signal3);title('Wave of LPF');grid on;
bit=[];
for i=1:length(bitstream)
if bitstream(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bit=[bit,bit1];
end
figure(7)%解调后的二进制波形
plot(bit),title(’binary of receiving terminal’),grid on;
axis([0,N*length(bitstream),-2.5,2。
5]);
end
gussian代码%加高斯白噪声
function signal=gussian(transmittedSignal,noise)
signal=sqrt(2)*transmittedSignal;
signal=awgn(signal,noise);
figure(5)
plot(1:length(signal),signal);
title('Wave including noise’),grid on;
end
fsk主函数代码
close all
clear all
n=16;%二进制代码长度
f1=18000000;%频率1
f2=6000000;%频率2
bitRate=1000000;%bit速率
N=50;%码元宽度
%noise=ti;
noise=10;%家性噪声大小
signal=source(n,N);%产生二进制代码
transmittedSignal=fskModu(signal,bitRate,f1,f2,N);%调制signal1=gussian(transmittedSignal,noise);%加噪声configueSignal=demoFSK(signal1,bitRate,f1,f2,N);%解调
source代码%二进制信号产生函数function sendSignal=source(n,N)
sendSignal=randint(1,n)
bit=[];
for i=1:length(sendSignal)
if sendSignal(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bit=[bit,bit1];
end
figure(1)
plot(bit),title('transmitting of binary’),grid on;
axis([0,N*length(sendSignal),-2。
5,2。
5]);
end
fskModu代码%频率调制函数
function transmittedSignal=fskModu(signal,bitRate,f1,f2,N)t=linspace(0,1/bitRate,N);
c1=sin(2*pi*t*f1);%调制信号1
c2=sin(2*pi*t*f2);%调制信号2
transmittedSignal=[];
for i=1:length(signal)%调制
if signal(i)==1
transmittedSignal=[transmittedSignal,c1];
else
transmittedSignal=[transmittedSignal,c2];
end
end
figure(2) %画调制后波形图
plot(1:length(transmittedSignal),transmittedSignal);title(’Modulation of FSK’);grid on;figure(3)%画调制后频谱图
m=0:length(transmittedSignal)-1;
F=fft(transmittedSignal);
plot(m,abs(real(F))),title(’ASK_frequency-domain analysis real’);
grid on;
end
demoFSK代码
function bitstream=demoFSK(receivedSignal,bitRate,f1,f2,N)
load num
signal1=receivedSignal;
signal2=filter(gaotong,1,signal1); %通过HPF,得到高通分量
signal3=abs(signal2);%整流
signal3=filter(lowpass,1,signal3);%通过低通,形成包络
bitstream=[];
IN1=fix(length(lowpass)/2)+fix(length(gaotong)/2); %延迟时间
bitstream1=[];
LL=N;%每个bit的抽样点数
i=IN1 +LL/2;
while (i<=length(signal3))%判决
bitstream1=[bitstream1,signal3(i)〉=0.5];
i=i+LL;
end
bitstream1
figure(5)
subplot(3,1,1);
plot(1:length(signal1),signal1);title('Wave of receiving terminal(including noise)’);grid on; subplot(3,1,2);
plot(1:length(signal2),signal2);title('After Passing HPF’);grid on;
subplot(3,1,3);
plot(1:length(signal3),signal3);title('After Passing LPF');grid on;
signal4=filter(daitong,1,signal1); %通过BPF得到低频分量
signal5=abs(signal4);%整流
signal5=filter(lowpass,1,signal5);%通过LPF,形成包络
IN2=fix(length(lowpass)/2)+fix(length(daitong)/2);%延迟时间
bitstream2=[];
LL=N;%每个bit的的抽样点数
i=IN2 +LL/2;
while (i〈=length(signal5))%判决
bitstream2=[bitstream2,signal5(i)>=0.5];
i=i+LL;
end
bitstream2
figure(6)
subplot(3,1,1);
plot(1:length(signal1),signal1);title('Wave of receiving terminal(including noise)’);grid on;subplot(3,1,2);
plot(1:length(signal4),signal4);title('After Passing BPF’);grid on;
subplot(3,1,3);
plot(1:length(signal5),signal5);title(’After Passing LPF’);grid on;
for i=1:min(length(bitstream1),length(bitstream2)) %判决
if(bitstream1(i)>bitstream2(i))
bitstream(i)=1;
else
bitstream(i)=0;
end
end
bitstream
bit=[];%接收端波形
for i=1:length(bitstream)
if bitstream(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bit=[bit,bit1];
end
figure(7)
plot(bit),title('binary of receiving terminal’),grid on;
axis([0,N*length(bitstream),-2。
5,2。
5]); end
CheckRatePe代码
function PeWrong=CheckRatePe(signal1,signal2,s) rights=0;
wrongs=0;
for ki=1:s-2
if(signal1(ki)==signal2(ki))
rights=rights+1;
else
wrongs=wrongs+1;
end
end
PeWrong=wrongs/(wrongs+rights);
end
gussian代码
function signal=gussian(transmittedSignal,noise) signal=sqrt(2)*transmittedSignal;
signal=awgn(signal,noise);
figure(4)
plot(1:length(signal),signal),title(’Adding Noise’);
grid on;
end
2psk主函数代码
close all
clear all
n=16;%二进制码长
fc=1000000;%载波频率
bitRate=1000000;信息频率
N=50;%码宽
noise=10;%信道加性噪声大小
signal=source(n,N);生成二进制代码
transmittedSignal=bpskModu(signal,bitRate,fc,N);对信号进行调制并进行频谱分析signal1=gussian(transmittedSignal,noise)%加信道噪声
configueSignal=demoBPSK(signal1,bitRate,fc,n,N);%信号解调
source代码
function sendSignal=source(n,N)
sendSignal=randint(1,n)
bit=[];
for i=1:length(sendSignal)
if sendSignal(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bit=[bit,bit1];
end
figure(1)
plot(bit),title(’transmitting of binary’),grid on;
axis([0,N*length(sendSignal),-2。
5,2。
5]);
end
bpskModu代码
function transmittedSignal=bpskModu(signal,bitRate,fc,N)t=linspace(0,1/bitRate,N);
c1=sin(2*pi*t*fc);
c2=sin(2*pi*t*fc + pi);
transmittedSignal=[];
for i=1:length(signal)
if signal(i)==1
transmittedSignal=[transmittedSignal,c1];
else
transmittedSignal=[transmittedSignal,c2];
end
end
figure(2)% 画调制图
plot(1:length(transmittedSignal),transmittedSignal);title('Modulation of BPSK’);grid on;figure(3)%画频谱图
m=0:length(transmittedSignal)-1;
F=fft(transmittedSignal);
plot(m,abs(real(F))),title(’BPSK_frequency—domain analysis real');
grid on;
end
CheckRatePe代码
function PeWrong=CheckRatePe(signal1,signal2,s)
rights=0;
wrongs=0;
for ki=1:s—2
if(signal1(ki)==signal2(ki))
rights=rights+1;
else
wrongs=wrongs+1;
end
end
PeWrong=wrongs/(wrongs+rights);
end
demoBPSK代码
function bitstream=demoBPSK(receivedSignal,bitRate,fc,n,N)
load num %读取num存储的低通滤波用的数据
signal1=receivedSignal;
t=linspace(0,1/bitRate,N);
c=sin(2*pi*t*fc);
signal=[];
for i=1:n
signal=[signal,c];
end
signal2=signal1。
*signal;%乘同频同相sin
signal3=filter(num1,1,signal2); %LPF,包络检波3
IN=fix(length(num1)/2);%Ñ延迟时间
bitstream=[];
LL=fc/bitRate*N;
i=IN+LL/2;
while (i<=length(signal3)) %判决
bitstream=[bitstream,signal3(i)>=0];
i=i+LL;
end
figure(5)
subplot(3,1,1);%画接收的包含噪声的波形
plot(1:length(signal1),signal1);title('Wave of receiving terminal(including noise)');grid on;
subplot(3,1,2);%相干解调波形
plot(1:length(signal2),signal2);title('After Multipling sin Fuction');grid on;
subplot(3,1,3);%包络检波波形
plot(1:length(signal3),signal3);title(’Wave of LPF’);grid on;
bit=[];
for i=1:length(bitstream)
if bitstream(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bit=[bit,bit1];
end
figure(6)二进制接收信号波形
plot(bit);title('binary of receiving terminal’);grid on;
axis([0,N*length(bitstream),—2.5,2.5]);
end
gussian代码
function signal=gussian(transmittedSignal,noise)
signal=sqrt(2)*transmittedSignal;
signal=awgn(signal,noise);
figure(4)
plot(1:length(signal),signal),grid on;
title(’Adding noise’)
end
三种调制方式的性能比较:
load PeRate;
load PeRatep;
%补偿误差
fpeask(15)=1e-3;
fpefsk(9)=1e-3;
fpepsk(24)=0.002;
fpepsk(26)=1e-3;
figure(1)
semilogy(-6:length(fpeask)—7,fpeask,-6:length(fpefsk)-7,fpefsk,—30:length(fpepsk)—31,fpepsk),grid on;
title('Analysis Of Bit Error Rate');
legend('ASK','FSK’,’PSK’);
xlabel('r/dB’);
ylabel('Pe’);
figure(2)
semilogy(-6:length(fpefsk)—7,fpeask);grid on;
title(’Bit Error Rate Of ASK');
xlabel('r/dB’);
ylabel('PeASK');
figure(3)
semilogy(—6:length(fpefsk)—7,fpefsk);grid on; title(’Bit Error Rate Of FSK’);
xlabel('r/dB');
ylabel(’PeFSK’);
figure(4)
semilogy(—16:length(fpepsk)—17,fpepsk);grid on; title(’Bit Error Rate Of PSK');
axis([-16,10,1e—3,1]);
xlabel('r/dB’);
ylabel('PePSK');
三.程序与调制解调波形
3。
1 2ASK波形
1随机信号产生
2ASK信号调制3信号噪声附加
4接受信号解调
5解调出的基带信号
3.2.FSK
1随机信号产生2FSK信号调制
3信号噪声附加4接受信号解调5解调出的基带信号
3.3PSK
1.随机信号产生2.FSK信号调制
3信号噪声附加4接受信号解调
5解调出的基带信号
3。
4误码率分析1.2ASK误码率分析
2。
2FSK误码率分析3.2PSK误码率分析
4性能比较
五。
参考文献
(1)通信原理(第6版) 樊昌信。
国防工业出版社
(2)数字通信原理黎洪松西安电子系科技大学出版社(3)MATLAB程序设计教程刘卫国中国水利水电出版社
(完整word版)2ASK、2FSK、2PSK数字调制系统的Matlab实现及性能分析(4)通信原理李晓峰清华大学出版社
(5)数字处理及matlab仿真张雪英电子工业出版社
(6)通信系统仿真冯玉涛国防工业出版社
(7)matlab通信工程仿真张德丰机械工业出版社
(8)通信原理—基于Matlab的计算机仿真郭文彬桑林北京邮电大学出版社
(9)MATLAB通信工程仿真张德丰机械工业出版社。