一、实验目的
1.了解多载波调制的一般原理。
2.掌握OFDM的调制解调算法。
3.训练在实际通信系统中产生OFDM信号的能力。
4.学习使用逻辑分析仪与Matlab采集并观测分析信号的方法。
二、实验内容
1.使用Matlab产生OFDM信号。
2.将产生的OFDM信号,输出至FPGA硬件电路板,并由逻辑分析仪采样下数据,送至Matlab分析。
3.观测频域和时域波形。
4.抑制30%带宽子载波后,观测信号的时域和频域波形。
三、实验设备
1.Matlab环境
2.逻辑分析仪
3.FPGA硬件单板
(注:允许使用实验室提供的硬件之外的智能控制部件,比如单片机或自制电路。实验的各项其它要求不变。)
四、实验原理
OFDM是多载波调制的一种。其主要思想就是将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,然后分别调制到个个子载波上进行传输。由于每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上的可以看成平坦性衰落,所以信道均衡变得相对容易。在向B3G/4G演进的过程中,OFDM是关键的技术之一,可以结合分集,时空编码,干扰和信道间干扰抑制以及智能天线技术,最大限度的提高了系统性能。
在OFDM系统的发射端,数据块与数据块之间需要加入保护间隔。加入保护间隔的目的,主要是为了消除多径时延所造成的IBI(相邻块之间的干扰)。其方法是在OFDM符号保护间隔内填入CP(循环前缀),以保证在FFT周期内OFDM符号的时延副本内包含的波形周期个数也是整数。这样,时延小于保护间隔的信号就不会在解调过程中产生IBI。
在传统的频分复用(FDM)系统中,整个带宽分成N个子频带,子频带之间不重叠,为了避免子频带间相互干扰,频带间通常加保护带宽,但这会使频谱利用率下降,如图1。为了克服这个缺点,OFDM采用N个重叠的子频带,子频带间正交,因而在接收端无需分离频谱就可将信号接收下来,如图2。OFDM系统的一个优点是正交的子载波可以利用快速傅利叶变换(FFT/IFFT)实现调制和解调。对于常见的基于2的IFFT算法,其复运算复杂度为O(NlogN),可显著降低运算复杂度。
图1
图2
五、设计要求
1.使用Matlab产生多载波调制OFDM信号:
多载波传输把已经过调制映射的信号(QAM,MPSK等)调制到多个子载波上并发射出去。OFDM的各个子载波之间相互正交,其表达式如下:
其中:为时域模拟波形
为第l的数据块中第k个子载波上的数据信号
为基带成形滤波器冲击响应,认为是矩形
是每个子载波间的频率间隔
T是符号宽度,为保证正交特性,有
N 是子载波总数
对进行间隔的采样可以得到:
……………………….(1)
注:上式对信号的能量做了归一化。
2.将产生的OFDM信号,输出至FPGA硬件电路板:
将要求1中产生的信号保存成FPGA可识别使用的文件。保存10个左右的数据块信号。使用verilog语言编写FPGA逻辑。FPGA所完成的功能为将OFDM信号数据转换为实际数字信号,发送至TP管脚(Test Point测试管脚)。
3.使用逻辑分析仪采样下FPGA输出数据,使用Matlab分析数据,观测信号频域和时域波形:
将逻辑分析仪与FPGA的TP管脚连接,采样FPGA的数据输出。
4.抑制30%带宽子载波后,观测基带模拟信号的时域和频域波形:
抑制30%子载波后,重复要求1~3。说明子载波抑制的方法。
六、设计难点提示
1.基带信号生成
可使用(1)生成基带信号。在(1)生成的信号的基础上还需要加上保护间隔CP与升采样滤波。建议升采样倍数为4倍。升采样滤波的作用为防止接受信号混叠与带外信号抑制。建议在matlab中使用升余弦滚降滤波器,滚降因子0.5左右。
最终输出信号需要进行归一化与量化,并生成FPGA可使用的coe文件。Coe文件格式参见附录。要求输出的信号为IQ双路信号,每一路信号为8bit有符号数。
推荐N的取值为1024或2048。要求仅80%左右的子载波上有有效信号,即抑制20%的子载波。CP长度为128。
2.FPGA发送数据逻辑设计
FPGA为可编程逻辑器件的一种,可使用verilog/VHDL硬件描述语言编写逻辑,之后将生成的文件烧写至FPGA。关于FPGA与verilog/VHDL更详细的知识内容,请善用身边资源,自行学习。
这里给出一种逻辑设计思路,供参考:(以xilinx提供的FPGA为例)
a)使用设计工具ISE中的IP core generator生成rom。
b)将Matlab产生的OFDM数据生成coe文件。
c)coe文件中的内容可加载到rom中。
d)将rom中的内容按一定的周期发送至TP。推荐发送时钟频率为2~10Mhz。
3.使用逻辑分析仪采集数据
逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要作用在于时序判定。由于逻辑分析仪不像示波器那样有许多电压等级,通常只显示两个电压(逻辑1和0),因此设定了参考电压后,逻辑分析仪将被测信号通过比较器进行判定,高于参考电压者为High,低于参考电压者为Low,在High与 Low之间形成数字波形。
将逻辑分析仪与FPGA硬件电路板的TP管脚连接后,可以将TP管脚上的信号采集。采集完成后保存成文件,供Matlab处理分析。为保证数据采集正确,FPGA需要提供数据时钟。该时钟为发送rom所使用的时钟。
4.Matlab分析信号的频谱
Matlab可以读取文件,具体方法参见其help或相关文档。将读取的数据进行处理,可观测其频谱。请注意采样频率与混叠之间的关系。
请在Matlab里绘出时域信号与信号频谱。
5.抑制30%子载波
额外抑制30%子载波,即抑制50%子载波,重复实验,观测信号波形与频谱。分析信号带宽与子载波数量间的关系。
七、实验作品评价中的可加分项目
1.过采样成形滤波器在FPGA内实现可加分,最高加8分。
2.其它自设功能项目,视情况决定加分。
图3 FPGA逻辑框图
八、附录
Coe文件的格式为:(格式供参考,内容无关)
Test.coe内容:(记事本打开)
MEMORY_INITIALIZATION_RADIX=16;
MEMORY_INITIALIZATION_VECTOR=
E8B92326,
1E7C1A27,
FE07F427,
151FFBE5,
1C771472,
E5C23F20,
F3AAFC68,
C52BEA4B
则Test.coe中的内容是8个32bit宽度的16进制数据下载本文