资源简介
用matlab写的关于BPSK QPSK的通信仿真程序,带详细的文档说明,带详细的代码注释,希望各位有识之士下载交流
代码片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Simulation program to realize BPSK system
%
% pro by pengsuyu stu.id=1015231037
% 参考文献:<> yamamura && harada
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
close all;
clear all;
clc;
%%%%%%%%%开始的参数设置%%%%%%%%%%%%%%%%
sr=256000.0; % 码率
ml=1; % 调制电平数
br=sr.*ml; % 比特率,由于是BPSK,所以在这里比特率等于码率
nd = 1000; % 码数,即仿真一次的符号数目,考虑到数据量大浪费时间,数据量小又不精确,所以选择2000
snr=3; % 信噪比 单位DB。按照误差曲线,测试时不要太大,否则,不易看到误码。要想容易看到误码,就增加码数,比如去nd=10000,或者增加仿真次数
IPOINT=8; % 上采样速率,按照要求取8
irfn=21; % 滤波器抽头数带一定的时域均衡效果。
alfs=0.1; % 滚降因子
%%%%%%%%%%%滚降滤波器的参数设置并产生该滤波器的时域冲击响应序列%%%%%%%%%%%%%%%
[xh] = hrollfcoef(irfnIPOINTsralfs1); %其他人写的滚降滤波器函数-这个滤波器函数在工程目录下供调用,该函数最后一个参数设置是发送滤波,还是接收滤波。
[xh2] = hrollfcoef(irfnIPOINTsralfs0); %最后一个参数是1,则是发送滤波,0则是接收滤波
%%%%%%%%%%%计算部分%%%%%%%%%%%%%%
nloop=100; % 仿真次数
noe = 0; % 发生错误的比特数
nod = 0; % 一共发送的比特数
for ii=1:nloop
%%%%%%%%%%%产生数据 %%%%%%%%%%%%%%%%
data=rand(1nd)>0.5; %随机产生0-1的比特数据,并记录在data中
data1=data.*(-2)+1; %将0-1的比特转换成-1 和 1的电平 其中,0对应1 1对应-1
data2= oversamp( data1 nd IPOINT) ; %其他人写的上采样模块,调用起来很方便
data3 = conv(data2xh); %通过卷积实现滚降低通滤波
%%%%%%%%%%%%%加高斯噪声%%%%%%%%%%%%
data4=awgn(data3snr); %用AWGN函数制作高斯噪声。
data5=conv(data4xh2); %接收卷积滤波
sampl=irfn*IPOINT+1; %下采样
data6 = data5(sampl:IPOINT:IPOINT*nd+sampl-1);
%%%%%%%%%%%%解调%%%%%%%%%%%%%%
demodata=data6 < 0;
%%%%%%%%%%%误码率计算%%%%%%%%%
noe2=sum(abs(data-demodata)); % 计算不一样的码的个数,即误码个数
nod2=length(data); %计算发送的码的个数
noe=noe+noe2; %若仿真多次,则累加起来
nod=nod+nod2; %若仿真多次,则累加起来
% fprintf(‘%d\t%e\n‘iinoe2/nod2); %一次仿真中的误码率。
end
%%%%%%%%%%%输出误码率%%%%%%%%%%%%%%%%%%
ber = noe/nod;
fprintf(‘仿真总次数:%d\nSNR:%d dB\n误码数:%d\n发送码的总个数:%d\n误码率:%e\n‘iisnrnoenodnoe/nod);
%%%%%%%%%%%%画出图像%一共8幅图%%%%%%%%%%%%
figure(1) %图1是调制前后的序列图
subplot(211);
stem(data‘.‘);
subplot(212);
stem(data1‘.‘);
title(‘调制前后序列图‘);
figure(2); %图2是调制后的信号的星座图
ss=data1+j*eps;
plot(ss‘black*‘);
grid on;
axis([-2 2 -2 2]);
xlabel(‘I-channel‘);
ylabel(‘Q-channel‘);
legend(‘Signal under White Gaussian Noise channel‘‘Signal Constellation‘);
title(‘调制后信号星座图‘);
figure(3);
stem(data2‘.‘); %图3是上采样后的序列
figure(4);
plot(data3); %图4是滚降滤波之后的波形趋于平滑
eyediagram(data32*IPOINT); %图5是眼图1--高斯噪声之前
title(‘高斯噪声之前‘);
eyediagram(data416); %图6是眼图2--高斯噪声之后
title(‘高斯噪声之后‘);
figure(7);
plot(data5); %图7是匹配滤波之后的波形
figure(8);
ss1=data6+j*eps;
plot(ss1‘black*‘);
grid on;
xlabel(‘I-channel‘);
ylabel(‘Q-channel‘);
legend(‘Signal under White Gaussian Noise channel‘‘Signal Constellation‘);
title(‘滤波抽取信号星座图‘);
%%%%%%%%
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 562 2001-11-30 07:56 qpsk\compconv.m
文件 684 2001-11-30 07:56 qpsk\compoversamp.m
文件 1652 2001-11-27 01:37 qpsk\hrollfcoef.m
文件 4548 2013-06-10 13:07 qpsk\qpsk.asv
文件 3970 2013-06-11 10:19 qpsk\qpsk.m
文件 721 2013-06-10 11:20 qpsk\qpskdemod.m
文件 913 2013-06-10 11:19 qpsk\qpskmod.m
文件 4684 2001-11-30 06:31 qpsk\qpsk_fading.m
文件 131 2013-06-11 10:17 版本2改进.txt
文件 765952 2013-06-11 10:15 仿真图说明.doc
文件 311808 2013-06-11 10:11 结果分析.doc
文件 3598 2013-06-10 13:02 bpsk\bpsk.asv
文件 3636 2013-06-11 10:05 bpsk\bpsk.m
文件 1652 2001-11-27 01:37 bpsk\hrollfcoef.m
文件 497 2001-11-27 09:39 bpsk\oversamp.m
目录 0 2013-06-10 13:28 qpsk
目录 0 2013-06-10 13:25 bpsk
----------- --------- ---------- ----- ----
1105008 17
相关资源
- 3点GPS定位MATLAB仿真
- 一维光子晶体MATLAB仿真代码吸收率折
- 清洁机器人路径规划matlab仿真程序
- 基于倒谱图判断浊音的基音周期MATL
- 粒子群算法优化pid源码 matlab仿真.ra
- 小卫星多普勒频偏MATLAB仿真程序及参
- 基于Matlab的OFDM系统仿真的设计
- 《MATLAB仿真在现代通信中的应用》徐
- 自抗扰控制ADRC的MATLAB仿真+书籍资料
- Ldpc编译码方案MATLAB仿真
- 基于模型预测控制的车辆轨迹跟踪问
- 合成孔径雷达成像csChirp Scaling算法M
- 冲击电压发生器MATLAB仿真,主要是单
- 信道的MATLAB仿真
- 基于傅里叶叠层的图像重建算法matl
- 信息论大作业 LZ78算法编译码 matlab仿
- 跳频通信系统MATLAB仿真
- 机械臂SEA柔顺控制matlab仿真
- 群速度色散的matlab仿真
- 基于matlab的BPSK调制解调
- 异步电机降压启动matlab仿真
- Aloha系统MATLAB仿真代码
- 机器人焊接轨迹规划matlab仿真程序
- 同步电机模型的MATLAB仿真-毕业设计论
- 方崇智《过程辨识》一书中各种辨识
- matlab仿真及其在光学课程中的应用 课
- MINIST 手写数字识别 MATLAB仿真
- 基于Matlab的光学实验仿真
- 四旋翼MATLAB仿真文件实验报告.zip
- 雷达系统的matlab仿真
评论
共有 条评论