• 27_基于FPGA的误码检测仪


    27_基于FPGA的误码检测仪

    实验原理

    主要分为以下几个部分:

    1. 锁相环
    2. M序列生成模块
    3. 数据接口模块
    4. 模拟信道模块
    5. 本地M序列生成模块
    6. 同步模块
    7. 误码统计模块

    锁相环

        主要产生系统时钟信号和输出同步时钟信号。

    采用Altera自带的IP模块

    M序列生成模块

        伪随机信号发生器又叫PN序列发生器或者是m序列发生器。m序列是一种线性反馈寄存器序列,m序列的产生可以利用r级寄存器产生长度为2^r-1的m序列,该实验中采用3级寄存器产生7序列发生器。其原理框图如下:(实验中反馈的信号采用异或进行反馈)

        设计中采用的M序列为:f ( x) =x2 + x3 + x4 + x8

    数据接口模块

        由于没有实际信道,所以收发模块预留,这里进行了人为地插入误码,并将此误码作为模拟实际的信道。

        

    模拟信道模块

        误码插入模块,采用的简单的方法进行插入。

        根据输入的M序列和序列的位置,对某些想要插入的位置的M序列进行取反操作,然后进行插入。

    本地M序列生成模块

        与M序列生成模块相同。

    同步模块

        同步判断是进行误码统计的先决条件,只有对接收的码序列与本地码序列不断地进行同步判断,确定收、发端处于同步状态,那么误码统计才有意义。在通信系统中同步的方法有很多,通常采用的方法有滑动相关法,匹配滤波法等。

        本设计中采用的是滑动相关法,以7个序列为滑动的范围,进行同步判断,确定收、发端处于同步状态,当误码数小于3时才继续循环判定。

    误码统计模块

        当收发端已经判断同步后,只要将接收信号于本地的M序列流进行同步的串行比较就可以统计误码的数量。当统计完成256个时,才输出误码数量。

    硬件原理图

    实验代码

    1. 顶层设计文件

    1. 锁相环

    1. M序列生成模块

    1. 数据接口模块

    1. 模拟信道模块

    1. 本地M序列生成模块

    1. 同步模块

    1. 误码统计模块

    仿真操作

    编译

    生成网表

    开始仿真

        

     

    实验效果

    这里可以人为地插入误码的位置和控制误码的数量,这里随机地选取了一下这些位置。总共插入了12个误码。(你可以自己增加误码数或者改变误码的位置

        仿真结果如下

    err_cnt_out输出的值为12,符合插入的误码数。

     

    总共插入了2个误码:

    err_cnt_out输出的值为12,符合插入的误码数。

    Scan、 seg为后期电路板显示用的,仿真时不用管。

     

     

     

    大西瓜FPGA-->https://daxiguafpga.taobao.com

    配套开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-24211932856.3.489d7241aCjspB&id=633897209972

    博客资料、代码、图片、文字等属大西瓜FPGA所有,切勿用于商业! 若引用资料、代码、图片、文字等等请注明出处,谢谢!

       

    每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号"科乎"。

  • 相关阅读:
    VirtualBox 使用技巧
    ThreadPoolExecutor 线程池任务队列分析 与 利特尔法则(Little's law)
    AQS 与 LockSupport
    Matrix
    Fire Net
    Travelling
    Cannon
    N皇后问题
    Safecracker
    #include <algorithm>中sort的一般用法
  • 原文地址:https://www.cnblogs.com/logic3/p/15915953.html
Copyright © 2020-2023  润新知