华为云之ECS云产品快捷入门
345
2024-02-01
【摘要】 一、获取代码方式 获取代码方式1: 完整代码已上传我的资源: 【数字信号调制】基于matlab GUI BPSK调制+解调【含Matlab源码 644期】 获取代码方式2: 通过订阅紫极神光博客付费专...
获得代码方式1:
完全代码已上传我的资源: 【数字信号调制】基于matlab GUI BPSK调制+解调【含Matlab源码 644期】
获得代码方式2:
经过定阅紫极神光博客付费专栏,凭支付凭证,私信博主,可取得此代码。
备注:定阅紫极神光博客付费专栏,可免费取得1份代码(行之有效的期为定阅日起,3天内行之有效的);
1 BPSK调制进程
1.1 用旋转向量的角度理解BPSK调制
2 频谱效力
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⑵018 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});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_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)); %生成2进制基带数据并画出基带信号on;
Ps=1;
M=2; %BPSK星座 %BPSK格雷码比特映照
for j=1:1:100
for m=1:M
if isequal(s(j),Maptable(m,:))
Qu(j)= m*pi;
x(j)=A(m);
break
end
end
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:Ns
index=(j⑴)*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的星座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:15
Pe_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:15
for m=1:1000
SNR=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;
end
end
for k1=1:100
if isequal(x(k1),x_est(k1))
PESUM=PESUM+0;
else
PESUM=PESUM+1;
end
end
end
Pe(n)=PESUM/1000/100;
Pb(n)=PBSUM/1000/100;
PESUM=0;
PBSUM=0;
end
SNRX=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信道均衡前星座n=1:15
for m=1:1000
SNR=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;
end
end
for k1=1:100
if isequal(x(k1),x_est1(k1))
PESUM1=PESUM1+0;
else
PESUM1=PESUM1+1;
end
end
end
Pe1(n)=PESUM1/1000/100;
Pb1(n)=PESUM1/1000/100;
PESUM1=0;
PBSUM1=0;
end
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
🌟 选择英雄云hpapaas 开启自动化、智能化企业转型未来 🌐 >>>>作为一款提供hpaPaaS平台服务的英雄云,有什么优势呢?面对数字化转型的挑战与机遇,选择一个适合自己企业的高度信息化、智能化和自动化的管理系统尤为重要。英雄云是一个值得考虑的选择。英雄云提供了一系列独特的优势,使其成为企业智能管理的首选。下面是英雄云的八大优势:
: 英雄云的平台无需编程知识,即可操作自定义的管理系统:ERP系统、CRM系统、进销存系统、人事行政OA系统、WMS系统等。这意味着用户无需拥有编程技能,也能轻松操控自己的系统。
: 英雄云允许用户根据自己的业务需求、企业规模、成员人数、所需系统等等,进行高度定制服务;三大业务引擎:云表单(进阶版Excel)、工作流程(智能自动触发流程)以及仪表盘(可视化报表),帮助企业进行更简易的业务操作。
:无论是数据录入、审批流程还是报表生成,都可以轻松自动化,使员工能够专注于更有价值的任务。这种减免重复工作的方式不仅提高了工作效率,还降低了错误发生的可能性,为企业节省了时间和资源。
: 英雄云与其他常用企业应用和工具具有良好的生态系统集成能力,可以轻松集成与第三方系统,如财务软件、邮件服务等,实现全面的业务支持。
: 英雄云提供先进的数据分析工具如数据加工工厂,帮助用户更好地理解业务趋势和数据。这使得企业能够做出更明智的战略决策,优化业务流程。
: 英雄云不断进行系统的更新和改进,以适应不断变化的业务环境和技术趋势。这意味着您始终能够使用最新的功能和性能提升。
: 英雄云提供了多样化的部署选项,用户可以根据自身需求选择合适的部署方式,无需自主运维。无论是选择云端部署、私有云部署还是本地部署,英雄云都能提供灵活的解决方案。这意味着用户无需担心硬件维护、系统更新等问题,能够更专注于业务运营,降低了IT运营成本和风险。
: 英雄云提供免费版本,用户可以在免费版本中获得一定数量的表单数据量和企业数据总量,为小型企业提供了经济实惠的选择。
选择英雄云作为您的数字化管理系统,将带来高度的灵活性、可定制性和效率提升。不管您的企业规模如何,英雄云都能满足您的需求,助力您的仓库管理更上一层楼。不妨注册一个英雄云账户,亲自体验这些优势,并让您的企业管理更加智能化和高效化。
免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、
发表评论
暂时没有评论,来抢沙发吧~