资源简介
是根据前辈的代码修改的 我要换积分;性噪比为25db,星座图有点问题(完全错误的),误码率要在大的采样率才能实现,瑞利信道没实现
代码片段和文件信息
%产生原码
M=10;
t1=linspace(00.001*M60*M);%时间取0-0.01s,共有600个点
A=rand(1M); %取一行十个数,即a[10]
for i=1:M
if A(i)>=0.5
A(i)=1;
else A(i)=0; %大于0.5取1小于取0
end
end
source=A; %源码取A的值
for i=1:M
if source(i)==1
for j=1:60
sourcecode(j+60*(i-1))=1;%60个点一格代表一个0/1信号
end
else for j=1:60
sourcecode(j+60*(i-1))=0;%60个点一格代表一个0/1信号
end
end
end %形成输入波形
aftershift=[]; %创建一个空矩阵
aftershift(1)=1; %初始码元为1
for i=1:M
if source(i)==1
if aftershift(i)==1
aftershift(i+1)=0;
else aftershift(i+1)=1;
end
else aftershift(i+1)=aftershift(i); %两码元相同则是0%两码元不相同则是1
end
end
t=linspace(00.001*(M+1)(M+1)*60);
for i=1:(M+1)
if aftershift(i)==1
for j=1:60
aftershiftcode(j+60*(i-1))=1;
end
else for j=1:60
aftershiftcode(j+60*(i-1))=-1;
end
end
end %转换后的码形状 0变-1
t2=linspace(00.00160);
carrier=cos(2000*pi*t2+0.5*pi);%载波
for i=1:(M+1)
for j=1:60
encode(j+60*(i-1))=aftershiftcode(j+60*(i-1))*carrier(j); %加载波后的波形
nencode(j+60*(i-1))=awgn(aftershiftcode(j+60*(i-1))*carrier(j)25);%加高斯噪声的波形
% h=rayleighchan(0.0010-1-3);
% nray(j+60*(i-1))=filter(hencode(j+60*(i-1)));
end
end
for i=1:M*60
D(i)=nencode(i+60);%取600个点编码加载波后波形形
end
for i=1:60*M
E(i)=nencode(i);
end
for i=1:M
F(i)=encode(i*60-45);
end
for i=1:M*60
decode(i)=D(i)*E(i);%差分相干解调
end
load mypass lowpasser;
LEN=fix(length(lowpasser)/2);
%测出滤波器延时的点数 fix 向零靠拢取整数 length()即lowapsser取点个数
decoded=[];
for i=1:M*60
decoded(i)=decode(i);
end
for i=(M*60+1):(M*60+LEN)
decoded(i)=0;
end
afterfilter=filter(lowpasser1decoded);
%lowpasser/1为滤波器系数
%比如说你的采样频率Fs=1000Hz,
% 选用8阶的滤波器,期望的低通截止频率是200Hz
%[ba]=butter(80.4‘low‘); %0.4=200/(Fs/2)
%y=filter(bax) %x是原始数据,y是滤波后的数据;
for i=1:60*M
if afterfilter(i+LEN)<=0
recieve(i)=1;
else recieve(i)=0;
end
end %接收码
for i=1:M
recieved(i)=recieve((i-1)*60+30);
end
source
aftershift;
recieved;
t3=linspace(00.001*(60*M+LEN/60)(60*M+LEN));
n=0;
for j=1:M
for i=1:60
if recieve(60*j+i-60)~=sourcecode(60*j+i-60)
n=n+1;
end
end
end
rate=n/(60*M);%误码率
figure(1)
plot(t1sourcecode)axis([0 0.001*M -0.2 1.2])title(‘原码‘)xlabel(‘t(sec)‘);
figure(2)
plot(taftershiftcode)axis([0 0.001*(M+1) -1.2 1.2])title(‘码形转换‘)xlabel(‘t(sec)‘);
figure(3)
plot(tnencode)axis([0 0.001*(M+1) -1.2 1.2])title(‘DBPSK‘)xlabel(‘t(sec)‘);
figure(4)
plot(t1decode)axis([0 0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3561 2015-01-06 21:47 DBPSKn.m
文件 873 2010-01-03 22:52 mypass.mat
----------- --------- ---------- ----- ----
4434 2
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论