通信原理matlab课程设计报告.docx
- 文档编号:1435400
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:22
- 大小:129.68KB
通信原理matlab课程设计报告.docx
《通信原理matlab课程设计报告.docx》由会员分享,可在线阅读,更多相关《通信原理matlab课程设计报告.docx(22页珍藏版)》请在冰豆网上搜索。
通信原理matlab课程设计报告
一.问题描述-----------------------------------------3
二.实验原理-----------------------------------------4
三.源程序-------------------------------------------6
四.数据测试----------------------------------------16
五.调试分析----------------------------------------22
六.用户使用手册------------------------------------23
七.心得体会----------------------------------------24
一、问题描述
1.使用matlab编程完成HDB3的编码与解码。
2.课程设计需要运用MATLAB编程实现2ASK,2FSK,2PSK,2DPSK调制解调过程,并且输出其源码,调制后码元以及解调后码元的波形。
二、实验原理
1.HDB3编码解码原理
HDB3码:
三阶高密度双极性码。
HDB3码与二进制序列的关系:
(1)二进制信号序列中的“0”码在HDB3码中仍编为“0”码,二进制信号中“1”码,在HDB3码中应交替地成+1和-1码,但序列中出现四个连“0”码时应按特殊规律编码(引入传号交替反转码的“破坏点”V码);
(2)二进制序列中四个连“0”按以下规则编码:
信码中出现四个连“0”码时,要将这四个连“0”码用000V或B00V取代节来代替(B和V也是“1”码,可正、可负)。
这两个取代节选取原则是,使任意两个相邻v脉冲间的传号数为奇数时选用000V取代节,偶数时则选用B00V取代节。
2.二进制数字调制技术原理
数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。
为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。
这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。
通常使用键控法来实现数字调制,比如对载波的振幅、频率和相位进行键控。
(1)2ASK信号的产生方法通常有两种:
模拟调制和键控法。
解调有相干解调和非相干解调。
P=1时f(t)=Acoswt;p=0时f(t)=0;其功率谱密度是基带信号功率谱的线性搬移
(2)一个2FSK信号可以看成是两个不同载波的2ASK信号的叠加。
其解调和解调方法和ASK差不多。
2FSK信号的频谱可以看成是f1和f2的两个2ASK频谱的组合。
(3)2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0,当基带信号为1时相对于初始相位为180°。
(4)2DPSK调制原理方框图如下图。
S(t)
兰州交通大学
间接法信号调制器原理方框图
2DPSK信号的解调,主要有两种方法,即相位比较法和相干解调法。
相干解调法原理方框图如下图:
相干解调法原理方框图
三、源程序
clear
clc
a=20;%a表示元素个数,可以修改码元为任意个数如1024
r=unidrnd(2,1,a-1);%随机产生离散均匀二值分布(1,2),共a-1个
rn=r-1;%每个元素减1变为(0,1)二值随机数列
rn=[1,rn];%跟书上一致,从1开始随机产生离散均匀二值分布(1,2),共a个
ori=rn;%将原序列保存起来,便于后面解码后比较
ori
l=1;
fork=1:
a-3
ifabs(rn(k))==1
m=rn(k);%m记录可能存在的连续4个0前面非零码元的符号
end
ifrn(k)==0
ifrn(k+1)==0
ifrn(k+2)==0
ifrn(k+3)==0%检测是否连续4个码元都是0
rn(k+3)=2*m;%用2表示书上的V
end
end
end
end
end
rn;%插入V
(2)后checked
l=1;%l=1表示两个V之间有偶数个非零码,0是偶数,所以初始为1,l=-1表示两个V之间有奇数个非零码
fors=1:
a
ifabs(rn(s))==2
ford=s+1:
a
ifabs(rn(d))==1%V之间的非零码只有+1,-1遇到一个一使l变一次号,表示偶数或奇数
l=-l;
end
ifabs(rn(d))==2
ifl~=1
l=1;%不需要插入B时若检测到V也应把计数器清零
%最初版本的升级处1
else%检测到下一个V时,若为偶数个,则插入B
rn(d-3)=3*(-(rn(d-4))/(abs(rn(d-4))));%3代表B,插入不带符号的B
rn(d:
a)=-rn(d:
a);
end%V后的符号再交替
end
end
end
end
rn%到此处完成了插入不带符号的B
%fors=1:
a
%ifabs(rn(s))==3%找到B
%rn(s)=rn(s)*(-(rn(s-1))/(abs(rn(s-1))));%B(3)与前一个位置的带符号的归一值相乘再取反,实现符号B(3)的极性与前一非符号的相反
%B后面第三个就是接下来的V,从它开始非零码正负号交替变化
%end
%end
HDB=rn;%给B(3)添加了符号,并且实现了V后的符号再交替
HDB
%以上便实现了HDB3的编码
%下面进行解码
fork=1:
a
ifabs(rn(k))==2
rn(k-3)=0;rn(k)=0;%每个V
(2)都变成0,V前面第三个有可能是B(3)有可能是0也恢复为0
end
ifabs(rn(k))==1
rn(k)=1;
end
end
rn%解码后的恢复序列
rn-ori%解码与原码比较全为0则解码正确
s=menu('通信原理','2ASK','2PSK','2FSK','2DPSK')
switchs
case1,scolor='2ASK';
n=8;N=100;K=4;
a=randint(1,n);
bita=[];sl=[];
bitRate=1e3;fc=1e3;%载频1KHZ
t=linspace(0,1/bitRate,N);
fori=1:
length(a)
ifa(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bita=[bita,bit1];
c=sin(2*pi*t*fc);
sl=[slc];
end
figure
(1);
subplot(K,1,1);plot(bita,'LineWidth',1.5),title('基带信号'),gridon;axis([0,N*length(a),-2.5,2.5]);
tz=bita*6.*sl;
subplot(K,1,2);plot(tz,'LineWidth',1.5);title('ASK调制后信号');gridon;
signal=awgn(tz,80,'measured');
subplot(K,1,3);plot(signal,'LineWidth',1.5),gridon;title('信号+噪声')
Fs=3e3;
[b,a]=ellip(4,0.1,40,[999.9,1000.1]*2/Fs);%设计IIR带通滤波器,阶数为4,通带纹波0.1,阻带衰减40DB
sf=filter(b,a,signal);%信号通过该滤波器
figure
(2);
K1=4;
subplot(K1,1,1);plot(sf,'LineWidth',1.5),gridon;title('BPF')
signal2=abs(sf);%乘同频同相sin
subplot(K1,1,2);plot(signal2,'LineWidth',1.5),gridon;title('全波整流器');
Fs=3e3;%抽样频率400HZ
[b,a]=ellip(4,0.1,40,[50]*2/Fs);%设计IIR低通滤波器
sf1=filter(b,a,signal2);%信号通过该滤波器,输出信号sf
subplot(K1,1,3);plot(sf1,'LineWidth',1.5),gridon;title('LPF');
sf2=[];
LL=fc/bitRate*N;
i=LL/2;
bitb=[];
while(i<=length(sf1))%判决
sf2=[sf2,sf1(i)>=0.001];
i=i+LL;
end
fori=1:
length(sf2)
ifsf2(i)==0
bit1=zeros(1,N);
else
bit1=ones(1,N);
end
bitb=[bitb,bit1];
end
figure
(1);
subplot(K,1,4);plot(bitb,'LineWidth',1.5),gridon;title('解调后信号');axis([0,N*length(sf2),-2.5,2.5]);
case2,scolor='2PSK';
l=linspace(0,pi,50);%数据初始化
t=linspace(0,9*pi,450);
b=1:
1:
9;
out=1:
1:
450;
f=1:
1:
450;
g=1:
1:
450;
w1=2%正弦波f1的频率,可以根据自己想要的频率在此改写
%正弦波f2的频率,可以根据自己想要的频率在此改写
f1=sin(w1*l);
figure
(1);
f2=sin(w1*l+pi);
figure
(1);
subplot(2,1,1),plot(l,f1),axis([0pi-1.21.2]),xlabel('t'),ylabel('f1');%画出f1信号波形
subplot(2,1,2),plot(l,f2),axis([0pi-1.21.2]),xlabel('t'),ylabel('f2');%画出f2信号波形
a=[010001101]
fori=1:
9%2pSK编码
ifa(i)==0
fork=1:
50%如果二进制原码为0则输出f1波形
out(k+50*(i-1))=f1(k);
end
else
forj=1:
50
out(j+50*(i-1))=f2(j);%r如果二进制原码为1则输出f2波形
end
end
end
fori=1:
9%2PSK解码
n=0;m=0;
forj=1:
50
ifout(j+50*(i-1))-f1(j)==0
n=n+1;
elseifout(j+50*(i-1))-f2(j)==0
m=m+1;
end
end
end
ifn>m
b(i)=0;
elseb(i)=1;
end
end
b
fori=1:
9%画出解码后的波形,包括原码和解码出的码,进行对比
forj=1+50*(i-1):
50*i
f(j)=a(i);
g(j)=b(i);
end
end
figure
(2);
subplot(3,1,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 原理 matlab 课程设计 报告