基于DSP的OFDM系统的设计.docx

上传人:scccc 文档编号:13702740 上传时间:2022-01-22 格式:DOCX 页数:7 大小:90.70KB
返回 下载 相关 举报
基于DSP的OFDM系统的设计.docx_第1页
第1页 / 共7页
基于DSP的OFDM系统的设计.docx_第2页
第2页 / 共7页
基于DSP的OFDM系统的设计.docx_第3页
第3页 / 共7页
基于DSP的OFDM系统的设计.docx_第4页
第4页 / 共7页
基于DSP的OFDM系统的设计.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于DSP的OFDM系统的设计.docx》由会员分享,可在线阅读,更多相关《基于DSP的OFDM系统的设计.docx(7页珍藏版)》请在三一文库上搜索。

1、1、引言信息化已经成为社会发展的大趋势。 信息化是以数字化为背景的, 而 DSP技术则是数字化最重要的基本技术之一。 DSP 处理器是专门设计用来进行高速数字信号处理的微处理器。与许多通用的 CPU和微控制器( MCU)相比, DSP处理器在结构上采用了许多的专门技术和措施来 提高处理速度。 DSP处理器与通用微处理器不同,它没有采用将程序代码和数据公用一个公共的存储空间和单一的地址与数据总线的冯诺依曼结构( Von NeumannArchitecture ),而是毫无例外的将程序代码和数据的存储空间分开, 各有自己的地址与数据总线, 即所谓的哈佛结构( Harvard Architectur

2、e ),增大了处理器的数据交换能力。OFDM(正交频分复用 ), 是直接利用离散傅里叶变换 (DFT), 实现的一种多载波调制技术,它采用并行传输,将所 传送的高速数据分解并调制到多个相互交叠并且正交的子信道中, 使得每个子通道的码元宽度大于扩展延时, 若在码元之间增加一定长度的保护间隔,则多径传输引 起的码间串扰基本被消除。 OFDM的上述特点使其特别适于在存在多径传播和有多普勒频移的移动无线传输信道中传输高速数据。目前应用于电力线通信,数字声 广播(DAB)和欧洲高清晰度电视传输标准( DVB-T), 无线局域网( WLAN)等业务中。论文在 TMS320C5509DSP上根据系统的总体框

3、图, 实现 OFDM基带系统的设计, 并给出了具体的性能指标。2、OFDM系统的设计实现21 实现系统的任务流程图系统每帧可以传送 56bits 的有效信息,数据的传输速率将达到 100kbit/s ,并且为了减小传输过程中的信道 的不理想,用了 BSPK对信源进行编码映射, 在传输过程中,传输的是时域的信号, 但是实际有用的是这些时域信号的频谱, 这些信号在时域中是无规则的随机信 号,但在其频谱上的各个子载波携带着需传输的信息。现工作框图如图 1:图 1.系统的任务框图整个系统由 DSP和 FPGA、D/A、A/D 以及一些其他的硬件共同完成。任务流程是由 DSP接受由串 / 并转换过后的并

4、行数据,在 DSP内进行 BPSK信源编码,将 0和 1 分别映射为 0xbffd 和 0x3fff 两个十六进制的数, 再送入 IFFT 单元将数据变到时域进行处理, 然后把数据加上循环前缀, 串行送给 FPGA进行处理,由 FPGA 将数据发送 给接收板。接收板上由 FPGA接到数据进行一系列处理后, 将数据又串行传给接收板的 DSP。在接收板的 DSP上将接受到的数据移走循环前缀,送入FFT单 元将数据还原到频域,然后以 0 为门限进行判决,映射后得到最早的原始数据。21任务流程详解原始数据每帧携带 56bit 的二进制信息(即只有 0 和 1 两种取值),在框图中 D/A 和 A/D

5、部分都是由专门的硬件来完成,项目选用的是 ADS828e,和 DAC902u。发送部分:信源编码部分我们采用的是BPSK,为的是进一步增大信号间的欧式距离,通过计算,我们决定选用0xbffd和 0x3fff两个 16 进制的数来分别代表0 和 1。由于 FFT变换要求数据是 2N个数据,所以将数据插入若干个零来补足。具体做法是,将映射后的第 28 个数据位置开始插入 7 个零。由于零频时不能有信号(为了无直流分量),在帧的开始不传信息,将第一个数插入零(不是 0xbffd ),把 56 个数变为 64 个数,在接收板上将把同样位置的 16 个数去掉。将编码映射后的 16 位数进行 64 点的

6、IFFT,把数据由频域变换到时域,等候下一步处理。在 OFDM系统中,为了防止多径延迟,必须加上循环前缀,而这些循环前缀又不能破坏子信道间的正交性,于是将最后 16 位数提到前面来形成 80 个数。具体做法是,在 IFFT 完成后,要加上循环前缀才能将数据发送给FPGA,将数据的最后 16 位复制到数据开头(原来的 16 个数不动),把数据变为 80 个,送给串口发送给 FPGA。在 FPGA上进行 FIR 滤波,和一系列处理后, 发送板的任务完成, 接下来就将数据送给接收板。接收部分:由接收板上的 FPGA接收到发送板送来的数据,经过一系列处理后将数据串行送给 DSP等待进一步处理。接收板的

7、 DSP接收到 FPGA发过来的 80 个串行数据后,先将循环前缀去掉, 即去掉前 16 位数,将 80 位的数据变为 64 位,交给下一步处理。在把数据变回为 64 位后,将数据进行 FFT 变换,由时域变回频域,交由下一步处理。在进行判决之前,先要把插入的 16 个数去掉,将 64 位数变为 56 位,然后进行判决, BPSK有一个好处就是判决时可以直接以零为门限。经过判决后,将数据还原成原来的初试值。综上所述,在 DSP部分,共有 10 项任务,发送端1 BPSK编码和插入数据(数据个数由56 变为 64 个)2作 N=64的 IFFT 变换,将频域的数据变到时域。3加入循环前缀(数据个

8、数由64 个变为 80 个),防止多径延迟。4通过 DMA将数据送到 Mcbsp发给 FPGA。接收端5 由 Mcbsp接到数据通过 DMA存入数据空间(此时数据应该与第四步结束时相同)。6 去掉循环前缀 (数据个数又由 80 个变为 64 个,此时数据应该与第三步结束时相同)7作 64 点 FFT变换(此时结果应该与第一步结束时相同)8 去掉插入的数据,反映射(数据个数由 64 个变为 56 个,此时结果应该与第一步开始时相同)并解码。23DSP串口的接发配置和DMA的设置系统实现关键在 FFT 的实现和 DSP串口的接发配置和 DMA的设置。这里详细说明串口和 DMA的设计方法。系统用 M

9、cbsp1发送数据,用 Mcbsp2来接收数据,为了不占用过多的CPU资源,用 DMA的 4 通道来传送数据给串口,用 5 通道来接收数据。对于 DMA和 Mcbsp 的使用主要是寄存器的配置问题, 在这些配置当中可以对工作模式等一系列东西进行设置。现分别介绍如下:对于 Mcbsp来说,接收和发送可以配置在一起, 采用了 DSP自身带有的 CSL库函数,它对寄存器的配置是通过结构体来定义的, 可以方便的修改成自己所需要的模式。在进行将 DSP片内数据地址赋 DMA中的地址时要注意, DMA中数据是以 byte 为单位存储的,存储的最小数据单位上 byte ,而片内存储区间是以 word 为单位

10、的,所以将地址交过去时,要将地址右依、移 1 位。如:srcAddrHi= (Uint16)(Uint32)(dmaXmtConfig.dmacssal) 15) & 0xFFFFu;srcAddrLo= (Uint16)(Uint32)(dmaXmtConfig.dmacssal) 15)&0xFFFFu;dstAddrLo= (Uint16)(Uint32)(dmaXmtConfig.dmacdsal) 1)& 0xFFFFu;在进行中断处理是时, 要注意执行的顺序, 首先要保存原来的中断向量表,再清除原来的中断,然后将局部中断允许位开放(即关屏蔽位),开全局中断,最后将中断服务程序填入中

11、断向量表。old_intm = IRQ_globalDisable();IRQ_clear(xmtEventId);IRQ_enable(xmtEventId);IRQ_setVecs(0x10000);IRQ_plug(xmtEventId,&dmaXmtIsr);在程序任务完成之后,还要记得还原中断,关掉Mcbsp和 DMA。MCBSP_close(hMcbspr);DMA_close(hDmaRcv);DMA_close(hDmaXmt);DMA_stop(hDmaXmt);IRQ_disable(xmtEventId);DMA_stop(hDmaRcv);IRQ_disable(rcv

12、EventId);在设定的控制字下,串口 1 将以 CPU时钟频率的 1/70 发出帧定位信号,宽度为一个码元长度, 上升沿有效, 以帧定位 信号的 1/80 发出时钟定位信号 (因为一帧有 80 个元素),也是上升沿有效,发送元素是 32bit 的数,这是因为发散的数据是复数,分为虚部和实部, 先放 实部后放虚部, 所以一个元素是 32 个 bit 。串口 2 是接收端,接收外部帧同步信号和时钟同步信号用来同步。 外部传来的各种信号和数据格式和串口 1 发送的相同,不过收的时钟定位信号是下降沿有效。在 DMA方面,通道 4 是发送通道,通道 5 是接收通道,同步事件分别是发送串口和接收串口,

13、在一个数据串口接收到了后会发中断给 DMA,使其接收数据或传下一个数据,所以在发端,需要手工先送一个数据过去。3 性能分析可靠性以外,速度是一个通信系统最重要的评估因素, 而数据的处理速度在很大程度上限制了传输速度,成为了提高系统速 度的瓶颈。在设计中对系统传输由于是用 DMA和 Mcbsp的结合使用,速度超出了其他程序的执行速度, 只要传输在主函数的执行时间内完成就不会造成系统的 阻塞,所以这部分只测试和评估各程序的执行速度,传输的时钟定位脉冲是对 CPU时钟的 35 分频远远快于处理速度,忽略它的测试不会对整个测试有很大影响。系统数据的传输速度达到100kbit/s,传输只要在上次数据处理

14、完前完成就可以不计算传输的速度, 所以按照我们 的预期速度,和我们 DSP的 CPU时钟 140MHz,可以算出所有的数据要在多少条指令周期内完成才不会对下一阶段的任务产生影响,而 CCS就有专门的测 试工具帮助我们测试执行的指令周期。期望的最大执行周期为 14012564=71680 条指令周期。由 CCS自带的时间测试是以执行周期为单位的, 在程序没有进行编译优化时, 我们测试得各部分和主函数的执行速度如图 2 所示:图 2 未优化前的程序执行时间测试结果在此结果中,我们可以看到 main 函数的执行时间是 39786 个指令周期,完全可以满足前面算出的最大指令执行周期。 顺便一提,在这个

15、测试工具中还可以看到所编译的程序代码的大小。在由 CCS自带的优化工具进行调试的优化后(即 o2 优化),程序代码的长度和执行时间还可以大大的缩短。其结果见图 3 所示:图3用参数o2 优化后的程序测试比较图 2 和图 3,可以看出经过优化后的程序不仅在代码长度上减少了进 40%,在执行速度上更是提高了 2 倍以上,有的子程序甚至提高了 4 5 倍。系统效率有了很大的提高,并且有较大的余量来实现其他任务。4 结论实现了 OFDM系统基带系统的 DSP实现,实现基带信号的发送与接收。考虑到物理层的时延要求和实现的复杂度,本系 统采用串口和 DMA结合的方法,对信号帧进行处理, 将 DSP核心处理

16、单元解放出来, 能完成复杂的信号处理任务。 我们设计的系统数据的传输速度达到 100kbit/s ,如果要达到更高的传输速率, 可以改用更先进的 DSP型号。参考文献1 邱立存等, TMS320C54X系列 DSP上 FFT运算的实现,微计算机信息, 2005( 21 卷), 136-1372 Orthogonal frequency division multiplexing. U.S. Patent3488445.fieldNov .14, 1996.3TI,TMS320C55xChip Support Library API Users Guide, SPRU433COctober200

17、24TI,Comparison of the TMS320C55xDSPEMIF and the TMS320C6000DSPEMIF,Application Report SPRA733 March 20015 TI, TMS320C55x Optimizing C C+ Compiler Users Guide, Literature Number: SPRU281E March 20036 TI, TMS320C55x DSP CPU Programmer s Reference Supplement, SPRU652B November 2002 Revised June 2003 Copyright 2003, Texas Instruments Incorporated

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1