资源简介
是根据前辈的代码修改的 我要换积分;性噪比为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
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论