今天给大侠带来基于FPGA的扩频系统设计,由于篇幅较长,分三篇。今天带来第一篇,上篇。话不多说,上货。
导读
在无线通信系统中,普遍使用扩频通信技术,因此扩频技术对通信系统具有重要的现实意义。直接序列扩频技术是应用最广的一种扩频技术,FPGA具备高速度的并行性特点在无线通信系统中的优势日益增强,利用FPGA实现直接序列扩频技术,可增大传输速率,可以使扩频技术有更好的发展与应用。
本篇利用本原多项式产生伪随机序列用作扩频,通过同步模块对扩频后的信号进行捕获,通过直接序列解扩模块进行解扩。本篇给出了编解码、扩频解扩、同步的整体方案,使用Quartus实现功能,并结合Matlab和ModelSim对模块进行调试和测试,实现扩频通信模块的搭建仿真,验证其设计的正确性。首先概述了方案设计与论证、整体方案的设计、各个模块的设计、个别模块的调试与各个模块的仿真验证。本篇主要实现的模块有:汉明编码模块、直接序列扩频模块、量化器模块、同步模块、直接序列解扩模块和汉明译码模块。各位大侠可依据自己的需要进行阅读,参考学习。
第一篇内容摘要:本篇会介绍绪论,包括课题研究背景和发展现状和课题研究意义;还会介绍系统整体设计与方案论证,包括系统设计要求、系统整体架构、软件设计、编码方式方案论证、扩频方式方案论证、同步算法方案论证等相关内容。
引言
扩频技术是通信系统中的重要组成部分,具有低的截获率、信号隐蔽性强、易于组网、多用户随机选址能力强和抗干扰能力强等优点。扩频技术是通过一个独立的码序列、编码及调制的方法来实现的。在接收端利用相同的伪随机序列进行同步和解扩,再进行译码,达到恢复所传信息数据的目的。近年来随着超大规模集成电路和微处理技术的快速发展,使扩频技术在军用及民用领域具有深远的意义。
本篇设计了一种基于FPGA的扩频模块,并设计实现了信息数据的编解码、扩频解扩以及同步等功能。本设计采用汉明编码对信息数据进行编码,编码后加入同步头,为接收端同步做准备。加入同步头的数据与伪随机序列进行异或,达到扩宽信号带宽的目的,再加入噪声送入接收端。接收端产生和发送端相同伪随机序列作为同步的本地参考伪随机序列模板,接收数据与模板进行最小二乘法计算,结果与预设阈值进行比较,小于阈值则被断定为对应的数值,用来实现同步和解扩,再通过汉明译码模块对数据进行译码和纠错,恢复原始信息数据。
一、绪论
扩频系统最早可以追溯到20世纪20年代左右,扩频通信就有了初步的应用。但是一直到20世纪年代中期,扩频系统才真正应用和发展起来。与很多的通信技术类似,扩频技术最初也应用于保密通信和制导系统等军事技术。除了在军事通信中的应用,扩频技术在无线通信领域也有发展。我国主要将扩频技术应用在20世纪70年代后,用于建设军用的航天器,具有较强的链路防护且具有很强的生存能力。建成后扩频技术成为军用航天器的重要组成部分,成为军用航天器正常运行提供重要保障。目前扩频通信技术已经在测距、卫星通信、GPS导航定位、移动通信、电子对抗、跟踪、遥控和蓝牙技术等方面广泛应用。
扩频通信技术具有很多独特的优点:具有抗干扰能力强和截获率低等独特优点,而且具备码分多址(CDMA,Code Divided Multiple Access)或称为扩频多址(SSMA,Spread SpectrumMultiple Access)的能力,因此广泛应用于商业、银行、宾馆、能源和交通业等行业。
因为应用广泛受到世界各国的特别关注,尤其是在近年来随着超大规模的集成电路和微处理技术快速发展,使得扩频技术在各个行业得到更多的发展。随着数字技术的飞速发展,数字扩频技术不仅完成模拟扩频的所有功能,而且在性能和精度方面都有很大的优势,所以数字扩频技术将在未来被更广泛的应用。
扩频通信是一种利用比原始信号本身频带宽的信号的通信方式,其全称为扩展频谱通信(Spread Spectrum Communication)。在扩频通信技术中,发送端将原始信号的频带进行扩展,得到扩频信号,然后在接收端通过对信号进行解扩处理,恢复原始信号。根据通信系统产生的扩频方式,可以将扩频通信分为5类:直接序列扩展频谱(Direct Sequence Spread Spectrum Communication Systems)、频率跳变扩频通信系统(Frequecy Hopping Spread Spectrum Communication Systems,FH-SS)、跳时扩频通信系统(Time Hopping Spectrum Communication Systems,TH-SS)、线性脉冲调频系统(chirp)和混合扩频通信系统,扩频技术在未来无线通信技术中,仍是重要部分,很多方面需要继续去探索,因此扩频技术的研究不能停滞不前。而FPGA属于并行器件,具有速度快、灵活性好,处理能力强,易于扩展等特点,因此,研究基于FPGA的扩频技术研究具有重要的意义。
二、系统整体设计与方案论证
基于FPGA的扩频模块设计,任务要求在10MHz的系统时钟下,能够具有以下功能:
a. 具有对发送或接收数据进行编码译码功能;
b. 具有对发送或接收数据进行扩频解扩功能;
c. 具有并串之间转换功能;
d. 具有对接收数据同步(比特同步)功能;
e. 数据发送端8bits宽度,数据接收端8bits宽度,采用fifo构成接口(忽略PCM和频带调制);
f. 逻辑资源占用率不超过80%。
基于FPGA扩频模块主要由六大模块组成:编码模块、扩频模块、量化器模块、同步模块、解扩模块和译码模块。系统大致流程为:fifo作为接口读取原始信号后送给编码模块,编码模块对数据进行编码,加入同步头送入扩频模块进行并串转换和扩频,将扩频后的信号经过量化器对其进行量化处理,量化后的信号引入一定范围的噪声干扰。接收端接收到数据后,利用同步模块采用相关同步算法或最小二乘法算法进行同步计算后,将同步后的数据信息送入译码模块进行译码得到原始信号,最后通过fifo输出。
整体架构如图2.1所示。
图2.1 整体架构图
软件流程如图2.2所示,首先获取原始数据信号,对原始数据信号进行编码,对编码后的信号进行扩频,扩频后的数据添加同步头,通过并串转换成为单比特数据,量化器将单比特数据变成8bit有符号数据,然后对信号引入噪声,加入噪声的信号利用同步模块进行同步,识别同步头后对信号进行解扩,解扩后利用译码模块对数据进行译码输出原始信号。
图2.2 软件流程设计图
方案一:编码模块若采用汉明码编码方式。汉明码是一种线性分组码。汉明码是指将数据信息码分成为长度为m的数据段,在每一段数据后面添加n位的校验码,这样编码方式为汉明码;
方案二:编码模块若采用奇偶监督码方式。奇偶监督码分为奇数监督码和偶数监督码两种,两者的原理相同。在偶数监督码中,与数据信息位宽无关,监督位仅1位,当数据中的“1”的数目为偶数时,即满足an-1^an-2^…a0=0,其中a0为监督位;在奇数监督码中,和偶数监督码相似,当数据中的“1”的数目为奇数时,即满足an-1^an-2^…a0=1,其中a0为监督位。
表2.1 编码方式性能对比表
根据表2.1编码方式性能对比表所述,汉明码编码方式具有纠错能力,而奇偶监督码不具有纠错能力,实践中若出现编码错误,汉明码译码可以将错误信息位改正,综合考虑选择方案一,编码模块采用汉明码编码方式进行编码。
方案一:扩频模块若采用直接序列扩频。直接序列扩频,简称直扩扩频(DSSS)。在发送端传送的数据信息需要经过信道编码后,与本原多项式产生的伪噪声序列进行模2加(异或)完成扩频,在接收端用相同的扩伪随机序列对其解扩,解扩后的数据进行译码,达到恢复原始数据信息的目的;
方案二:扩频模块若采用跳频扩频。跳频扩频通信系统简称跳频通信,它是利用伪随机序列去控制载波振荡器的频率,导致发送端的频率发生变化。跳频通信载波频率可随机进行选择,伪随机序列对此可以控制载波频率的输出。接收端频率可按照相同频率跳变,产生参考本振信号,经混频后得到固定的中频信号,可实现解跳过程;
方案三:扩频模块采用跳时扩频。时间跳变是一种扩频技术,简称TDMA,与跳频系统相似,跳时是使发射信号在时间轴上离散地跳变。将时间轴分成许多时隙(时片),若干个时片组合成跳时时间帧,扩频码序列决定哪个时隙进行发送数据信息。在接收端,当接收数据信号同步后,通过开关按时的进行解跳,就能够正确恢复原始数据。
表2.2 扩频方式性能对比表
根据表2.2扩频方式性能对比表所述,直接序列扩频方式比其他两个方式实现较容易、抗干扰能力较强且可以独立使用,综合优缺点考虑,选择方案一,扩频模块采用直接序列扩频方式进行扩频。
方案一:同步模块若采用最小二乘法。最小二乘法是一种数学优化技术。它通过最小化误差的平方来和数据进行匹配。它可以简便地求得接收信号,并使得这些接收信号与伪随机序列之间误差的平方和为最小。利用接收的数据信号与模板进行最小二乘法算法进行计算与预先设定的阈值比较,已达到同步的目的;
方案二:同步模块若采用线性相关法。线性相关法利用起始位置不确定范围的PN码信号捕获,使本地PN码信号与其同步。接收信号与模板进行计算,获得二者的相似程度,并与阈值进行比较,用来判断是否为信号的帧头,确定为有用信号后,开始对信号进行继续捕获。
表2.3 同步算法性能对比表
根据表2.3同步算法性能对比表所述,最小二乘法比线性相关法能够接受更大的误差范围,能够更准确的判断接收信号数值,综合考虑,选择方案一,同步模块采用最小二乘法进行同步。
本篇到此结束,下一篇带来基于FPGA的扩频系统设计(中),介绍软件开发平台及软件模块设计,包括FPGA芯片、设计和仿真验证平台、汉明码编码设计模块、直接序列扩频模块原理、量化器模块设计、同步模块设计、直接序列解扩模块设计、汉明码译码模块设计等相关内容。
END
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!
精彩推荐
FPGA零基础学习:IP CORE 之 FIFO设计
Signal tap 逻辑分析仪使用教程
FPGA零基础学习:SPI 协议驱动设计
“FPGA产品设计与研发 ” 零基础入门及就业