主要内容

使用MATLAB系统对象和FPGA-in-the-Loop验证维特比译码器

这个例子向您展示了如何使用MATLAB®系统对象和FPGA-in-the-Loop来模拟一个维特比译码器实现FPGA硬件描述语言(VHDL)®。

FPGA设计的软件环境

在使用FPGA-in-the-Loop之前,确保你的系统环境访问FPGA设计软件的设置正确。您可以使用函数hdlsetuptoolpathFPGA设计软件添加到当前MATLAB系统路径。

发射FilWizard

单击打开脚本按钮。然后,启动费尔向导维特比例子来填充信息。输入你的FPGA板信息在第一步中,按照向导的每一步和生成FPGA编程文件和费尔系统对象。

filWizard (“viterbi_hdlsrc / viterbi_sysobj_fil.mat”);

FPGA程序

程序生成的FPGA编程文件。在继续之前,确保费尔向导完成FPGA编程文件生成。还要确保你的FPGA板打开并连接正常。

运行(“viterbi_block_fil / viterbi_block_programFPGA”);

设置仿真参数和通信系统进行实例化对象

下面的代码设置仿真参数和实例化表示信道编码器的系统对象,BPSK调制,AWGN信道,BPSK解调,出错率计算器。这些对象包括维特比译码器的系统,可以被认为是维特比高密度脂蛋白的试验台实现。

EsNo = 0;每个符号%能源在dB噪声功率谱密度比FrameSize = 1024;%在每一帧的比特数
%卷积编码器hConEnc = comm.ConvolutionalEncoder;% BPSK调制hMod = comm.BPSKModulator;% AWGN信道hChan = comm.AWGNChannel (“NoiseMethod”,信号噪声比(Es /不)”,“SamplesPerSymbol”,1“EsNo”,EsNo);% BPSK解调hDemod = comm.BPSKDemodulator (“DecisionMethod”,的“对数似然比,“方差”0.5 * 10 ^ (-EsNo / 10));%错误率计算器hError = comm.ErrorRate (“ComputationDelay”,100,“ReceiveDelay”58岁);

实例化FPGA-in-the-Loop系统对象

viterbi_block_fil是一个定制的FILSimulation系统对象,它代表的HDL实现维特比译码器的FPGA仿真系统上运行。

hDec = viterbi_block_fil;

运行仿真

这个例子在MATLAB模拟了BPSK通信系统将维特比译码器HDL实现通过FPGA-in-the-Loop系统对象。这部分的代码调用处理循环处理每个数据帧数据帧与1024位。

计数器数据= = 1:20480 / FrameSize兰迪([0 1]FrameSize 1);encodedData =步骤(hConEnc、数据);modSignal =步骤(hMod encodedData);receivedSignal =步骤(hChan modSignal);demodSignalSD =步骤(hDemod receivedSignal);quantizedValue = fi (4-demodSignalSD 0 3 0);input1 = quantizedValue (1:2:2 * FrameSize);input2 = quantizedValue (2:2:2 * FrameSize);%发送/接收1帧/ HDL维特比译码器的FPGA[ce_out, receivedBits] =步骤(hDec、input1 input2);错误=步骤(hError、数据、双(receivedBits));结束

显示误比特率

维特比译码器显示的误比特率。

sprintf (“比特误码率是% d \ n”、错误(1))

这个结论是“验证维特比译码器使用MATLAB系统对象和FPGA-in-the-Loop”的例子。