五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

【通信】基于QPSK調制和解調matlab源碼含 GUI

2021-09-15 12:48 作者:Matlab工程師  | 我要投稿

一、簡介

1 調制模型
與QPSK相比,OQPSk調制方式在復數(shù)通道Q通道中,插入了一個比特的時延Tb。

在這里插入圖片描述


2.優(yōu)點
OQPSK能夠把180度的相移變化變成兩個π /2的相位變化,因此相軌道遠離了原點

在這里插入圖片描述


3 解調
因為調制時Q路進行了延時,所以解調時I路進行延時

在這里插入圖片描述

二、源代碼

function varargout = GUI_QPSK(varargin) % GUI_QPSK MATLAB code for GUI_QPSK.fig % ? ? ?GUI_QPSK, by itself, creates a new GUI_QPSK or raises the existing % ? ? ?singleton*. % % ? ? ?H = GUI_QPSK returns the handle to a new GUI_QPSK or the handle to % ? ? ?the existing singleton*. % % ? ? ?GUI_QPSK('CALLBACK',hObject,eventData,handles,...) calls the local % ? ? ?function named CALLBACK in GUI_QPSK.M with the given input arguments. % % ? ? ?GUI_QPSK('Property','Value',...) creates a new GUI_QPSK or raises the % ? ? ?existing singleton*. ?Starting from the left, property value pairs are % ? ? ?applied to the GUI before GUI_QPSK_OpeningFcn gets called. ?An % ? ? ?unrecognized property name or invalid value makes property application % ? ? ?stop. ?All inputs are passed to GUI_QPSK_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_QPSK % Last Modified by GUIDE v2.5 03-Dec-2018 20:37:56 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', ? ? ? mfilename, ... ? ? ? ? ? ? ? ? ? 'gui_Singleton', ?gui_Singleton, ... ? ? ? ? ? ? ? ? ? 'gui_OpeningFcn', @GUI_QPSK_OpeningFcn, ... ? ? ? ? ? ? ? ? ? 'gui_OutputFcn', ?@GUI_QPSK_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_QPSK is made visible. function GUI_QPSK_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_QPSK (see VARARGIN) % Choose default command line output for GUI_QPSK handles.output = hObject; s=round(rand(1,100)); ?%生成二進制基帶數(shù)據并畫出基帶信號圖 N=1:100; %figure(1);subplot(311);stem(N,s);title('基帶信號');grid on; Ps=1; M=4; ? ? ? ?%QPSK星座圖 d=sqrt(Ps)*sin(pi/M); A=[1+1*i,-1+1*i,-1-1*i,1-1*i]*d; %subplot(312);scatter(real(A),imag(A),'filled');title('QPSK星座圖');hold on; theta=0:pi/100:2*pi; x=cos(theta); y=sin(theta); %plot(x,y);grid on; ? Maptable=[0 0;0 1;1 1;1 0]; ? ? ? ?%QPSK格雷碼比特映射 for j=1:2:100 ? ?for m=1:M ? ? ? ? if isequal(s(j:j+1),Maptable(m,:)) ? ? ? ? ? ?Qu((j+1)/2)= (2*m-1)*pi/4; ? ? ? ? ? ?x((j+1)/2)=A(m); ? ? ? ? break ? ? ? ? end ? ?end end ? ? ? ? ? ? ? %基帶數(shù)據s攜帶的信息映射到X[n] Am=1; ? ? ? ? ? ? %載波調制 T=0.0001; ? ? ? ? ? ?fc=6/T; Smpl=1000; deltaT=T/Smpl; ? ?%連續(xù)時間離散化間隔 Ns=5; ? ? ? ? ? ?%畫出Ns個符號的波形 t=deltaT:deltaT:Ns*T; ?%離散時間序列 for j=1:Ns ? ?index=(j-1)*Smpl+1:j*Smpl; %第i個符號對應的離散時間序號 ? ?g(index)=1; ? ? ? ? ? ? ?%矩形脈沖成型 ? ?X(index)=Am*g(index).*cos(2*pi*fc*t(index)+Qu(ceil(index/100.01))); %載波調制信號 end %subplot(313);plot(t,X);title('QPSK調制信號波形'); SNR_dB=15; ? ?%定義信噪比 ? ? SNR=10^(SNR_dB/10); %定義線性信噪比 Ps=1; ? ? %發(fā)射功率 Pn=Ps/SNR; ?%噪聲方差 x=x(1:50); 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'); %y的星座圖title('QPSK接收星座圖'); for j=1:length(y) ? ? ?Dist=abs(y(j)-A); ? ? ? ? ? ? ? ? ?%第j個接受信號與各星座圖點的距離 ? ?[~,Index]=min(Dist); ? ? ? ? ? ? ? %找到距離最近的點 ? ?x_est(j)=A(Index); ? ? ? ? ? ? ? ? %得到發(fā)射調制信號的估計 ? ?s_est(2*j-1:2*j)=Maptable(Index,:); ? %得到比特數(shù)據的估計 end W=1:100; %subplot(212);stem(W,s_est);title('QPSK解調后信號'); for n=1:25 ?Pe_t(n)=2*sqrt(2)/4*erfc(sqrt(2*n)*sin(pi/M))-sqrt(2)/4*erfc(sqrt(2*n)*sin(pi/M))* sqrt(2)/4*erfc(sqrt(2*n)*sin(pi/M)); ?Pb_t(n)=0.5*Pe_t(n); end PESUM=0; PBSUM=0 for n=1:25 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(2*j-1:2*j)=Maptable(Index,:); ? ? ? ?end for ?k=1:100 if(s(k)+s_est(k)==1) ? ? ? ? PBSUM=PBSUM+1; end ? ? ? ?end for k1=1:50 if isequal(x(k1),x_est(k1)) ? ? ? ? ? ? ? PESUM=PESUM+0; ? ? ? ? ? else ? ? ? ? ? ? ? PESUM=PESUM+1; end end end Pb(n)=PBSUM/1000/100; Pe(n)=PESUM/1000/50; PBSUM=0; PESUM=0; end SNRX=1:25; %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 25 0 1]);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('4PSK信道均衡前星座圖'); Y1=Y/H; %subplot(212);scatter(real(Y1(1:10)),imag(Y1(1:10)),'filled');title('4PSK信道均衡后星座圖'); PESUM1=0; PBSUM1=0 for n=1:25 ?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(2*j-1:2*j)=Maptable(Index,:); ? ? ? ?end for ?k=1:100 if(s(k)+s_est1(k)==1) ? ? ? PBSUM1=PBSUM1+1; end end for k1=1:50 if isequal(x(k1),x_est1(k1)) ? ? ? ? ? ? ? PESUM1=PESUM1+0; ? ? ? ? ? else ? ? ? ? ? ? ? PESUM1=PESUM1+1; end

三、運行結果

在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述

在這里插入圖片描述


在這里插入圖片描述

?


【通信】基于QPSK調制和解調matlab源碼含 GUI的評論 (共 條)

分享到微博請遵守國家法律
柳州市| 荆门市| 屏南县| 陈巴尔虎旗| 奉贤区| 宣城市| 玉龙| 崇明县| 宣汉县| 蓬安县| 菏泽市| 会泽县| 上思县| 大悟县| 冷水江市| 定边县| 稷山县| 萨迦县| 定结县| 阳原县| 天全县| 缙云县| 扶沟县| 高州市| 宁河县| 吉首市| 特克斯县| 南召县| 固阳县| 铁岭县| 两当县| 普洱| 西乡县| 嵊泗县| 五大连池市| 商城县| 秀山| 边坝县| 漠河县| 任丘市| 大姚县|