基于基2<sup>4</sup>算法的多路FFT处理器中乘法器的复用方法

文档序号:6463853阅读:291来源:国知局
专利名称:基于基2<sup>4</sup>算法的多路FFT处理器中乘法器的复用方法
技术领域
本发明属于数字信号处理集成电路设计技术领域,具体涉及设计单路FFT处理器 时常复系数乘法器利用率都低于50%的基24算法,并实现对基于此算法的多路FFT处理器 中常复系数乘法器的复用方法。
背景技术
离散傅立叶变换(DFT)是数字信号处理中的重要模块,被广泛应用于数字信号处 理的各个领域,但受DFT计算复杂度的限制,DFT在实际应用中受到很大的限制。自Cooly 和Turkey提出基-2FFT算法后[1],使DFT的计算复杂度从N2降低到(N/2) Iog2N,而且该 算法具有良好的规整性,便于VLSI实现,使得FFT得到广泛应用。He和Torksen在1998年 提出了基_22和基_23FFT算法[2],减少了计算复杂度,又维持了基-2FFT算法的规则性, 被认为是实现FFT处理器的最优算法之一。在FFT处理器设计中,流水线结构可以以适当的硬件规模来获得较高的吞吐率, 是目前FFT处理器中普遍采用的结构,其要求FFT算法具有规整性,[2] [3]等目前大多数对 FFT的研究都基于流水线结构来设计FFT处理器。FFT的流水线结构主要可被划分为两类, 全并行流水线结构(MDC)和单路数据反馈结构(SDF),前者提供高吞吐率,但存储单元利用 率低,存储单元和硬件规模较大,后者吞吐率相对低些,但提高了存储单元利用率,减少了 存储单元,硬件规模小。本发明采用SDF结构以节省面积。随着传输信息量的不断增加,多天线正交频分复用技术日益成为无线通信系统中 的关键技术,而多路FFT处理器是其中的重要模块,吞吐率高但是硬件规模很大。为了进一 步降低计算复杂度,[4]中根据基_23DIF FFT算法[2]推导出一种基_24算法,但用于设计 单路FFT处理器时蝶形运算(BF) II后的常复系数乘法器利用率高于50%,在设计多路FFT 处理器时若采用[5]中基_24算法,则常复系数乘法器不能在维持吞吐率不变的同时实现 复用。针对上述问题,本发明在此根据基_23算法推导一种新型的基_24算法,基于此算法 设计单路FFT处理器时可得到BFII和BFIII后的常复系数乘法器利用率低于50%,为设计 多路基_24FFT处理器时维持吞吐率不变,同时复用常复系数乘法器以减少硬件规模提供了 可能,在此基础上本发明提出了一种多路基_24FFT处理器结构,通过调整不同路输入和中 间数据的顺序关系,错开常复系数乘法器,实现复用常复系数乘法器的复用,可以减少乘法 器数目且维持吞吐率不变。[1] J. W. Cooley and J. Tukey,"An algorithm for the machine calculation of complex Fourier series,”Math. Comput.,1965,vol. 19,pp. 297-301.[2]Shousheng He,Mars Torkelson. Designing pipeline FFT processor for OFDM(de)modulation. Pisa :URSI International Symposium on Signals,Systems, and Electronics. 1998,257-262.[3] Yu-Wei Lin,Wan-Chun Liao and Chen-Yi Lee, a MRMDF FFT processor for MIMO OFDMApplication. Asian Solid-State Circuits Conference. 2005,225-228.
[4]Jung-yeol Oh,Myoung-seob Lim. Fast fourier transform processor based on loN-power and area-efficient algorithm. IEEE Asia-Pacific Conference on Advanced System Integrated Circuits. 2004,198—201.

发明内容
为了进一步提高处理器中运算单元的利用率,降低硬件复杂度,本发明提出一种 基24频域抽取(DIF)FFT算法,以减少FFT设计中通用乘法器的数目,并采用SDF结构,通 过调整输入和中间数据的顺序关系,实现常复系数乘法器的复用,减少FFT处理器的乘法 器数目,同时维持吞吐率不变。
权利要求
一种改进的基24算法,其特征在于具体步骤如下对于N点序列x(n),其离散傅立叶变换定义为 <mrow><mi>X</mi><mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo></mrow><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>n</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>N</mi><mo>-</mo><mn>1</mn> </mrow></munderover><mi>x</mi><mrow> <mo>(</mo> <mi>n</mi> <mo>)</mo></mrow><msubsup> <mi>W</mi> <mi>N</mi> <mi>nk</mi></msubsup><mo>,</mo><mi>k</mi><mo>=</mo><mn>0,1,2</mn><mo>.</mo><mo>.</mo><mo>.</mo><mi>N</mi><mo>-</mo><mn>1</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo></mrow> </mrow>其中,N是2的幂,x(n)和X(k)是复数序列,旋转因子 <mrow><msubsup> <mi>W</mi> <mi>N</mi> <mi>nk</mi></msubsup><mo>=</mo><msup> <mi>e</mi> <mrow><mo>-</mo><mi>j</mi><mrow> <mo>(</mo> <mn>2</mn> <mi>&pi;nk</mi> <mo>/</mo> <mi>N</mi> <mo>)</mo></mrow> </mrow></msup><mo>=</mo><mi>cos</mi><mrow> <mo>(</mo> <mn>2</mn> <mi>&pi;nk</mi> <mo>/</mo> <mi>N</mi> <mo>)</mo></mrow><mo>-</mo><mi>j</mi><mi>sin</mi><mrow> <mo>(</mo> <mn>2</mn> <mi>&pi;nk</mi> <mo>/</mo> <mi>N</mi> <mo>)</mo></mrow><mo>;</mo> </mrow> <mrow><mi>n</mi><mo>=</mo><mo>&lt;</mo><mfrac> <mi>N</mi> <mn>2</mn></mfrac><msub> <mi>n</mi> <mn>1</mn></msub><mo>+</mo><mfrac> <mi>N</mi> <mn>4</mn></mfrac><msub> <mi>n</mi> <mn>2</mn></msub><mo>+</mo><mfrac> <mi>N</mi> <mn>8</mn></mfrac><msub> <mi>n</mi> <mn>3</mn></msub><mo>+</mo><mfrac> <mi>N</mi> <mn>16</mn></mfrac><msub> <mi>n</mi> <mn>4</mn></msub><mo>+</mo><msub> <mi>n</mi> <mn>5</mn></msub><mo>></mo><mi>N</mi><mo>,</mo><msub> <mi>n</mi> <mn>1</mn></msub><mo>,</mo><msub> <mi>n</mi> <mn>2</mn></msub><mo>,</mo><msub> <mi>n</mi> <mn>3</mn></msub><mo>,</mo><msub> <mi>n</mi> <mn>4</mn></msub><mo>=</mo><mn>0,1</mn><mo>;</mo><msub> <mi>n</mi> <mn>5</mn></msub><mo>=</mo><mn>0</mn><mo>.</mo><mo>.</mo><mo>.</mo><mfrac> <mi>N</mi> <mn>16</mn></mfrac><mo>-</mo><mn>1</mn> </mrow> <mrow><mi>k</mi><mo>=</mo><msub> <mrow><mo>&lt;</mo><msub> <mi>k</mi> <mn>1</mn></msub><mo>+</mo><mn>2</mn><msub> <mi>k</mi> <mn>2</mn></msub><mo>+</mo><mn>4</mn><msub> <mi>k</mi> <mn>3</mn></msub><mo>+</mo><mn>8</mn><msub> <mi>k</mi> <mn>4</mn></msub><mo>+</mo><mn>16</mn><msub> <mi>k</mi> <mn>5</mn></msub><mo>></mo><mi>N</mi><mo>,</mo><mi>k</mi> </mrow> <mn>1</mn></msub><mo>,</mo><msub> <mi>k</mi> <mn>2</mn></msub><mo>,</mo><msub> <mi>k</mi> <mn>3</mn></msub><mo>,</mo><msub> <mi>k</mi> <mn>4</mn></msub><mo>=</mo><mn>0,1</mn><mo>;</mo><msub> <mi>n</mi> <mn>5</mn></msub><mo>=</mo><mn>0</mn><mo>.</mo><mo>.</mo><mo>.</mo><mfrac> <mi>N</mi> <mn>16</mn></mfrac><mo>-</mo><mn>1</mn> </mrow>将上式代入(1)中有 <mrow><mi>X</mi><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>+</mo> <mn>16</mn> <msub><mi>k</mi><mn>5</mn> </msub> <mo>)</mo></mrow><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><msub> <mi>n</mi> <mn>5</mn></msub><mo>=</mo><mn>0</mn> </mrow> <mrow><mfrac> <mi>N</mi> <mn>16</mn></mfrac><mo>-</mo><mn>1</mn> </mrow></munderover><munderover> <mi>&Sigma;</mi> <mrow><msub> <mi>n</mi> <mn>4</mn></msub><mo>=</mo><mn>0</mn> </mrow> <mn>1</mn></munderover><munderover> <mi>&Sigma;</mi> <mrow><msub> <mi>n</mi> <mn>3</mn></msub><mo>=</mo><mn>0</mn> </mrow> <mn>1</mn></munderover><munderover> <mi>&Sigma;</mi> <mrow><msub> <mi>n</mi> <mn>2</mn></msub><mo>=</mo><mn>0</mn> </mrow> <mn>1</mn></munderover><munderover> <mi>&Sigma;</mi> <mrow><msub> <mi>n</mi> <mn>1</mn></msub><mo>=</mo><mn>0</mn> </mrow> <mn>1</mn></munderover><mi>x</mi><mrow> <mo>(</mo> <mfrac><mi>N</mi><mn>2</mn> </mfrac> <msub><mi>n</mi><mn>1</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>4</mn> </mfrac> <msub><mi>n</mi><mn>2</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>8</mn> </mfrac> <msub><mi>n</mi><mn>3</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>16</mn> </mfrac> <msub><mi>n</mi><mn>4</mn> </msub> <mo>+</mo> <msub><mi>n</mi><mn>5</mn> </msub> <mo>)</mo></mrow><msubsup> <mi>W</mi> <mi>N</mi> <mi>nk</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo></mrow> </mrow>其中旋转因子表示为 <mrow><msubsup> <mi>W</mi> <mi>N</mi> <mi>nk</mi></msubsup><mo>=</mo><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mrow> <mo>(</mo> <mfrac><mi>N</mi><mn>2</mn> </mfrac> <msub><mi>n</mi><mn>1</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>4</mn> </mfrac> <msub><mi>n</mi><mn>2</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>8</mn> </mfrac> <msub><mi>n</mi><mn>3</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>16</mn> </mfrac> <msub><mi>n</mi><mn>4</mn> </msub> <mo>+</mo> <msub><mi>n</mi><mn>5</mn> </msub> <mo>)</mo></mrow><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>+</mo> <mn>16</mn> <msub><mi>k</mi><mn>5</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup> </mrow> <mrow><mo>=</mo><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mfrac> <mi>N</mi> <mn>2</mn></mfrac><msub> <mi>n</mi> <mn>1</mn></msub><msub> <mi>k</mi> <mn>1</mn></msub> </mrow></msubsup><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mfrac> <mi>N</mi> <mn>4</mn></mfrac><msub> <mi>n</mi> <mn>2</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mfrac> <mi>N</mi> <mn>8</mn></mfrac><msub> <mi>n</mi> <mn>3</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup><mo>*</mo><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mfrac> <mi>N</mi> <mn>16</mn></mfrac><msub> <mi>n</mi> <mn>4</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup><msubsup> <mi>W</mi> <mi>N</mi> <mrow><msub> <mi>n</mi> <mn>5</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>+</mo> <mn>16</mn> <msub><mi>k</mi><mn>5</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup> </mrow> <mrow><mo>=</mo><msup> <mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo> </mrow> <mrow><msub> <mi>n</mi> <mn>1</mn></msub><msub> <mi>k</mi> <mn>1</mn></msub> </mrow></msup><msup> <mrow><mo>(</mo><mo>-</mo><mi>j</mi><mo>)</mo> </mrow> <mrow><msub> <mi>n</mi> <mn>2</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>)</mo></mrow> </mrow></msup><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mfrac> <mi>N</mi> <mn>8</mn></mfrac><msub> <mi>n</mi> <mn>3</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup><mo>*</mo><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mfrac> <mi>N</mi> <mn>16</mn></mfrac><msub> <mi>n</mi> <mn>4</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup><msubsup> <mi>W</mi> <mi>N</mi> <mrow><msub> <mi>n</mi> <mn>5</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup><msubsup> <mi>W</mi> <mi>N</mi> <mrow><mn>16</mn><msub> <mi>n</mi> <mn>5</mn></msub><msub> <mi>k</mi> <mn>5</mn></msub> </mrow></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo></mrow> </mrow>将(3)代入(2)式中,并简化得到一组长度为N/16D FT的集合如下 <mrow><mi>X</mi><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>+</mo> <mn>16</mn> <msub><mi>k</mi><mn>5</mn> </msub> <mo>)</mo></mrow><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><msub> <mi>n</mi> <mn>5</mn></msub><mo>=</mo><mn>0</mn> </mrow> <mrow><mfrac> <mi>N</mi> <mn>16</mn></mfrac><mo>-</mo><mn>1</mn> </mrow></munderover><mo>[</mo><msub> <mi>Q</mi> <mfrac><mi>N</mi><mn>16</mn> </mfrac></msub><mrow> <mo>(</mo> <msub><mi>n</mi><mn>5</mn> </msub> <mo>,</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>,</mo> <msub><mi>k</mi><mn>2</mn> </msub> <mo>,</mo> <msub><mi>k</mi><mn>3</mn> </msub> <mo>,</mo> <msub><mi>k</mi><mn>4</mn> </msub> <mo>)</mo></mrow><msubsup> <mi>W</mi> <mi>N</mi> <mrow><msub> <mi>n</mi> <mn>5</mn></msub><mrow> <mo>(</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>+</mo> <mn>2</mn> <msub><mi>k</mi><mn>2</mn> </msub> <mo>+</mo> <mn>4</mn> <msub><mi>k</mi><mn>3</mn> </msub> <mo>+</mo> <mn>8</mn> <msub><mi>k</mi><mn>4</mn> </msub> <mo>)</mo></mrow> </mrow></msubsup><mo>]</mo><msubsup> <mi>W</mi> <mfrac><mi>N</mi><mn>16</mn> </mfrac> <mrow><msub> <mi>n</mi> <mn>5</mn></msub><msub> <mi>k</mi> <mn>5</mn></msub> </mrow></msubsup> </mrow>其中,令Q(n5,k1,k2,k3,k4)为第四级蝶形运算,表达式为其中T(n5,k1,k2,k3)为第三级蝶形运算,表达式为其中H(n5,k1,k2)为第二级蝶形运算,表达式为其中B(n5,k1)为第一级蝶形运算,表达式为 <mrow><msub> <mi>B</mi> <mfrac><mi>N</mi><mn>2</mn> </mfrac></msub><mrow> <mo>(</mo> <mfrac><mi>N</mi><mn>4</mn> </mfrac> <msub><mi>n</mi><mn>2</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>8</mn> </mfrac> <msub><mi>n</mi><mn>3</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>16</mn> </mfrac> <msub><mi>n</mi><mn>4</mn> </msub> <mo>+</mo> <msub><mi>n</mi><mn>5</mn> </msub> <mo>,</mo> <msub><mi>k</mi><mn>1</mn> </msub> <mo>)</mo></mrow><mo>=</mo><mi>x</mi><mrow> <mo>(</mo> <mfrac><mi>N</mi><mn>4</mn> </mfrac> <msub><mi>n</mi><mn>2</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>8</mn> </mfrac> <msub><mi>n</mi><mn>3</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>16</mn> </mfrac> <msub><mi>n</mi><mn>4</mn> </msub> <mo>+</mo> <msub><mi>n</mi><mn>5</mn> </msub> <mo>)</mo></mrow><mo>+</mo><msup> <mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo> </mrow> <msub><mi>k</mi><mn>1</mn> </msub></msup><mi>x</mi><mrow> <mo>(</mo> <mfrac><mi>N</mi><mn>4</mn> </mfrac> <msub><mi>n</mi><mn>2</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>8</mn> </mfrac> <msub><mi>n</mi><mn>3</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>16</mn> </mfrac> <msub><mi>n</mi><mn>4</mn> </msub> <mo>+</mo> <msub><mi>n</mi><mn>5</mn> </msub> <mo>+</mo> <mfrac><mi>N</mi><mn>2</mn> </mfrac> <mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo></mrow> </mrow>FSA00000236185400016.tif,FSA000002361854000111.tif,FSA000002361854000112.tif,FSA000002361854000113.tif,FSA000002361854000114.tif
2. 一种基于权利要求1所述改进基24算法的多路FFT处理器中乘法器的复用方法, FFT处理器采用SDF结构,其特征具体步骤如下(1)将m路FFT处理器输入数据均分为上下两组,并将两组输入数据分别以正序和逆序 数据并行输入;(2)在每一级的蝶形运算单元中,都是将两数的加法结果先输出到下一级运算中,而减 法结果被暂时存储在存储单元中,减法结果在N/21个周期后输出到下一级运算,L表示第L 级蝶形运算。
3. 一种基于权利要求2所述方法实现的多路FFT处理器,其特征在于为由权利要求2 中的多路FFT信号流程映射得到多路FFT处理器。
全文摘要
本发明属于数字信号处理集成电路设计技术领域,具体为基于基24算法的多路FFT处理器中乘法器的复用方法。本发明提出了一种改进的基24频域抽取FFT算法,减少FFT处理器设计中通用乘法器的数目,并且使基于此算法设计的单路FFT处理器中蝶形运算的常复系数乘法器利用率低于50%,从而提出多路FFT处理器中常复系数乘法器的复用方法及相应的FFT处理器结构。本发明实现不同路中常复系数乘法器的复用,减少了FFT处理器的乘法器数目,同时维持吞吐率不变。
文档编号G06F9/302GK101937332SQ20101025762
公开日2011年1月5日 申请日期2010年8月19日 优先权日2010年8月19日
发明者周晓方, 汪文义, 王琳凯 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1