Walker-rx / Signal-equalization-using-MMSE

利用mmse完成光通信信号均衡,源自gen_data_final

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

过程:
1. 准备好要发送的序列,一个向量变量。把这个序列量化成整数,取值范围在-32768~32767(DAC16位)。比如首先把序列归一化成-1~1之间数,然后乘32767后用round函数来转化为定点数。
2. 排序。构造一个cell数组Tx,调用函数TxDataSort,X = TxDataSort(Tx)。把发射序列的数组排列成符合DAC时序要求的顺序
3. 调用trans2bin函数,transbin(X)。会将排序好的数组保存成临时的二进制文件以供后面C++程序读取。
4. 调用startUDP函数,startUDP()。调用C++代码,这一步会读取文件夹./binUDP里的待发送序列的二进制文件,并将其打包成UDP数据包发送给FPGA,在发送数据之前,C++程序通过序列长度,计算要发送的总的UDP数据包的数量以及数据在FPGA板上的DDR3内存中将要占用的大小,将这些信息通过一个UDP包发送给FPGA,之后紧接着将包含数据信息的UDP包发送到FPGA。FPGA将收到的数据写入DDR3内存,接收全部UDP包后(通过前面的控制信息包,FPGA端已经知道本次通信一共有多少个UDP数据包),读取DDR3内存中的数据送给DAC。FPGA将ADC采集的数据也写入DDR3内存,全部写入完成后,再通过以太网发送给PC,这时C++代码将接收到的数据保存成临时的二进制文件。
5. 调用bin2receive函数,rx = bin2receive(channel)。输入参数channel取值范围{1,2,3,4},表示四个ADC通道。rx的值域范围是-8192~8191(14位ADC)。

About

利用mmse完成光通信信号均衡,源自gen_data_final


Languages

Language:MATLAB 95.1%Language:C++ 4.1%Language:Objective-C 0.8%