|
摘要:本文探讨了ADSP TigerSHARC101S的在基于线性约束最小二乘恒模算法(LSCMA)中的应用。首先介绍了最小二乘恒模算法基本原理和权值迭代公式,并对其进行线性约束然后介绍了ADSP TigerSHARC101S芯片的基本结构特征和它强大的功能并简单描述了其相应开发软件Visual DSP++3.0的功能及使用方法。给出了最小二乘恒模算法实现波束合成的具体流程图,在经过Matlab软件成功进行仿真模拟之后用Visual DSP++3.0设计了DSP程序,用C语言嵌套部分汇编语言的形式实现了用ADSP TigerSHARC101S进行迭代求权向量的过程。 关键词: TigerSHARC101S;线性约束最小二乘恒模;Visual DSP++ 3.0
1.引言 ADSP TigerSHARC TS101S是美国ADI(模拟仪器)公司最新推出的基于AD2106x的下一代高性能静态超标量体系处理器芯片。它的运行速度为250MHz,指令周期4ns, 6M Bits片内SRAM提供19×19mm(484—Ball)或27×27mm(625—Ball)FPGA封装。双运算模块,每块包含一个ALU、一个乘法器、一个移位器和一个寄存器组。一个外部端口、4个链路口、SDRAM控制器、可编程标志引脚和两个定时器等用于系统集成。用于通过共享总线无缝连接多达8个TigerSHARC DSP的片内总线仲裁。DMA控制器支持14个DMA通道,可完成片内寄存器、片外寄存器、存储器映射外设、链路口、主机处理器和其它(多处理器)DSP之间的低开销传输。 TS101S专为信号处理任务和通信结构进行了优化,因为它在运行期间并不重新排列指令顺序,所以用户可以在运行以前的几条指令并行执行,故程序指令执行的顺序是静态的。TS101S的静态超标量结构能够通过两个运算单元同时执行1至4条从超长指令中译出的指令,即每周期能执行多达4条指令,24个16bit定点运算和6个浮点运算。它运行在250MHz时,其内核的指令周期为4ns。利用单指令多数据(SIMD)TS101S可以提供20亿次40bit乘累加(MAC)运算或者500万次80bit MAC运算。其他的一些重要的性能指标如下:1、供峰值8个16bitMAC每周期,可持续7.1个16bit MAC每周期的运算性能,或峰值2个32bit MAC每周期,可持续1.8个32bit MAC每周期的运算性能(基于FIR);2、每周期执行6个单精度浮点运算或24个16bit定点运算操作,提供1500MIPS或6.0GOPS的性能;3、每周期执行2个复数16bit MAC;4、每周期执行8次Trellis碟形运算。
2.ADSP TigerSHARC101S硬件结构 1983年Treichler等人提出了恒模算法(CMA)。恒模算法是一种常用的自适应波束形成算法,它无需训练信号、收敛速度相对较快、能有效抑制相干干扰,可用于QPSK、GMSK、FM等恒模信号,也可用于某些非恒模信号(如多电平信号束、脉冲成形PSK、QAM信号等)。恒模算法的基本思想是恒模信号经历了多径衰落、加性干扰或其他不利因素干扰时,会产生幅度扰动破坏信号的恒模特性,因此可以定义一种恒模准则使自适应滤波器的输出恢复成恒模信号。最小二乘恒模算法具有快速收敛特性,无需步长因子,使用了非线性最小二乘即高斯法的推广来设计恒模算法。扩展的高斯方法定义的代价函数 为:  3.算法仿真步骤及在DSP上的实现 3.1 Visual DSP++3.0软件平台 Visual DSP++ 3.0是ADI公司针对ADSP Tiger SHARC系列处理器的开发提供的软件开发工具,是一种使用方便的集成调试开发软件平台。它通过图形窗口的方式与用户进行信息交换,程序开发人员可以在窗口中进行高效的工程管理。Visual DSP++ 3.0编辑器能自动识别关键字、注释等,并可以设置不同的颜色来区分,在一个工程中可以建立多个源文件(包括汇编、c、c++)及系统结构文件。通过对话框和选单的形式来提供多种TIGER开发工具的入口参数,这比DOS命令进行操作更加容易和方便。而且可以设定对某个文件的操作或对整个工程的操作。调试器集成了软件仿真器(simulator)和硬件仿真器(emulator)和开发板控制功能等。ADI公司的DSP仿真器使用ADSP-TS101S的IEEE1149.1JTAG测试访问端口,在仿真时监视和控制目标板上的DSP处理器。仿真器提供全速仿真,允许查看和修改存储器、寄存器和处理器堆栈。 3.2 算法流程及Matlab模拟 基于线性约束最小二乘算法都是在阵列信号处理系统中实现的,现在某系统要求利用阵列信号处理技术完成平面阵列天线(66)的二维波束形成。具有对飞行器等应答式合作目标的搜索捕获、自动跟踪、测角以及数据通信等功能,能够同时作用于四个同类目标。要求天线能够同时形成4 个独立的接收波束和1~4个独立的发射波束。那么用最小二乘算法实现波束合成的流程如图1:
图1 算法流程
当我们假设期望信号和干扰信号的信噪比分别为10dB和20dB时,阵列的波束形成图(只观察方位角)和输出信干噪经过Matlab仿真模拟,可以看出最小二乘恒模算法在强干扰环境下已经丧失捕获期望信号的能力而基于线性约束的最小二乘恒模算法依然能够正确的捕获期望信号。
图2 Matlab仿真图
3.3 在TS101S上的实现 将期望信号(S0)和干扰信号(S1-S3)及噪声信号(N)读入,放在section(”data1”)中。另一方面为了避免数据量太大而造成数据存储紊乱,应该在ldf文件(连接文件)中把不同数据段所在的section存入指定的内存模块(该芯片拥有6M片上存储器分为block0,block1和block2三个2M的模块)里以方便数据的管理和调用。因此先把data1这个section存入TS101S的block0中。由系统中其他的模块中所得的信号方向角和仰角求出信号的方向矩阵A,那么A*S+N=X即 为接收信号。将X放在setcion(”data2”),ldf文件中把data2的section存入block1。 为了实现初始权向量的向后迭代,必须先求得X矩阵协方差的逆与X的积(令为XX)。由于阵列信号阵均为复数阵,在此就需要运用全选主元高斯-约当消去法才能实现复数矩阵求逆。Visual DSP++ 3.0提供了复数矩阵乘积、加、减等一系列函数,大大简化了繁琐的编程过程。例如Visual DSP++ 3.0完成两个复数阵相乘只需要一条语句,而如果是在之前的Visual DSP++ 环境中必须将复数阵分为实部阵和虚部阵,然后交叉相乘再加减得到积的实部和虚部需要六条语句才能完成。 matmmltf(X,36,snapshot,Xz,AN0,M); //求协方差阵M JZNI(36,M); //高斯-约当消去法求逆子函数 ,将M的逆求得后返回M matmmltf(M,36,36,X,snapshot,XX); // 得到XX 接着为了形成初始权向量W并求出其共轭转置Wz,需要先产生方向矩阵A(36行360列)。列向量hn(36)和ln(36)分别是数列1至36除以6的商和余数数列,A的第i列A(i)=exp(j*pi*cos(doa*pi/180)*(hn*cos(i*pi/180)+ln*sin(i*pi/180))),(其中pi为圆周率,doa为方向角和仰角向量) .从方向矩阵中取出仰角和方位角所指定的那一列A0,那么初始权向量W=A0/(A0’*A0) ,并用transpm函数求转置Wz。初始权向量产生后,再求得Wz与信号X的积y的模ab,那么限幅输出向量r的每个值为y与ab对应值的商。则权向量W等于XX与限幅输出向量r转置的积(过程如图3所示)。 按以上步骤迭代计算系统所要求的次数,就能得到最终所需的权向量值。
图3 迭代求权值过程
4.结束语 TigerSHARC系列是最新推出的静态超标量体系结构处理器,以其优异的快速浮点运算能力而受到雷达和声纳、通讯、医疗、气象预报和数据采集等诸多领域的亲睐。在阵列信号处理的大规模矩阵之间的复杂运算中,同样能充分发挥它高速,内存大的优势。使实时脉冲压缩具有高速度、高性能的特性,并有电路板面积小、性价比高、功耗低、应用开发时间周期短的特点。配合合理的Visual DSP++ 3.0环境配合更加强了编程的操作性。
参考文献: [1] ADSPTS101 TigerSHARC Processor Programming Reference. Analog Devices。Inc,1st.2003 [2] ADSPTS101 TigerSHARC Processor hardware Reference. Analog Devices。Inc,1st.2003 [3] C/C++ Compiler and Library Manual for TigerSHARC DSPs. Analog Devices。Inc,1st.2002 [4] 刘书明 罗军辉等. ADSP SHARC系列DSP应用系统设计[M].西安:西安电子科技大学出版社,2002 [5] 苏涛 吴顺君 李真芳 宋万杰等.高性能DSP与高速实时信号处理[M]. 西安:西安电子科技大学出版社,2002
|