Hadamard变换光谱仪光谱复原算法的FPGA实现
2011-10-09胡炳樑申晓燕樊先云
孔 亮,胡炳樑,申晓燕,樊先云
(中国科学院 西安光学精密机械研究所 光谱成像技术实验室,陕西 西安 710119)
Hadamard 变换(Hadamard Transform,HT)光谱技术[1]是一种类似于傅里叶变换(Fourier Transform,FT)的新型光谱调制技术,具有多通道成像、高信噪比、和辐射通量大等优点[2]。光谱成像技术与实时处理技术的结合[3-7]可以快速地为地面提供探测目标的空间和光谱信息,提高响应速度,准确地实现目标定性研究。光谱成像仪可以应用于国民经济建设与科学研究中,如农业中对病虫害的监测,地质灾害中的救援,对太空碎片的分类[8]等。利用FPGA实现光谱复原算法可以快速而准确地得到复原图像以及光谱曲线。
1 Hadamard变换光学的编解码原理
Hadamard变换的理论模型是法国数学家Hadamard提出的一种n阶矩阵方程。实现Hadamard变换成像的关键在于HT模板的设计,对于一个有n个单位元素组成的模板,每次测到的信号y可以写成
上式中yj是用第j块模板调制产生的信号的总和,Xi是该模板上第 i个元素所产生的信号,矢量 Sj=(S1j,S2j,…,Snj)的值对每一个透过的元素为1,对不透过的元素为0。
写成矩阵的形式为
由式(2)得
则由矢量X即可还原成目标的信号。
2 光谱复原电路
如图1所示,光谱复原电路中的核心器件是FPGA,笔者采用的FPGA是Xilinx Spartan-3A DSP 1800A,该芯片架构的核心是XtremeDSP逻辑片,具有较好的数字信号处理功能。图中的数据缓冲、控制模块、矩阵运算、地址发生器以及输出接口的控制都是在FPGA中完成的。外部采用了一片SRAM(Static Random Access Memory,静态随机存储器)存储接收到的编码图像数据以及处理后的数据。经过采样的图像数据输入到SRAM中,由FPGA将数据读入进行矩阵运算实现Hadamard逆变换从而得到复原的含一维光谱信息的不同波段的图像。计算后的数据重新存储到SRAM中,待计算完成后将复原图像经USB2.0接口传输到计算机上进行显示和分析。
图1 光谱复原电路的组成Fig.1 Composition of spectral recovery circuit
3 FPGA实现光谱复原算法的流程
硬件程序中的数据处理包括两部分:FPGA读取待处理的数据和FPGA进行Hadamard逆变换。FPGA读取待处理数据的程序流程图如图2所示。
图2 FPGA读取待处理数据的程序流程图Fig.2 Program flow chart of FPGA reading data
由Hadamard逆变换的推导过程可以看出,采用7阶编码模板对光信号进行调制会得到7幅编码图像。在进行图像复原时,需要从7幅编码图像的相同位置取一点,即对提取的7个点进行Hadamard逆变换。由于SRAM中存取的7幅图像数据是连续的,因此在读取编码图像数据时,SRAM地址总线的读地址变化不是连续的而是有固定的间隔。
FPGA进行Hadamard逆变换的程序流程图如图3所示。
由图2和图3可以看出,编码图像的读取和图像处理这两个过程是在两个时钟的控制下完成的。采用两个时钟分别控制这两个过程可以保证整个光谱复原过程的正确进行。
4 实验结果及讨论
4.1 编码图像
由于采用的是7阶S矩阵,且该矩阵产生的模板是由前一个模板左移一位得到的,因此编码后得到的7幅图像会产生明暗条纹循环左移的现象。笔者采用波长为632.8 nm的激光作为入射光源,由模板“1110100”得到的编码图像如图4中(a)图所示。其他6个模板分别由模板“1110100”循环左移得到,得到的编码图像如图4中(b)~(g)图所示。
图3 FPGA进行Hadamard逆变换的程序流程图Fig.3 Program flow chart of inverse Hadamard transform
图4 编码图像Fig.4 Hadamard coded image
4.2 复原算法的仿真结果
利用ISE编程并得到仿真实验结果,如图5所示。
由图 5所示,“clk”是主时钟信号;“dinout”数据处理后的输出;“we_out”是 SRAM 写控制信号;“ce1_out”是 SRAM 片选信号;“oe_out”是 SRAM 输出使能信号;“address_out”是地址总线输出信号,与SRAM的地址总线相连;“data_valid”是程序内部的一个控制信号;“cnt”是程序内部的一个计数器。根据图中时序可以看出,“we_out”、“oe_out”处于低电平状态,“oe_out”处于高电平状态。SRAM处于“写”状态,FPGA根据“address_out”的输出将运算完的数据写入SRAM中。地址总线的输出与数据输出存在延迟,这是由于这两个过程分别按照各自的时钟进行,这样可以保证数据的完整。
4.3 光谱复原的结果及其讨论
光谱复原电路从数据采集电路接收7幅编码图像并按顺序存在SRAM中,然后依次从7幅编码图像中读取数据进行Hadamard逆变换得到新数据后再按原来的顺序存入SRAM。处理后得到的7幅图像包含了被探测目标在各个波段的空间信息和谱信息。其中,图6中的(a)图包含了波长为680 nm的谱信息,(b)图包含了波长为658 nm的谱信息,(c)图包含了波长为636 nm的谱信息,(d)图包含了波长为615 nm的谱信息,(e)图包含了波长为 593 nm 的谱信息,(f)图包含了波长为572 nm的谱信息,(g)图包含了波长为550 nm的谱信息。(h)图是将其中3个波段分别作为RGB模型中的R、G、B分量合成得到的假彩色图像。根据分离出的单光谱图像可以得到单点的光谱曲线。
图5 FPGA系统功能仿真结果Fig.5 Simulation results of FPGA system function
根据实验结果,可以看出本实验所用的光谱复原电路得到准确、清晰的复原图像且能准确地合成假彩色图像。这不仅验证了复原算法的正确性而且说明该电路可以用于仪器的光谱复原处理。
本文将软硬件得到的实验结果进行了对比,在图6中的(h)图中取一点,绘出该点的光谱曲线,如图7所示。
图6 光谱复原后的图像及合成的假彩色图像Fig.6 Spectral recovery image and false color image
图7 软硬件得到的相同位置的光谱曲线Fig.7 Spectral curve of the same location obtained by software and hardware
如图7所示,左图是通过硬件得到的单点的光谱曲线,右图是通过软件得到的单点的光谱曲线。利用硬件电路进行光谱复原处理所获得光谱曲线的形状与软件得到相同点的光谱曲线基本一致,光谱曲线的峰值位置是相同的。
5 结束语
通过实验可以看出,利用大容量并带有良好数字信号处理功能的FPGA实现基于DMD的Hadamard光谱成像仪的实时光谱复原电路是可行的。笔者所提出的电路设计方案具有处理速度快、外形尺寸小、成本经济等优点,可以满足该型光谱仪对实时处理的要求快速地完成Hadamard逆变换,并得到清晰的复原图像。在以后的工作中,可以利用这些复原图像得到单点的光谱复原曲线。该实时光谱复原电路为基于光谱特征的目标识别做了很好的准备。这种具有实时处理功能的光谱仪也为太空碎片的分类和监测等提供了新的手段。
[1]Harwit J V,Slone N J.Hadamard transform optics[M].London:Academic Press,1979.
[2]Marshall A C.Fourier,Hadamard and Hilbert transforms in chemistry[M].New York:Plenum Press,1982.
[3]Decker J A,Jr.Hadamard-Transform image Scanning[J].Applied Optics,1970,9(6):1392-1395.
[4]Deeker J A,Jr.HTS spectrometer for airborne infrared astronomy[J].Applied Optics,1973,12(6):1108.
[5]Plankey F W,Glenn T H,Hart L P,et al.Hadamard spectrometer for ultraviolet-visible spectrometry[J].Analytical Chemistry,1974,46(8):1000-1005.
[6]Deeker J A,Jr.Experimental operation of a 2047-slot Hadamard-transform spectrometer[J].Applied Optics,1971,10(8):1971-1975.
[7]杨跃忠,曹文熙,孙兆华,等.海洋高光谱辐射实时观测系统的研制[J].光学学报,2009,29(1):102-107.
YANG Yue-zhong, CAO Wen-xi, SUN Zhao-hua, et al.Development of real-time hyperspectral radiation sea-observation system[J].Acta Optica Sinica,2009,29(1):102-107.
[8]Vujkovic-Cvijin P, Goldstein N, Fox M J, et al.Adaptive spectral imager for space-based sensing[C]//Pevelopment of 3rd Generation infrared ImagersⅡ,2006.