QPSK调制解调代码

  • W2_172010
    了解作者
  • matlab
    开发工具
  • 2.5KB
    文件大小
  • 7z
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-02-22 11:25
    上传日期
QPSK调制解调过程以及中间个步骤波形图及功率谱图 使用matlab编写
QPSK.7z
  • QPSK
  • BPF.m
    612B
  • sigexpand.m
    142B
  • F2T.m
    300B
  • T2F.m
    386B
  • LPF.m
    487B
  • QPSK.m
    8.1KB
内容介绍
%仿真QPSK调制,生成相应的时域波形图、功率谱图 clear all; close all; clc; A=1; % 载波幅度 fc=2; % 载波频率 N_sample=8; % 基带码元抽样点数 N=500; % 码元数 Ts=1; % 码元宽度 dt=Ts/fc/N_sample; % 抽样时间间隔 T=N*Ts; % 信号持续时间长度 t=0:dt:T-dt; % 时间向量 Lt=length(t); % 时间向量长度 tx1=0; % 时域波形图横坐标起点 tx2=10; % 时域波形图横坐标终点 ty1=-2; % 时域波形图纵坐标起点 ty2=2; % 时域波形图纵坐标终点 fx1=-10; % 功率谱图横坐标起点 fx2=10; % 功率谱图横坐标终点 fy1=-40; % 功率谱图纵坐标起点 fy2=25; % 功率谱图纵坐标终点 %产生二进制信源 m=randn(1,N); d=sign(m); dd=sigexpand(d,fc*N_sample); % 双极性 gt=ones(1,fc*N_sample); % NRZ波形 d_NRZ=conv(dd,gt); % 基带信号 figure(1); subplot(2,4,1); plot(t,d_NRZ(1:Lt)); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('基带信号时域波形图'); grid; [f,d_NRZf]=T2F(t,d_NRZ(1:Lt)); figure(1); subplot(2,4,5); plot(f,10*log10(abs(d_NRZf).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('基带信号功率谱图'); grid; figure(4); subplot(2,2,1); plot(t,d_NRZ(1:Lt)); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('基带信号时域波形图'); grid; figure(4); subplot(2,2,2); plot(f,10*log10(abs(d_NRZf).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('基带信号功率谱图'); grid; % 串并转换 d1=[]; d2=[]; for i=1:N if rem(i,2)==1 d1((i+1)/2)=d(i); else d2(i/2)=d(i); end end dd1=sigexpand(d1,2*fc*N_sample); % 双极性 gt1=ones(1,2*fc*N_sample); % NRZ波形 d_NRZ1=conv(dd1,gt1); % 上支路基带信号 figure(1); subplot(2,4,2); plot(t,d_NRZ1(1:Lt)); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('上支路基带信号时域波形图'); grid; [f1,d_NRZ1f]=T2F(t,d_NRZ1(1:Lt)); figure(1); subplot(2,4,6); plot(f1,10*log10(abs(d_NRZ1f).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('上支路基带信号功率谱图'); grid; figure(3); subplot(2,4,1); plot(t,d_NRZ1(1:Lt)); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('上支路基带信号时域波形图'); grid; dd2=sigexpand(d2,2*fc*N_sample); % 双极性 % gt1=ones(1,2*fc*N_sample); % NRZ波形 d_NRZ2=conv(dd2,gt1); % 下支路基带信号 figure(1); subplot(2,4,3); plot(t,d_NRZ2(1:Lt)); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('下支路基带信号时域波形图'); grid; [f2,d_NRZ2f]=T2F(t,d_NRZ2(1:Lt)); figure(1); subplot(2,4,7); plot(f2,10*log10(abs(d_NRZ2f).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('下支路基带信号功率谱图'); grid; figure(3); subplot(2,4,5); plot(t,d_NRZ2(1:Lt)); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('下支路基带信号时域波形图'); grid; % 载波 h1t=A*cos(2*pi*fc*t); h2t=A*sin(2*pi*fc*t); figure(1); subplot(2,4,4); plot(t,h1t); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('载波信号时域波形图'); grid; [f3,h1tf]=T2F(t,h1t); figure(1); subplot(2,4,8); plot(f3,10*log10(abs(h1tf).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('载波信号功率谱图'); grid; % 生成QPSK信号 s_qpsk1=d_NRZ1(1:Lt).* h1t; %生成上支路调制信号 s_qpsk2=d_NRZ2(1:Lt).* h2t; %生成下支路调制信号 figure(2); subplot(2,4,1); plot(t,s_qpsk1); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('上支路频带信号时域波形图'); grid; [f4,s_qpsk1f]=T2F(t,s_qpsk1); figure(2); subplot(2,4,5); plot(f4,10*log10(abs(s_qpsk1f).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('上支路频带信号功率谱图'); grid; figure(2); subplot(2,4,2); plot(t,s_qpsk2); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('下支路频带信号时域波形图'); grid; [f5,s_qpsk2f]=T2F(t,s_qpsk2); figure(2); subplot(2,4,6); plot(f5,10*log10(abs(s_qpsk2f).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('下支路频带信号功率谱图'); grid; s_qpsk=s_qpsk1+s_qpsk2; figure(2); subplot(2,4,3); plot(t,s_qpsk); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('已调信号时域波形图'); grid; [f6,s_qpskf]=T2F(t,s_qpsk); figure(2); subplot(2,4,7); plot(f6,10*log10(abs(s_qpskf).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('已调信号功率谱图'); grid; % 信道加入高斯白噪声-10dB进行接收解调 % 产生-10dB高斯白噪声 m=1; p1=-10; noise = wgn(m,Lt,p1); % 接收信号 y_qpsk = s_qpsk + noise; figure(2); subplot(2,4,4); plot(t,y_qpsk); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('接收信号时域波形图 Pn=-10dB'); grid; [f7,y_qpskf]=T2F(t,y_qpsk); figure(2); subplot(2,4,8); plot(f7,10*log10(abs(y_qpskf).^2/T)); axis([fx1,fx2,fy1,fy2]); xlabel('频率(Hz)'); ylabel('功率谱密度(dB/Hz)'); title('接收信号功率谱图 Pn=-10dB'); grid; % 相干解调 % 通过乘法器1 r_qpsk1 = y_qpsk .* h1t; figure(3); subplot(2,4,2); plot(t,r_qpsk1); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('上支路通过乘法器信号时域波形图'); grid; %通过低通滤波器 [f8,r_qpsk1f]=T2F(t,r_qpsk1); B1=1; [t1,r_qpsk11]=lpf(f8,r_qpsk1f,B1); figure(3); subplot(2,4,3); plot(t1,r_qpsk11) axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('上支路通过低通滤波器信号时域波形图'); grid; %抽样判决 dd11=r_qpsk11(fc*N_sample:2*fc*N_sample:end); %在每个码元中间抽样 dd22=sign(dd11); %判决 dd222=sigexpand(dd22,2*fc*N_sample); d_NRZ11=conv(dd222,gt1); figure(3); subplot(2,4,4); plot(t,d_NRZ11(1:Lt)) axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('上支路抽样判决后信号时域波形图'); grid; % 通过乘法器2 r_qpsk2 = y_qpsk .* h2t; figure(3); subplot(2,4,6); plot(t,r_qpsk2); axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('下支路通过乘法器信号时域波形图'); grid; %通过低通滤波器 [f9,r_qpsk2f]=T2F(t,r_qpsk2); B1=1; [t2,r_qpsk21]=lpf(f9,r_qpsk2f,B1); figure(3); subplot(2,4,7); plot(t2,r_qpsk21) axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('下支路通过低通滤波器信号时域波形图'); grid; %抽样判决 dd33=r_qpsk21(fc*N_sample:2*fc*N_sample:end); %在每个码元中间抽样 dd44=sign(dd33); %判决 dd444=sigexpand(dd44,2*fc*N_sample); d_NRZ21=conv(dd444,gt1); % 上支路解调判决后时域波形图 figure(3); subplot(2,4,8); plot(t,d_NRZ21(1:Lt)) axis([tx1,tx2,ty1,ty2]); xlabel('时间(S)'); ylabel('幅度'); title('下支路抽样判决后信号时域波形图'); grid; % 并串转换 ddd=[]; for s=1:N/2 ddd(2*s-1)=dd22(s); ddd(2*s)=dd44(s); end rddd=sigexpand(ddd,fc*N_sample); %解调信号输出 r_qpsk=conv(rddd,gt); figure(4); subplot(2,2,3); plot(t,r_qpsk(1:Lt)); axis([tx1,tx2,ty1,ty2]); xlabel('�
评论
    相关推荐
    • Matlab合集
      冈萨雷斯数字图像处理MATLAB版.中文版+数字图像处理第二版中文版(冈萨雷斯)+MATLAB-R2014a完全自学一本通+MATLAB R2016a完全自学一本通 素材文件+[模式识别与智能计算:MATLAB技术实现(第2版)].杨淑莹.扫描版
    • MATLAB教程
      MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程
    • MATLAB
      MATLAB 该项目是在matlab上完成的,涉及创建和移动宇宙飞船和机器人。 太空飞船和机器人是使用Matlab中的简单几何形状创建的,并通过连续变换矩阵进行移动。 这个项目教我如何使用变换矩阵(旋转,平移等)的概念...
    • MATLAB基础
      一本学习matlab的一本好书
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • matlabruntime
      通过奇点容器运行您的matlab项目 可以在没有MATLAB的容器中运行matlab代码。 为此,我们首先需要通过Matlab编译器在本地构建相应的Matlab代码的独立应用程序,然后使用具有Matlab运行时( 的容器)运行该应用程序 )...
    • matlab实现
      matlab实现 matlab实现matlab实现matlab实现matlab实现
    • matlab 教程
      matlab 信号处理资料,里面包含信号处理pdf文档,一些杂乱的程序和命令等
    • matlab教程
      matlab教程,PPT格式,包含 matlab基本知识、matlab入门、matlab作图、线性规划、无约束优化、非线性规划、统计工具箱、差值、微分方程等多项知识点,并且每个知识点独立成为PPT,内还含有matlab信号处理详解等文档...
    • matlab简介
      1.MATLAB 开发环境 1.1 MATLAB 的视窗环境 进入MATLAB之后,会看到一个视窗MATLAB Command Window称为指令视窗,它是你键入指令的地方同时 MATLAB也将计算结果显示在此。 1.2 简易计算 我们先从MATLAB的...