一、获取代码方式

获取代码方式1:
完整代码已上传我的资源: 【数字信号调制】基于matlab GUI BPSK调制+解调【含Matlab源码 644期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、BPSK简介


1 BPSK调制过程


1.1 用旋转向量的角度理解BPSK调制


2 频谱效率
二进制相移键控的频谱效率是1bps/hz
计算方法

3 缺点
频谱效率低,我们要想办法提高频谱效率

三、部分源代码

function varargout = GUI_BPSK(varargin)
% GUI_BPSK MATLAB code for GUI_BPSK.fig
%      GUI_BPSK, by itself, creates a new GUI_BPSK or raises the existing
%      singleton*.
%
%      H = GUI_BPSK returns the handle to a new GUI_BPSK or the handle to
%      the existing singleton*.
%
%      GUI_BPSK('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in GUI_BPSK.M with the given input arguments.
%
%      GUI_BPSK('Property','Value',...) creates a new GUI_BPSK or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before GUI_BPSK_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to GUI_BPSK_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help GUI_BPSK% Last Modified by GUIDE v2.5 03-Dec-2018 19:45:43% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @GUI_BPSK_OpeningFcn, ...'gui_OutputFcn',  @GUI_BPSK_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before GUI_BPSK is made visible.
function GUI_BPSK_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to GUI_BPSK (see VARARGIN)% Choose default command line output for GUI_BPSK
handles.output = hObject;
s=round(rand(1,100));  %生成二进制基带数据并画出基带信号图
N=1:100;
%figure(1);subplot(311);stem(N,s);title('基带信号');grid on;Ps=1;
M=2;        %BPSK星座图
d=sqrt(Ps)*sin(pi/M);
A=[-1,1]*d;
%subplot(312);scatter(real(A),imag(A),'filled');title('BPSK星座图');Maptable=[0;1];        %BPSK格雷码比特映射
for j=1:1:100for m=1:Mif isequal(s(j),Maptable(m,:)) Qu(j)= m*pi;x(j)=A(m);breakendend
end               %基带数据s携带的信息映射到X[n] Am=1;             %载波调制
T=0.0001;            fc=6/T;
Smpl=1000;
deltaT=T/Smpl;    %连续时间离散化间隔
Ns=5;            %画出Ns个符号的波形
t=deltaT:deltaT:Ns*T;  %离散时间序列for j=1:Nsindex=(j-1)*Smpl+1:j*Smpl; %第i个符号对应的离散时间序号g(index)=1;              %矩形脉冲成型X(index)=Am*g(index).*cos(2*pi*fc*t(index)+Qu(ceil(index/50.01))); %载波调制信号
end%subplot(313);plot(t,X);title('BPSK调制信号波形');SNR_dB=15;    %定义信噪比
SNR=10^(SNR_dB/10); %定义线性信噪比
Ps=1;     %发射功率
Pn=Ps/SNR;  %噪声方差
z=sqrt(Pn/2)*(randn(size(x))+randn(size(x))*i); %生成白噪声
h=1;  %AWGN信道下,信道增益h=1
y=h*x+z;   %基带接受信号
%figure(2);subplot(211);scatter(real(y(1:10)),imag(y(1:10)),'filled');title('BPSK接收星座图'); %y的星座图for j=1:length(y)   Dist=abs(y(j)-A);                  %第j个接受信号与各星座图点的距离[~,Index]=min(Dist);               %找到距离最近的点x_est(j)=A(Index);                 %得到发射调制信号的估计s_est(j)=Maptable(Index,:);   %得到比特数据的估计
end
W=1:100;
%subplot(212);stem(W,s_est);title('BPSK解调后信号');for n=1:15Pe_t(n)=sqrt(2)/4*erfc(sqrt(2*n));Pb_t(n)=sqrt(2)/4*erfc(sqrt(2*n));
end
PESUM=0;
PBSUM=0;
for n=1:15for m=1:1000SNR=n;Ps=1;  Pn=Ps/SNR;z=sqrt(Pn/2)*(randn(size(x))+randn(size(x))*i);h=1;y=h*x+z;for j=1:length(y)Dist=abs(y(j)-A);[~,Index]=min(Dist);x_est(j)=A(Index);s_est(j)=Maptable(Index,:);end
for  k=1:100
if(s(k)+s_est(k)==1)PBSUM=PBSUM+1;
endend
for k1=1:100
if isequal(x(k1),x_est(k1))PESUM=PESUM+0;elsePESUM=PESUM+1;
end
endend
Pe(n)=PESUM/1000/100;
Pb(n)=PBSUM/1000/100;
PESUM=0;
PBSUM=0;
endSNRX=1:15;
%figure(3);plot(SNRX,Pb); hold on;plot(SNRX,Pe);
%scatter(SNRX,Pe_t);scatter(SNRX,Pb_t, 'filled');xlabel('信噪比 SNR(r/dB)');title('AWGN信道下误码率与误符号率曲线');
%axis([1 15 0 0.15]);grid on;hold off;H=sqrt(1/2)*(randn+i*randn);
Y=H*x+z;
%figure(4);subplot(211);scatter(real(Y(1:10)),imag(Y(1:10)),'filled');title('BPSK信道均衡前星座图');Y1=Y/H;
%subplot(212);scatter(real(Y1(1:10)),imag(Y1(1:10)),'filled');title('BPSK信道均衡后星座图');PESUM1=0;
PBSUM1=0;
for n=1:15for m=1:1000SNR=n;Ps=1;  Pn=Ps/SNR;z=sqrt(Pn/2)*(randn(size(x))+randn(size(x))*i);
Y1=(H*x+z)/H;for j=1:length(Y1)Dist=abs(Y1(j)-A);[~,Index]=min(Dist);x_est1(j)=A(Index);s_est1(j)=Maptable(Index,:);end
for  k=1:100
if(s(k)+s_est1(k)==1)PBSUM1=PBSUM1+1;
endend
for k1=1:100
if isequal(x(k1),x_est1(k1))PESUM1=PESUM1+0;elsePESUM1=PESUM1+1;
end
endend
Pe1(n)=PESUM1/1000/100;
Pb1(n)=PESUM1/1000/100;
PESUM1=0;
PBSUM1=0;
end

四、运行结果





五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.

【数字信号调制】基于matlab GUI BPSK调制+解调【含Matlab源码 644期】相关推荐

  1. 【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI杨氏双缝干涉[含Matlab源码 001期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  2. 【人脸识别】基于matlab GUI人数统计【含Matlab源码 2121期】

    ⛄一.人数统计简介(附课程作业报告) 1 课题背景 本课题为基于matlab的人数统计系统.近年来,很多行业对人流信息有极大的需求,如汽车公交站,地铁站台,商场出入口等.通过人数统计系统可以方便.可靠 ...

  3. 基于SSM的仓库管理系统(含完整源码+论文)

    后端框架:SSM 数据库:MySQL 开发工具:IDEA/Eclipse 系统介绍:本系统是基于SSM框架进行设计,MySQL作为底层数据库,前端采用bootstrap 模块大致介绍:包括库存管理.出 ...

  4. 【条形码识别】基于matlab GUI二维条形码识别【含Matlab源码 607期】

    ⛄一.二维条形码识别简介 采用数字图像处理技术对二维条码进行识别, 是二维条形码识别中较常用的方法, 它在处理污损的条形码方面有光电识别方法无法比拟的优势.另外图像式识别方法对识别角度的要求没有光电识 ...

  5. 【数字信号】基于DTMF双音多频电话拨号仿真含Matlab源码

    1 简介 DTMF信号是音频电话中的拨号信号,本文介绍了基于MATLAB的DTMF信号产生与检测的流程,重点分析了DTMF信号检测中的戈泽尔算法原理及参数选择.​ 2 部分代码 t1='123A';t ...

  6. 【心电信号】基于matlab GUI心电信号预处理【含Matlab源码 938期】

    ⛄一.心电信号预处理方法简介 理论知识参考文献:心电信号预处理方法研究 ⛄二.部分源代码 function varargout = kaishi(varargin) gui_Singleton = 1 ...

  7. matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...

    一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...

  8. 【数字信号】基于matlab GUI多音双频(DTMF)拨号音频解码仿真系统【含Matlab源码 1084期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数字信号]基于matlab GUI多音双频(DTMF)拨号音频解码仿真系统[含Matlab源码 1084期] 点击上面蓝色字体,直接付费 ...

  9. bpsk的matlab仿真,用MATLAB仿真BPSK调制

    这是本人的处女贴,以后还会写更多ICT方面的blog.今天为大家呈上MATLAB仿真BPSK调制的codes: clear all;clc; SNR_dB=1:1:9; SNR=10.^(SNR_dB ...

  10. 【数字信号】基于matlab GUI电话按键识别【含Matlab源码 2382期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数字信号]基于matlab GUI电话按键识别[含Matlab源码 2382期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...

最新文章

  1. 关于Vue中常用的工具函数封装
  2. Android开发历程_18(XML文件解析)
  3. leetcode 43. 字符串相乘(Multiply Strings)
  4. 【转】Linux开机启动管理---systemd使用
  5. Oracle 11g Release 1 (11.1)——简单管理聚簇
  6. activiti搭建
  7. Google Mesa概览
  8. java枚举类中字段有没有必要加final____枚举类字段 Field ‘xxx‘ may be ‘final‘
  9. php递归删除文件,PHP 递归删除文件夹
  10. Git学习总结(2)——初识 GitHub
  11. 情感分析技术在美团推荐系统中的探索与应用
  12. 运动目标跟踪(十九)--TLD
  13. appscan如何进行web端安全性测试_如何进行WEB安全性测试?
  14. zend7 常用快捷键
  15. 各种字体下载地址和移动端支持字体简析
  16. 《麦肯锡卓越工作方法》读后感
  17. CMMB手机电视到了芯片企业创新的时侯
  18. Markdown书写软件Typora的使用--图片上传(PicGo与Github/Gitee)及排版
  19. 二值图像轮廓追踪算法
  20. JavaScript图片轮播图

热门文章

  1. php 加密解密算法
  2. angular之factory、service、provider
  3. sql server 2000数据库 最近经常出现某进程一直占用资源,阻塞?死锁?
  4. readonly strong nonatomic 和IBOutlet
  5. 小黑相关预搞书籍杂志等
  6. DataGridView拖动换行
  7. 信息化基础建设 总体结构
  8. 学习DX编程中的一个很丢脸,但是不知道是为什么的问题
  9. 西工大疫情期间关于如何做好博士学位论文专题讲座笔记
  10. CCF虚拟现实与可视化技术专委会丨面向增强现实的可视计算技术研究进展概述