%BPSK
%公共参数设置
clc; %清屏幕
close all;
clear all; %清内存
code_len=50;%码元数
fre=1; %码元速率
T=1/fre; %码元周期
fs=100*fre;%抽样频率
Ts=1/fs; %抽样周期
SNR=0
for i=1:code_len
data(i)= 2*round(rand)-1;%产生0、1等概的随机数据并进行双极性化处理
end
exdata=[];%把数据扩展成方波
for i=1:length(data)
for rep=1:100
exdata= [exdata data(i)];%离散化处理,因为matlab不能作连续的波形,一个周期采50个点,共采样2500个点
end
end
%调制
t=Ts:Ts:(code_len*T);
carrier=cos(4*pi*fre*t);%离散化处理,与随机数对应,抽样2500个点;
bpsk=carrier.*exdata;
bpsk1=bpsk;
%加噪声
Eb=sum((abs(bpsk)).^2)/(code_len);%计算信号功率
No=Eb/(10^(SNR/10)); %计算噪声功率,SNR=Eb/No
noise=randn(size(bpsk)).*sqrt(No/2);
bpsk=bpsk+noise;
%解调
uncarry=bpsk.*carrier;%信号乘以本地载波,便是主要的解调步骤
% 低通滤波器
f=1/100; % 截止频率
qifs=1; %采样率
[a,b]=butter(4,f/(qifs/2));
bpsk2=filter(a,b,uncarry);
dec1=[];
for inc=1:100:length(uncarry)
dec=trapz(inc:inc+99,uncarry(inc:inc+99));%计算uncarry关于inc的积分
dec1=[dec1 dec];
end
%门限判别
demod=[];
for i=1:length(dec1)
if dec1(i)>0
demod=[demod 1];%大于0就取为1
else
demod=[demod -1];%小于0就取为-1
end
end
%计算误码率
error=0;
for i=1:length(demod)
if data(i)~=demod(i)
error=error+1;
end
end
error
ber=error/code_len
%画图
figure(1);%比较发送码与接收码
subplot(2,1,1);
stem(data,'r');
title('(1,-1)code');
subplot(2,1,2);
stem(demod);
title('(1,-1)demod code');
hold off;
figure(2);%比较调制波形、加噪波形、解调波形、经过低通后的波形
subplot(4,1,1);
plot(bpsk1,'r');
title('bpsk');
subplot(4,1,2);
plot(bpsk);
title('bpsk+noise');
subplot(4,1,3);
plot(uncarry);
title('demod bpsk');
subplot(4,1,4);
stairs(bpsk2);
title('low pass filter');
hold off;
BPSK.zip_BPSK调制解调_bpsk调制
版权申诉
78 浏览量
2022-09-23
10:16:49
上传
评论
收藏 1KB ZIP 举报
alvarocfc
- 粉丝: 105
- 资源: 1万+
最新资源
- 电子万年历软件仿真(经过多次修改,保证正确性)
- Unity XR 手势射击控制脚本(适用于任何可手势识别的设备)
- 机械设计全自动电表(NB和IC卡表)控制和上壳装配线sw16可编辑非常好的设计图纸100%好用.zip
- 基于matlab的EAN-13条形码识别系统GUI界面.zip代码53
- matlab基于bp神经网络交通信号标志识别GUI界面13个标志.zip代码54
- 电子万年历答辩实物展示视频mp4格式
- 基于python实现的程序,包括哈希感知算法cvHash,图像切割cvsplit,固定目标检测cvRec(附文档ppt)等
- 计算0-10000之间所有偶数的和
- multiled.zip
- 基于php实现的哈希算法的人脸检索
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈