element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
    About the element14 Community
    About Us
    • Watt's Up?
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Forum 直扩OQPSK系统载波跟踪的设计及FPGA实现
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 0 replies
  • Subscribers 567 subscribers
  • Views 208 views
  • Users 0 members are here
  • 相位调制
  • 载波同步
  • 波形存储
Related

直扩OQPSK系统载波跟踪的设计及FPGA实现

Flush
Flush over 15 years ago

引言

载波同步是无线通信系统中一个重要的实际问题,是基带信号处理的关键技术。导致载波频率及相位不确定性的主要因素有:一是频率源的漂移会引起载波频率的漂移;二是电波传输的时延会产生载波相位的偏移;三是多普勒频移,即在发射机和接收机产生相对移动时,会产生多普勒频移,从而导致载波频率的偏移;四是多径效应,即信号在传输过程中由于多路径(发射、折射1传播引起多径效应,从而带来载波频率和相位的延迟。

1 OQPSK调制原理

偏移四相相移键控(Offset QPSK,OQPSK)与QPSK信号常见于扩展频谱调制,与QPSK信号类似,OQPSK信号的Q路信号相比I路信号延迟半个码元宽度。其结果是消除了已调信号中突然相移π的现象。这样,每二分之一码片时间信号就只能发生+π/2的变化。一般扩谱QPSK或OQPSK信号可用下式表示:
image

 

式中,θd(t)表示数据相位调制,c1(t)和c2(t)是相互独立的正交扩谱码,一般采用双极性不归零码(±1)。c1(t)和c2(t)码的元宽度相同。若c1(t)和c2(t)在时间上同步,即为QPSK调制。若c2(t)比c1(t)延迟半个码片时间,则为OQPSK调制。其中同相通道和正交通道的数据可以不同,这种调制叫双通道QPSK或OQPSK调制。其输出信号可以表示为:
image

 

另外,QPSK和OQPSK还允许同相通道和正交通道的发射功率不同。

2 OQPSK调制载波跟踪环的设计

由于系统收发时钟的不同源和多谱勒频移等问题,通常系统的收发会存在一定的频差,并且频差是随着时间变化的。对于OQPSK调制信号,这种频差所造成的后果是很严重的,不仅会引起信噪比下降,而且还会引起信号畸变,故应引入载波跟踪。下面以直扩OQPsK系统为例来说明其载波跟踪电路的设计。

图1所示是扩频OQPSK信号载波跟踪环的原理图。图中的r(k)为经过中频放大后的采样信号,可由下式表示:
image

 

其中,P为信号幅度,dI、dQ为I、Q两路信息数据,cI、cQ为I、Q两路扩频码序列,n(k)为噪声分量,信源编码方式为不归零码。
image

 

载波NCO输出信号为:image

可由其对两路正交信号进行频率和相位调整。为了抑制倒相现象的发生,可将I支路分别与CI(k)和CQ(k)相乘,并进行解扩处理。若扩频码已经取得完全同步,因I、Q两路扩频码近似正交,则RII(t)远大于RIQ(t)和噪声分量。然后由此误差来控制载波NCO并产生相应载波,再跟踪输入信号载波。

系统仿真时,可取10个二进制双极性码为信码,中频取7.2 MHz,载波NCO相位累加器的位宽为18位,载波NCO的参考频率为28.8 MHz。这样,载波NCO的输出频率精度为28.8 MHz/218≈0.1 kHz 。然后由NCO频率控制字公式k=f02N/fc,即可计算频率控制字的输入。

跟踪环路中累加器的长度为一个信码的长度即一个扩频码周期,由此发射载频和本地载波跟踪环路,即可输出瞬时相位误差,其具体数据如表1所列。
image

 

根据表1中的数据,由式ω=0θ/(NTpn)可计算出补偿频率,经验证与频偏大致相同(误差不超过300 Hz)。其中θ为表1中的误差,N为扩频码序列的长度;Tpn为扩频码一个码片时间。把该补偿频率与载波NCO系统之前输出的频率相加,然后计算出载波NCO频率控制字的输入,即可产生所需频率。在实际项目开发中,载波跟踪环路算法可在FPGA中实现。

3 载波NCO的设计

载波NCO可由ALTERA提供的IP核生成,也可由自己设计,图2所示是载波NCO的设计原理图。
image

 

由图2可见,载波NCO主要由相位累加器、相位调制器和波形存储器三部分组成。

3.1 相位累加器

相位累加器是NCO的核心,可完成相位累加功能。每来一个时钟脉冲,累加器都将频率控制字FW(N-1:0)与寄存器输出的相位累加数据相加,再把相加后的结果送至累加器的输入端。同时寄存器将加法器在上一个时钟作用后产生的相位数据反馈到加法器的输入端,以使加法器在下一个时钟作用下继续与频率控制字进行相加。这样,相位累加器即可在时钟的作用下进行相位累加。每当累加器加满时,产生一次溢出,以控制各寄存器异步清零,从而完成一个周期动作。而当下一时钟来时,再开始下一周期的累加。这里的频率控制字与输出频率f0的关系式为:

k=f02N/f

3.2 相位调制器

相位调制器可接收相位累加器的相位输出。这里应加一个相位偏移值,主要用于实现信号的相位调制,如PSK(相移键控)等,在不使用时可以去掉该部分,或加一个固定的相位控制字。

3.3 波形存储器

波形存储器即正弦ROM查找表,它采用相位累加器输出的数据作为波形存储器的取样地址,然后进行波形的相位一幅值转换,从而在给定的时间上确定输出的波形的抽样幅值。N位的寻址ROM相当于把0~360°的正弦信号离散成具有2N个采样值的序列。若波形有D位数据位,则2N个采样值的幅值将以D位二进制数固化在ROM中,这样,按照地址的不同,就可以输出相应的正弦信号的幅值。

 

4 结束语

本文介绍了直扩OQPSK系统载波跟踪的原理及FPGA实现方法。经实际的系统调试证明,该方法能有效的抑制OQPSK调制的倒相现象,即能在相位误差积累到一定程度后,有效地反馈到载波NCO的输入端.从而有效实现对高速运动目标的载波跟踪。

  • Sign in to reply
  • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube