【误码率仿真】基于matlab模拟16QAM和16PSK调制误码率对比附GUI界面
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
调制作为通信系统组成必不可缺的一部分,主要用于将基带信号进行一定的处理加到载波上,使其变为适合于信道传输的形式.传统的调制分为调幅,调频,调相3种方式,在数字通信系统中,采用16PSK调制和QAM调制较多,文章通过通信系统中常用的MATLAB仿真软件,选取16PSK调制和16QAM调制方式,通过对其星座图以及误码率进行对比仿真,得出两种调制方式的优缺点。
16PSK调制和16QAM调制是两种常用的调制技术,用于将数字数据转换为模拟信号以进行无线通信。
- 16PSK(16相位偏移键控)调制:
- 16PSK使用16个不同的相位来表示4比特的数据。
- 每个相位之间的相位偏移为22.5度。
- 由于相位的离散性,16PSK在信号传输的过程中相对较容易受到相位偏移、多径衰落等干扰的影响。
- 16QAM(16方振幅调制)调制:
16QAM使用16个不同的幅度和相位组合来表示4比特的数据。
信号空间包含4个幅度级别和4个相位级别。
16QAM在相同频带宽度下能够传输更高的比特速率,但也更容易受到噪声和信道失真的影响。
无论是16PSK还是16QAM,它们都具有一定的优势和适用性。16PSK可以提供较好的相位鲁棒性,适用于对相位变化较为敏感的应用。16AM则在相对较低的信噪比条件下能够提供较高的数据传输速率。
⛄ 运行结果
⛄ 部分代码
function varargout = compare_psk_qam(varargin)
% COMPARE_PSK_QAM MATLAB code for compare_psk_qam.fig
% COMPARE_PSK_QAM, by itself, creates a new COMPARE_PSK_QAM or raises the existing
% singleton*.
%
% H = COMPARE_PSK_QAM returns the handle to a new COMPARE_PSK_QAM or the handle to
% the existing singleton*.
%
% COMPARE_PSK_QAM('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in COMPARE_PSK_QAM.M with the given input arguments.
%
% COMPARE_PSK_QAM('Property','Value',...) creates a new COMPARE_PSK_QAM or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before compare_psk_qam_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to compare_psk_qam_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 compare_psk_qam
% Last Modified by GUIDE v2.5 16-May-2023 15:52:23
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @compare_psk_qam_OpeningFcn, ...
'gui_OutputFcn', @compare_psk_qam_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 compare_psk_qam is made visible.
function compare_psk_qam_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 compare_psk_qam (see VARARGIN)
% Choose default command line output for compare_psk_qam
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes compare_psk_qam wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = compare_psk_qam_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%鐢熸垚浜岃繘鍒朵俊鎭爜鍏冨簭鍒?
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
M=4;
Num_symbol = 1000000;
Num_bit =M*Num_symbol;
Bit = randi([0,1],Num_bit,1);
axes(handles.axes2);
⛄ 参考文献
[1] 刘卓伦,马征.基于Matlab平台的OFDM系统在不同信道下16QAM调制的仿真设计与分析[J].信息记录材料, 2017(12).DOI:CNKI:SUN:CXJL.0.2017-12-007.
[2] 赵忠华,杨晓梅.GMSK调制解调的MATLAB仿真与误码率分析[J].新疆师范大学学报:自然科学版, 2015, 34(2):6.DOI:10.3969/j.issn.1008-9659.2015.02.013.
[3] 谭清元,潘学文.QPSK和16QAM调制下MIMO-OFDM系统Matlab仿真实现[J].电脑知识与技术:学术版, 2019, 15(12):2.
[4] 王怡,涂宇,谭泽涛,等.基于Simulink的16QAM调制解调系统的设计与仿真[J].电子技术与软件工程, 2020(17):2.