% Program bpsk.m
% Simulation program to realize BPSK transmission system
%----------------- Preparation part -----------------%
%------------------- 系统参数设置 -------------------%
function bpsk()
sr=256000.0; % Symbol rate,码速率
ml=1; % Number of modulation levels,调制模式选择
br=sr.*ml; % Bit rate (=symbol rate in this case),比特率
nd = 1000; % Number of symbols that simulates in each loop,仿真时采用的码片数目
ebn0=0; % Eb/N0,Eb为码元能量,n0为噪声功率谱密度
IPOINT=8; % Number of oversamples,过采样点数
%--------------- Filter initialization ---------------%
%------------------- 滤波器初始化 -------------------%
irfn=21; % Number of filter taps,滤波器抽头设置
alfs=0.5; % Rolloff factor,滚降因子
[xh] = hrollfcoef(irfn,IPOINT,sr,alfs,1); % Transmitter filter coefficients,发送滤波器系数
[xh2] = hrollfcoef(irfn,IPOINT,sr,alfs,0); % Receiver filter coefficients,接收滤波器系数
%------------------- START CALCULATION -------------------%
%--------------------- 计算误码率 ------------------------%
noe = 0; % Number of error data,误码数目
nod = 0; % Number of transmitted data,发射码数目
ebn0 = 0:0.5:5;
for iii=1:length(ebn0)
%------------------- Data generation -------------------%
%---------------------- 数据生成 ----------------------%
data = rand(1,nd)>0.5;
%------------------- BPSK Modulation -------------------%
%---------------------- BPSK 调制 ---------------------%
data1 = data.*2-1; % 数据形式转换为1和-1
[data2] = oversamp( data1, nd , IPOINT) ; % 对基带数据进行过采样
data3 = conv(data2,xh); % 将过采样数据发射出去,即时域卷积的关系。
%----------------------- Power Calculation ------------------------%
%--------------------------- 功率计算 ---------------------------%
spow = sum(data3.*data3)/nd;
attn = 0.5*spow*sr/br*10.^(-ebn0(iii)/10);
attn = sqrt(attn);
%--------------------- Add White Gaussian Noise (AWGN) ---------------------%
%------------------------- 加高斯白噪声 ---------------------%
inoise = randn(1,length(data3)).*attn;
data4 = data3+inoise; % 加入高斯白噪声
data5 = conv(data4,xh2); % 接收滤波器,卷积关系
sampl = irfn*IPOINT+1;
data6 = data5(sampl:8:8*nd+sampl-1); %抽取数据进行判决
%------------------------- BPSK Demodulation ---------------------%
%--------------------------- BPSK 解调 ---------------------------%
demodata = data6 > 0; %数据解调
%------------------------- Bit Error Rate (BER) ---------------------%
%--------------------------- 误码率计算 ---------------------------%
noe2 = sum(abs(data-demodata));
nod2 = length(data);
noe = noe+noe2;
nod = nod+nod2;
ber(iii) = noe2/nod2;
end
semilogy(ebn0,ber,'b*-');
grid on;
title('BPSK误码率');
%--------------------------- end of file ---------------------------%
MODULATION.rar_16qam modulation_16qam 对比 msk_bpsk_qpsk_msk_matla
版权申诉
38 浏览量
2022-07-13
19:57:16
上传
评论
收藏 16KB RAR 举报
寒泊
- 粉丝: 76
- 资源: 1万+
最新资源
- 开源代码分享(31)-计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度
- meta-llama-3-8b-instruct 的 model-00002-of-00004.safetensors 的1/3
- AnyTXT.Searcher.1.3.1168.Win32&Win64.exe
- Redis windows版本的redis安装包和可视化工具客户端、redis存取数据的项目demo
- code1_2
- L999_期末项目.ipynb
- 数字频率计的设计(内含原理图、源代码、实物照片)
- 国密SM4加解密,前后端文件合集
- 基于TypeScript和UmiJS的高校学生报名系统设计源码 - student-sign
- 免费gpt4系列、claude-3、gemini 等模型傻瓜式开箱即用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈