tag 标签: QPSK

相关博文
  • 热度 3
    2015-7-27 13:35
    2675 次阅读|
    0 个评论
        在WLAN、卫星通信、光通信领域,可能需要对非常高带宽的信号(500MHz)进行性能测试和解调分析,这对于测量仪器的带宽和通道数要求非常高。比如在光纤骨干传输网上,已经实现了单波长100Gbps的信号传输,其采用的技术就是把2路25Gbps的信号通过QPSK的调制方式调制到激光器的一个偏振态,然后把另2路25Gbps的信号通过同样的方式调制到激光器一个偏振态上,然后把两个偏振态的信号合成在一起实现100Gbps的信号传输。而在下一代200Gbps或者400Gbps的技术研发中,可能会采用更高的波特率以及更高阶的调制如16QAM、64QAM甚至OFDM等技术,这些都对测量仪器的带宽和性能提出了非常高的要求。       如下图所示是一种进行100G/400G光相干通信测试的分析仪表:仪器下半部分是一个相干光通信的解调器,用于把输入信号的2个偏振态下共4路I/Q信号分解出来并转换成电信号输出,每路最高支持的信号波特率可达126Gbaud;而上半部分就是一台高带宽的Z系列示波器,单台示波器就可以实现4路33GHz的测量带宽或者2路63GHz的测量带宽;示波器里运行矢量信号分析软件,可以完成信号的偏振对齐、色散补偿以及4路I/Q信号的解调和同时显示等。         下图中还显示了用示波器做超宽带信号解调分析的结果,被测信号是由超宽带任意波发生器发出的32Gbaud的16QAM调制信号。由于16QAM调制格式下每个符号可以传输4个bit的有效数据,所以实际的数据传输速率达到128Gbps。通过宽带的频响修正和预失真补偿,实现了高达20dB以上的信噪比以及4%的EVM(矢量调制误差)指标。  
  • 热度 21
    2015-3-24 14:02
    1185 次阅读|
    0 个评论
    QPSK是数字通信系统中一种常用的多进制调制方式。其调制的基本原理:对输入的二进制序列按每两位码元分为一组,用载波的四种相位表征它们。实际上QPSK信号是两路正交双边带信号。现在人们对通信的要求越来越高,高速率、大容量、以及多业务,这些对有限的频谱资源构成了大的挑战。因此,对相移键控的研究具有重要意义,因为信道条件的限制,大多数数字通信系统采用了对幅度波动不敏感的频移键控、相移键控和相应的派生调制方式。 基于以上QPSK调制,本设计基于CPLD采用相位选择法来实现调制。 1 QPSK调制原理 QPSK信号的正弦载波有4个可能的离散相位状态,每个载波相位携带2个二进制符号(00、01、10、11),其信号表示式为图1(a)是载波初始相位为0°的QPSK信号矢量图,如上图1(b)是初始相位为45°的QPSK信号的矢量图。 图1 QPSK调制有两种产生方法:相乘电路法和相位选择法。 乘法电路调制:二进制码经过串并变换器分为两个半速率双极性码,两路信号经过低通滤波,分别与相互正交的两路载波信号相乘,然后两路信号相加得到QPSK信号。 相位选择法:输入二进制数据经过串/并变换输出双比特码元,四相载波产生器输出四种不同相位的载波,逻辑选相电路根据串/并变换输入的双比特码元,每个时间间隔选择其中一种相位的载波作为输出,然后经带通滤波器滤除带外干扰信号,就得到QPSK调制信号。 2 本设计调制原理 在设计中采用相位选择法来实现,QPSK信号有四种状态(00、01、10、11),将输入二进制序列每两位码元分为一组。 方案中,用四种波形表示四种相位(图2) 图2 3 系统模块设计 电路总分为6部分: 第一部分:电源电路,为整个电路提供5V的电压; 第二部分:时钟信号电路,用来产生一个4MHz的时钟; 第三部分:基带信号产生电路,产生五种序列码(全0码、全1码、0\1码、7位M序列和15位M序列); 第四部分:调制电路,实现基带信号调制成抽样信号输出; 第五部分:D/A转换电路,将调制模块输出的信号转换成模拟信号输出; 第六部分:滤波电路,对D/A转换后的模拟信号经滤波完成模拟信号重建。 3.1 电源模块 为电路提供5V电压的设计实现方案有多种,如采用USB提供5V电压也可以设计直流稳压电源。直流稳压电源的设计要先采用电源变压器经过整流电路然后滤波最后稳压这四部,设计实现起来相对复杂。设计中购买9V输出电源,将9V电源转化为5V电源。电路由一个7805芯片和2个电容组成,7805的1脚接电源电压输入,2脚接地,3脚经稳压后输出5V电压。C1、C2用来滤出纹波。 3.2 时钟信号模块 时钟电路模块由2个反相器构成反馈,配合1个电容和2个电阻使晶振起振,来产生一个4MHz的时钟。 3.3 基带信号产生模块 此模块的作用是产生五种基带信号(全0码、全1码、0\1码、7位M序列和15位M序列)。 3.4 D/A模块 调制模块调制出来的信号是数字基带信号,需要经过D/A转换为模拟信号,在设计中选用DAC0832实现D/A转换。 DAC0832输出的是电流,但要求输出是电压,所以电路还必须经过一个运算放大器转换成电压。 3.5 滤波模块 滤波电路在设计中采用的是一个压控电压源低通滤波器。其截至频率为50KHz,增益为2,K=5。 4 调制信号仿真 调制信号的仿真结果如下: 当输入0/1码时,由于寄存器y为2,所以循环输出电平为005A7FBF.FFBF7F5A仿真波形如图3所示。 图3 当输入15位M序列码时,由于寄存器y值是变化的,所以输出电平不是循环的,仿真波形如图4所示。 图4 5 结束语 本次设计主要硬件模块有基带信号产生模块、调制模块、D/A转换模块和滤波模块,其中为简化设计系统设计供电模块采用了5V电池供电,基带信号产生模块和调制模块是设计中的关键点和难点,其基于CPLD设计,CPLD是一种整合性较高的逻辑逻辑元件。有高整合性的特点,故其有性能提升,可靠度增加,PCB面积减少和成本低等优点。
  • 热度 23
    2015-3-24 13:48
    1444 次阅读|
    0 个评论
       前言   调相脉冲信号可以获得较大的压缩比,它作为一种常用的脉冲压缩信号,在现代雷达及通信系统中获得了广泛应用。随着近年来软件无线电技术和电子技术的发展, DDS (直接数字频率合成)用于实现信号产生的应用越来越广。DDS技术从相位的概念出发进行频率合成,它采用数字采样存储技术,可以产生点频、线性调频、ASK、PSK及FSK等各种形式的信号,其幅度和相位一致性好,具有电路控制简单、相位精确、频率分辨率高、频率切换速度快、输出信号相位噪声低、易于实现全数字化设计等突出优点。   目前,DDS的 ASIC 芯片如AD公司的AD9852、AD9854等,对于相位调制信号,可方便地产生BPSK,但是,对 QPSK 或8PSK等则实现困难,它们对控制更新脉冲要求极高,一旦偏差超过DDS内极高的系统时钟,输出相位就会错误。本文介绍了一种通过 FPGA 实现QPSK或更高阶PSK信号的方法,可灵活地通过上位机的PCI总线控制参数,产生不同载波频率、不同脉冲宽度、不同占空比、不同重复周期等的QPSK信号,对雷达等系统的设计者具有很好的借鉴意义。    QPSK 信号源 的设计方案   DDS原理   DDS是一种全数字化的频率合成器,由相位累加器、正弦波形ROM存储器、D/A转换器和低通滤波器构成,其基本原理如图1。   输出信号的频率为fout=fclk?Δφ/2N,而最小频率分辨率为Δfo=fomin=fo/2N,可见改变频率控制字N即可改变输出信号的频率。当参考时钟频率给定后,输出信号的频率取决于频率的控制字,频率分辨率取决于累加器的位数,相位分辨率取决于ROM的地址线位数,幅度量化取决于ROM的数据字长和D/A转换器的位数。   为了提高DDS输出信号的频谱指标和降低正弦的ROM存储器,近来发展了如在相位截断后加数字反sinc滤波,利用三角函数对称性只存取1/4周期查找表,基于CORDIC、泰勒级数加权的频率合成方法等技术。    QPSK信号源的设计方案   在FPGA中,通过正弦查找表和相位累加器实现DDS,通过计数器实现QPSK信号的起停控制。在计数器计数到零时,设置标志位,读取寄存器中的QPSK控制码,从而设置初始相位。在计数到根据QPSK脉冲宽度设定的值后,计数器置0并重新开始计数。运行完设置码元的个数及次数后,使能输出禁止标志位。   QPSK信号的重复周期也通过计数器实现。根据周期的范围和系统时钟,设置计数器的位数并使其满足要求。在计数器计数到设定值后,清除输出禁止的标志位。需要注意的是周期计数器应该与QPSK码元宽度计数器同步。   QPSK信号参数控制通过PCI总线实现,包括QPSK信号的开始、结束、码元个数、次数、码字以及QPSK信号重复周期等。在FPGA内通过寄存器读取、保存参数。    硬件设计   系统组成与结构   FPGA选用XILINX公司Spartan3系列的XC3S1000,为100万门大规模可编程器件。它内部具有432kbit的Block Ram和120kbit的Distributed Ram;4个时钟管理单元DCM;24个乘法器。配置采用XILINX的专用PROM XCF04S,4M位的串行Flash PROM。XC3S1000通过XCF04S实现主串配置,M0、M1、M2均置低。系统框图如图2。   高速DAC选用AD公司的AD9767,它是双通道14位精度的高速CMOS DAC。它内部集成1.2V的电压基准,SFDR和IMR可达83dBc,最高转换率为125MSPS,满量程电流可调范围为2mA~20mA,两路D/A输出后经两片高速、宽带放大器AD8047放大,然后经滤波器输出,AD8047增益为1,实现电流到电压的转换。   PCI接口芯片采用PCI9054,是PlX公司应用广泛的32位、33MHz的PCI桥芯片,实现PCI总线和本地总线的转换。PCI9054可工作在主、从模式,支持DMA,支持猝发操作。PCI9054的上电通过2k位的EEPROM NM93CS56配置,包括PCI9054的本地总线控制、PCI配置空间寄存器的配置等。PCI9054在PCB设计中应注意PCI总线和时钟的长度约束。   为了提高板上的存储容量,FPGA通过CYPRESS的CY7C1372C-200扩展了(512k×36)/1M×18位的ZBT SRAM。以零等待状态读写速率可达200MHz,最大访问时间为3ns,支持Burst操作,适用高速的数据读写。   系统通过SMA外接时钟,同时内部50MHz晶振经时钟缓冲芯片CY2308输出,分别作为PCI9054和FPGA的本地时钟。外接时钟的输入阻抗为50Ω,注意通过信号源提供时钟时应使其峰峰值在2V以上。   复位电路采用MAXIM的看门狗及电压监控芯片MAX708实现。   电源由PCI总线提供,3.3V电压直接从PCI总线的3.3V引出,通过凌特公司的LT1764实现2.5V电压,采用TI公司的TPS54612实现1.2V电压,分别作为FPGA的辅助电压Vccaux和核电压Vccint。TPS54612输入电压为3-6V,在3.3V、5V均可使用,输出可高达6A,且开关控制器内部集成FET场效应管,方便应用。AD8047的正负电压输入分别为+5V和-5V,分别由从PCI总线接入的+12V和-12V电压经稳压器7805和7905提供。    软件设计   QPSK信号的生成   QPSK信号产生的原理在前面已作详述,FPGA的外接60MHz时钟通过内部的时钟管理器倍频实现120MHz时钟,通过Block RAM 资源实现只读ROM,然后通过累加器进程、读QPSK码字进程、重复周期计数进程等实现DDS功能,通过乘法器还可实现输出信号的幅度控制。以下是部分源程序,采用Verilog HDL语言编写。   时钟管理单元,使用XILINX的DCM实现倍频,由60MHz变为120MHz。   dcm60 dcmclk60 (   .CLKIN_IN(clk_in),   .RST_IN(~reset),   .CLKIN_IBUFG_OUT(clk_ibufg_out),   .CLK0_OUT(clk_0),   .CLK2X_OUT(clk_2x),   .LOCKED_OUT(locked_out60) );   单口只读ROM,使用IP核,实现正弦查找表,数据宽度为14位,深度为16384字(14地址位)。ROM核接收的数据文件为COE文件,然后转换为mif二进制文件格式,COE文件可通过C语言或MATLAB生成。ROM核的实现如下:   rom16384 rom16384(   .addr( DDS _addr),   .clk(clk_2x),   .dout(dds_data),   .sinit(~reset),);   相位累加器位数设置为32位,系统时钟120MHz,这样可实现小于0.03Hz的频率分辨率,查找表相位截取低14位。累加器进程如下:    always@(posedge clk_2x)   begin   if(dds_countT ==1'b0) //dds_countT为脉冲宽度计数器,时钟为clk_2x。   dds_start=1'b1;   else   dds_start=1'b0;   if(dds_stop=1'b0 dds_stop_set=1'b0) //dds_stop是周期起停标志,dds_stop_set是上位机控制起停标志   begin   if(dds_start==1'b1 )   case (psk)   2'b00:dds_acc=phase1;   2'b01:dds_acc=phase2;   2'b10:dds_acc=phase3;   2'b11:dds_acc=phase4;   endcase;   else   dds_acc=dds_acc + dds_freq_add;//dds_freq_add对于设置的 QPSK 载波频率。   end;   if(dds_countT=countF_set dds_countT1) // countF_set为设置的QPSK脉冲宽度对应的数值。   dds_addr=dds_acc ;   else   dds_addr=14'b00000000000000;   end;   end;    DDS信号的控制实现   上位机通过PCI总线实现信号参数的读写控制。因本系统中只需PCI实现信号参数的控制,数据量不大,故配置PCI9054为PCI的从目标(Slave),C模式。   在 FPGA 中实现参数寄存器,实时读取PCI总线的数据并更新。FPGA本地总线的读写通过三态门控制。实现代码如下:   assign data_inout=(enout)? data_out:32'bzzzzzzzz;    always@(clk )   begin   data_in=data_inout;   end   读写实现通过状态机程序实现,读写状态流程图如图3。    上位机程序设计   上位机安装Windows系统,传统上,PCI的驱动通过微软的DDK实现WDM驱动程序,本 信号源 设计中采用Windriver软件,可方便地读写主机给PCI9054系统板分配的内存及I/O资源,并可生成inf文件和基于VC等开发环境的程序文件。    结论   试验表明,以本文所介绍的方法产生的信号源具有很好的性能,5MHz时连续波点频的杂散SFDR达到70dB以上,输出信号的频率覆盖短波波段,可达30MHz以上。在实际应用中,还可以加上线性调频等其他信号形式。若信号频段在超短波以上,可用DDS产生固定中频,经数字上变频和DAC芯片(如AD公司的AD9857)上变频后输出,该方法具有很强的可扩展性。
  • 热度 16
    2014-2-15 18:01
    940 次阅读|
    0 个评论
       前言   调相脉冲信号可以获得较大的压缩比,它作为一种常用的脉冲压缩信号,在现代雷达及通信系统中获得了广泛应用。随着近年来软件无线电技术和电子技术的发展, DDS (直接数字频率合成)用于实现信号产生的应用越来越广。DDS技术从相位的概念出发进行频率合成,它采用数字采样存储技术,可以产生点频、线性调频、ASK、PSK及FSK等各种形式的信号,其幅度和相位一致性好,具有电路控制简单、相位精确、频率分辨率高、频率切换速度快、输出信号相位噪声低、易于实现全数字化设计等突出优点。   目前,DDS的 ASIC 芯片如AD公司的AD9852、AD9854等,对于相位调制信号,可方便地产生BPSK,但是,对 QPSK 或8PSK等则实现困难,它们对控制更新脉冲要求极高,一旦偏差超过DDS内极高的系统时钟,输出相位就会错误。本文介绍了一种通过 FPGA 实现QPSK或更高阶PSK信号的方法,可灵活地通过上位机的PCI总线控制参数,产生不同载波频率、不同脉冲宽度、不同占空比、不同重复周期等的QPSK信号,对雷达等系统的设计者具有很好的借鉴意义。    QPSK 信号源 的设计方案   DDS原理   DDS是一种全数字化的频率合成器,由相位累加器、正弦波形ROM存储器、D/A转换器和低通滤波器构成,其基本原理如图1。   输出信号的频率为fout=fclk?Δφ/2N,而最小频率分辨率为Δfo=fomin=fo/2N,可见改变频率控制字N即可改变输出信号的频率。当参考时钟频率给定后,输出信号的频率取决于频率的控制字,频率分辨率取决于累加器的位数,相位分辨率取决于ROM的地址线位数,幅度量化取决于ROM的数据字长和D/A转换器的位数。   为了提高DDS输出信号的频谱指标和降低正弦的ROM存储器,近来发展了如在相位截断后加数字反sinc滤波,利用三角函数对称性只存取1/4周期查找表,基于CORDIC、泰勒级数加权的频率合成方法等技术。    QPSK信号源的设计方案   在FPGA中,通过正弦查找表和相位累加器实现DDS,通过计数器实现QPSK信号的起停控制。在计数器计数到零时,设置标志位,读取寄存器中的QPSK控制码,从而设置初始相位。在计数到根据QPSK脉冲宽度设定的值后,计数器置0并重新开始计数。运行完设置码元的个数及次数后,使能输出禁止标志位。   QPSK信号的重复周期也通过计数器实现。根据周期的范围和系统时钟,设置计数器的位数并使其满足要求。在计数器计数到设定值后,清除输出禁止的标志位。需要注意的是周期计数器应该与QPSK码元宽度计数器同步。   QPSK信号参数控制通过PCI总线实现,包括QPSK信号的开始、结束、码元个数、次数、码字以及QPSK信号重复周期等。在FPGA内通过寄存器读取、保存参数。    硬件设计   系统组成与结构   FPGA选用XILINX公司Spartan3系列的XC3S1000,为100万门大规模可编程器件。它内部具有432kbit的Block Ram和120kbit的Distributed Ram;4个时钟管理单元DCM;24个乘法器。配置采用XILINX的专用PROM XCF04S,4M位的串行Flash PROM。XC3S1000通过XCF04S实现主串配置,M0、M1、M2均置低。系统框图如图2。   高速DAC选用AD公司的AD9767,它是双通道14位精度的高速CMOS DAC。它内部集成1.2V的电压基准,SFDR和IMR可达83dBc,最高转换率为125MSPS,满量程电流可调范围为2mA~20mA,两路D/A输出后经两片高速、宽带放大器AD8047放大,然后经滤波器输出,AD8047增益为1,实现电流到电压的转换。   PCI接口芯片采用PCI9054,是PlX公司应用广泛的32位、33MHz的PCI桥芯片,实现PCI总线和本地总线的转换。PCI9054可工作在主、从模式,支持DMA,支持猝发操作。PCI9054的上电通过2k位的EEPROM NM93CS56配置,包括PCI9054的本地总线控制、PCI配置空间寄存器的配置等。PCI9054在PCB设计中应注意PCI总线和时钟的长度约束。   为了提高板上的存储容量,FPGA通过CYPRESS的CY7C1372C-200扩展了(512k×36)/1M×18位的ZBT SRAM。以零等待状态读写速率可达200MHz,最大访问时间为3ns,支持Burst操作,适用高速的数据读写。   系统通过SMA外接时钟,同时内部50MHz晶振经时钟缓冲芯片CY2308输出,分别作为PCI9054和FPGA的本地时钟。外接时钟的输入阻抗为50Ω,注意通过信号源提供时钟时应使其峰峰值在2V以上。   复位电路采用MAXIM的看门狗及电压监控芯片MAX708实现。   电源由PCI总线提供,3.3V电压直接从PCI总线的3.3V引出,通过凌特公司的LT1764实现2.5V电压,采用TI公司的TPS54612实现1.2V电压,分别作为FPGA的辅助电压Vccaux和核电压Vccint。TPS54612输入电压为3-6V,在3.3V、5V均可使用,输出可高达6A,且开关控制器内部集成FET场效应管,方便应用。AD8047的正负电压输入分别为+5V和-5V,分别由从PCI总线接入的+12V和-12V电压经稳压器7805和7905提供。    软件设计   QPSK信号的生成   QPSK信号产生的原理在前面已作详述,FPGA的外接60MHz时钟通过内部的时钟管理器倍频实现120MHz时钟,通过Block RAM 资源实现只读ROM,然后通过累加器进程、读QPSK码字进程、重复周期计数进程等实现DDS功能,通过乘法器还可实现输出信号的幅度控制。以下是部分源程序,采用Verilog HDL语言编写。   时钟管理单元,使用XILINX的DCM实现倍频,由60MHz变为120MHz。   dcm60 dcmclk60 (   .CLKIN_IN(clk_in),   .RST_IN(~reset),   .CLKIN_IBUFG_OUT(clk_ibufg_out),   .CLK0_OUT(clk_0),   .CLK2X_OUT(clk_2x),   .LOCKED_OUT(locked_out60) );   单口只读ROM,使用IP核,实现正弦查找表,数据宽度为14位,深度为16384字(14地址位)。ROM核接收的数据文件为COE文件,然后转换为mif二进制文件格式,COE文件可通过C语言或MATLAB生成。ROM核的实现如下:   rom16384 rom16384(   .addr( DDS _addr),   .clk(clk_2x),   .dout(dds_data),   .sinit(~reset),);   相位累加器位数设置为32位,系统时钟120MHz,这样可实现小于0.03Hz的频率分辨率,查找表相位截取低14位。累加器进程如下:    always@(posedge clk_2x)   begin   if(dds_countT ==1'b0) //dds_countT为脉冲宽度计数器,时钟为clk_2x。   dds_start=1'b1;   else   dds_start=1'b0;   if(dds_stop=1'b0 dds_stop_set=1'b0) //dds_stop是周期起停标志,dds_stop_set是上位机控制起停标志   begin   if(dds_start==1'b1 )   case (psk)   2'b00:dds_acc=phase1;   2'b01:dds_acc=phase2;   2'b10:dds_acc=phase3;   2'b11:dds_acc=phase4;   endcase;   else   dds_acc=dds_acc + dds_freq_add;//dds_freq_add对于设置的 QPSK 载波频率。   end;   if(dds_countT=countF_set dds_countT1) // countF_set为设置的QPSK脉冲宽度对应的数值。   dds_addr=dds_acc ;   else   dds_addr=14'b00000000000000;   end;   end;    DDS信号的控制实现   上位机通过PCI总线实现信号参数的读写控制。因本系统中只需PCI实现信号参数的控制,数据量不大,故配置PCI9054为PCI的从目标(Slave),C模式。   在 FPGA 中实现参数寄存器,实时读取PCI总线的数据并更新。FPGA本地总线的读写通过三态门控制。实现代码如下:   assign data_inout=(enout)? data_out:32'bzzzzzzzz;    always@(clk )   begin   data_in=data_inout;   end   读写实现通过状态机程序实现,读写状态流程图如图3。    上位机程序设计   上位机安装Windows系统,传统上,PCI的驱动通过微软的DDK实现WDM驱动程序,本 信号源 设计中采用Windriver软件,可方便地读写主机给PCI9054系统板分配的内存及I/O资源,并可生成inf文件和基于VC等开发环境的程序文件。    结论   试验表明,以本文所介绍的方法产生的信号源具有很好的性能,5MHz时连续波点频的杂散SFDR达到70dB以上,输出信号的频率覆盖短波波段,可达30MHz以上。在实际应用中,还可以加上线性调频等其他信号形式。若信号频段在超短波以上,可用DDS产生固定中频,经数字上变频和DAC芯片(如AD公司的AD9857)上变频后输出,该方法具有很强的可扩展性。
相关资源