Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
INTERPOLATION FILTERING METHOD AND INTERPOLATION FILTER
Document Type and Number:
WIPO Patent Application WO/2014/127663
Kind Code:
A1
Abstract:
Embodiment of the present invention discloses an interpolation filtering method and interpolation filter, which include setting N filter processing units, wherein the filter processing unit includes a filter data buffering unit, and the filter data buffering unit includes M data buffering sub-units; shifting and inputting source data points one by one to the filter data buffering unit of each filter processing unit in parallel and synchronously, processing filter operation to the source data points in each filter processing unit after the source data points are written to each data buffering sub-unit in each filter data buffering unit, and respectively outputting the operation result of the filter operation for each filter processing unit to an output data buffering unit; shifting and inputting next source data points to the filter data buffering unit of each filter processing unit until processing X times filter operation to each filter processing unit, obtaining X operation results and outputting the operation results, wherein X is the number of the source data points.

Inventors:
ZHONG BIN (CN)
GUAN HUABO (CN)
MA YANLING (CN)
Application Number:
PCT/CN2013/089334
Publication Date:
August 28, 2014
Filing Date:
December 13, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
International Classes:
H03H17/02
Foreign References:
CN1422089A2003-06-04
CN1992517A2007-07-04
CN101072019A2007-11-14
Attorney, Agent or Firm:
AFD CHINA INTELLECTUAL PROPERTY LAW OFFICE (CN)
北京安信方达知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1、 一种插值滤波方法, 包括:

设置 N个滤波处理单元, 所述滤波处理单元中包含滤波数据緩冲单元, 所述滤波数据緩冲单元中包含 M个数据緩冲子单元, 其中, N为滤波的上釆 样倍数, M为 L/N, L为滤波的阶数, 其中, N、 M、 L均为正整数;

逐一将源数据点并行同步的向每个滤波处理单元的滤波数据緩冲单元进 行移位输入, 在每个滤波数据緩冲单元中的每个数据緩冲子单元均写入源数 据点后, 对每个滤波处理单元中的源数据点进行滤波运算, 并将对每个滤波 处理单元的本次滤波运算的运算结果分别输出到在输出数据緩冲单元中的本 次滤波运算的运算结果对应的输出緩冲子单元中; 以及

向每个滤波处理单元的滤波数据緩冲单元移位输入下一个源数据点, 对 每个滤波处理单元中的源数据点进行滤波运算, 并将本次滤波运算的运算结 果输出到输出数据緩冲单元中的本次滤波运算的运算结果对应的输出緩冲子 单元中, 直到对每个滤波处理单元进行 X次滤波运算, 得到 X个运算结果并 将运算结果输出, 其中, X为源数据点的个数且为正整数。

2、 如权利要求 1所述的方法, 其中, 对每个滤波处理单元中的源数据点 进行滤波运算, 包括:

对于第一个滤波处理单元, 将所述第一个滤波处理单元的滤波数据緩冲 单元当前緩存的源数据点中, 最早被输入到所述第一个滤波处理单元中的源 数据点作为本次滤波运算的运算结果。

3、 如权利要求 1或 2所述的方法, 还包括:

对于第二到第 N个滤波处理单元, 分别设置滤波系数緩冲单元, 所述滤 波系数緩冲单元包含与滤波数据緩冲单元的数据緩冲子单元——对应的 M个 系数緩冲子单元, 所述 M个系数緩冲子单元各自保存对应的数据緩冲子单元 中的源数据点的要乘的滤波系数, 其中, M、 N均为正整数。

4、 如权利要求 3所述的方法, 其中, 对每个滤波处理单元中的源数据点 进行滤波运算, 包括: 对于第二到第 N个滤波处理单元, 将滤波处理单元的滤波数据緩冲单元 中的数据緩冲子单元划分为多个滤波组, 每个滤波组包含多个数据緩冲子单 元, 对每个滤波组中的数据緩冲子单元中的源数据点进行串并变换, 对与滤 波组中的数据緩冲子单元对应的系数緩冲子单元中的滤波系数进行串并变 换, 并行的将滤波组中数据緩冲子单元中的源数据点与对应的系数緩冲子单 元中的滤波系数相乘, 将乘积相加, 得到滤波组的滤波结果; 以及

将每个滤波组的滤波结果相加, 并对相加后的结果进行并串变换, 得到 本次滤波运算的运算结果。

5、 如权利要求 1所述的方法, 其中:

所述输出数据緩冲单元包含 X*N个输出緩冲子单元;

将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数 据緩冲单元中的本次滤波运算的运算结果对应的输出緩冲子单元中, 包括: 对于第一个滤波处理单元, 第一次滤波运算到第 X次滤波运算的运算结 果对应的输出緩冲子单元在输出数据緩冲单元中的序号依次为 0,N,2N,3N... (X-l)N,根据滤波运算的次数将运算结果输出到对应的输出緩冲 子单元中; 以及

对于第 K个滤波处理单元,第一次滤波运算到第 X次滤波运算的运算结 果对应的输出緩冲子单元在输出数据緩冲单元中的序号依次为

K- 1 ,Ν+Κ- 1 ,2N+K- 1 ,3Ν+Κ- 1... (X- 1 )Ν+Κ- 1 , 根据滤波运算的次数将运算结果 输出到对应的输出緩冲子单元中, 其中, Κ为 2~Ν且为正整数。

6、 一种插值滤波器, 包括: 源数据緩冲单元、 Ν个滤波处理单元和输出 数据緩冲单元, 每个滤波处理单元中均包含滤波数据緩冲单元, 所述滤波数 据緩冲单元中包含 Μ个数据緩冲子单元, 其中, Ν为滤波的上釆样倍数, Μ 为 L/N, L为滤波的阶数, N、 M、 L均为正整数; 其中:

所述源数据緩冲单元设置成緩冲源数据点, 逐一将源数据点并行同步的 向每个滤波处理单元的滤波数据緩冲单元进行移位输入, 并在所述滤波处理 单元完成一次滤波运算后, 向每个滤波处理单元的滤波数据緩冲单元移位输 入下一个源数据点; 以及 所述滤波处理单元设置成在包含的滤波数据緩冲单元中的每个数据緩冲 子单元均写入源数据点后,对滤波数据緩冲单元中的源数据点进行滤波运算, 并将本次滤波运算的运算结果输出到在输出数据緩冲单元中的本次滤波运算 的运算结果对应的输出緩冲子单元中, 在所述源数据緩冲单元输入下一个源 数据点后, 对源数据点进行滤波运算, 并将本次滤波运算的运算结果输出到 输出数据緩冲单元中的本次滤波运算的运算结果对应的输出緩冲子单元中, 直到进行 X次滤波运算, 得到 X个运算结果并将运算结果输出, 其中, X为 源数据点的个数且为正整数。

7、 如权利要求 6所述的滤波器, 其中:

所述 N个滤波处理单元中的第一个滤波处理单元设置成将所述第一个滤 波处理单元的滤波数据緩冲单元当前緩存的源数据点中, 最早被输入到所述 第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。

8、 如权利要求 6或 7所述的滤波器, 其中:

所述 N个滤波处理单元中的第二到第 N个滤波处理单元包含与滤波数据 緩冲单元对应的滤波系数緩冲单元, 所述滤波系数緩冲单元包含与滤波数据 緩冲单元的数据緩冲子单元——对应的 M个系数緩冲子单元, 所述 M个系 数緩冲子单元各自保存对应的数据緩冲子单元中的源数据点的要乘的滤波系 数, 其中, M、 N均为正整数。

9、 如权利要求 8所述的滤波器, 其中:

所述第二到第 N个滤波处理单元的滤波数据緩冲单元中的数据緩冲子单 元分为多个滤波组, 每个滤波组包含多个数据緩冲子单元;

所述第二到第 N个滤波处理单元包含与滤波组中的数据緩冲子单元连接 的串并变换单元, 与滤波组中的数据緩冲子单元对应的系数緩冲子单元连接 的串并变换单元, 滤波组对应的运算单元以及并串变换单元, 其中:

所述与滤波组中的数据緩冲子单元连接的串并变换单元设置成对连接的 数据緩冲子单元中的源数据点进行串并变换;

所述与滤波组中的数据緩冲子单元对应的系数緩冲子单元连接的串并变 换单元设置成对连接的系数緩冲子单元中的滤波系数进行串并变换; 所述滤波组对应的运算单元分别与所述与滤波组中的数据緩冲子单元连 接的串并变换单元和所述与滤波组中的数据緩冲子单元对应的系数緩冲子单 元连接的串并变换单元连接, 其设置成并行的将滤波组中数据緩冲子单元中 的源数据点与对应的系数緩冲子单元中的滤波系数相乘, 将乘积相加, 得到 滤波组的滤波结果, 并接收相邻的前一个滤波组对应的运算单元发送的滤波 组的滤波结果, 将接收到的滤波组的滤波结果与自身得到的滤波组的滤波结 果相加, 将相加的结果发送给相邻的下一个滤波组对应的运算单元; 以及 所述并串变换单元设置成对每个滤波组的滤波结果相加后的结果进行并 串变换, 得到本次滤波运算的运算结果。

10、 如权利要求 6所述的滤波器, 其中:

所述输出数据緩冲单元包含 X*N个输出緩冲子单元;

所述 N个滤波处理单元中的第一个滤波处理单元的第一次滤波运算到第 X次滤波运算的运算结果对应的输出緩冲子单元在输出数据緩冲单元中的序 号依次为 0,N,2N,3N...(X-1)N; 以及

所述 N个滤波处理单元中的第 K个滤波处理单元的第一次滤波运算到第 X次滤波运算的运算结果对应的输出緩冲子单元在输出数据緩冲单元中的序 号依次为 K- 1 ,Ν+Κ- 1 ,2N+K- 1 ,3Ν+Κ- 1... (X- 1 )Ν+Κ- 1 , 其中, Κ为 2~Ν且为正 整数。

Description:
一种插值滤波方法及插值滤波器

技术领域

本发明涉及通信技术领域, 尤其涉及一种插值滤波方法及插值滤波器。

背景技术

在 WCDMA ( Wideband Code Division Multiple Access, 宽带码分多址) 通信系统中, 需要对上行信号进行多径搜索, 在多径搜索的基础上进行上行 信号的解扰解扩及后续的各种符号级处理。 为了支持越来越高的传输速率, 物理层调制解调技术也在不断地发展, 从 BPSK (二进制相移键控) 、 QPSK (四相相移键控 )到 16QAM (正交幅度调制 )及 64QAM等, 特别是 3GPP 的 R8协议提出了 BOOSTING (突发传输)模式用到了大量的高阶调制解调 技术, 这些技术对多径搜索精度提出了越来越高的要 求。

传统的多径搜索算法, 釆用 2倍釆样的 ADP (功率时延语)输入, 在此 基础上搜索峰值点并进行相位调整后得到最后 的多径。 此过程中引入 3/8chip (贴片精度单位)的搜索精度误差。 高阶的解调技术, 需要这个误差维持 在 l/8chip, 传统的搜索器无法满足要求。

为了支持高阶解调的性能, WCDMA的多径搜索通过对原来的 2倍釆样 的 ADP进行上釆样插值到 8倍来支持更高的搜索精度。又由于硬件实现 釆 样插值会极大的增加总线带宽, 软件实现插值是一种有效的方法。

新型的 EOL (早中晚插值滤波搜索器 )搜索器, 通过上釆样插值的方法, 将 2倍釆样的 ADP插值成 8倍釆样的 ADP,并在此基础上, 实现更高精度的 搜索, 满足了高阶解调的要求。

EOL搜索器的核心在于上釆样插值, 即通过插值来实现釆样率的提高。 在相关的 WCDMA的实现体系中,搜索器的上釆样插值部分 要用软件来实 现。 因为在芯片上直接提高数据釆样率, 会导致系统的带宽需求急剧上升, 超出芯片总线的承受能力。 但是软件实现插值滤波器, 则对处理器计算能力 的要求非常高。 据估算, 相关的软件插值滤波器, 在 732MHz的处理器上只 能提供 6个高速率用户 EOL搜索结果, 这很难满足实际系统的需求。

发明内容

本发明的实施例提供一种插值滤波方法及插值 滤波器, 能够提高插值滤 波的效率, 使处理器能够同时为更多用户提供多径搜索。

本发明实施例的一种插值滤波方法, 包括:

设置 N个滤波处理单元, 所述滤波处理单元中包含滤波数据緩冲单元, 所述滤波数据緩冲单元中包含 M个数据緩冲子单元, 其中, N为滤波的上釆 样倍数, M为 L/N, L为滤波的阶数, 其中, N、 M、 L均为正整数;

逐一将源数据点并行同步的向每个滤波处理单 元的滤波数据緩冲单元进 行移位输入, 在每个滤波数据緩冲单元中的每个数据緩冲子 单元均写入源数 据点后, 对每个滤波处理单元中的源数据点进行滤波运 算, 并将对每个滤波 处理单元的本次滤波运算的运算结果分别输出 到在输出数据緩冲单元中的本 次滤波运算的运算结果对应的输出緩冲子单元 中; 以及

向每个滤波处理单元的滤波数据緩冲单元移位 输入下一个源数据点, 对 每个滤波处理单元中的源数据点进行滤波运算 , 并将本次滤波运算的运算结 果输出到输出数据緩冲单元中的本次滤波运算 的运算结果对应的输出緩冲子 单元中, 直到对每个滤波处理单元进行 X次滤波运算, 得到 X个运算结果并 将运算结果输出, 其中, X为源数据点的个数且为正整数。

对每个滤波处理单元中的源数据点进行滤波运 算, 包括:

对于第一个滤波处理单元, 将所述第一个滤波处理单元的滤波数据緩冲 单元当前緩存的源数据点中, 最早被输入到所述第一个滤波处理单元中的源 数据点作为本次滤波运算的运算结果。

还包括:

对于第二到第 N个滤波处理单元, 分别设置滤波系数緩冲单元, 所述滤 波系数緩冲单元包含与滤波数据緩冲单元的数 据緩冲子单元——对应的 M个 系数緩冲子单元, 所述 M个系数緩冲子单元各自保存对应的数据緩冲 单元 中的源数据点的要乘的滤波系数, 其中, M、 N均为正整数。 对每个滤波处理单元中的源数据点进行滤波运 算, 包括: 对于第二到第 N个滤波处理单元, 将滤波处理单元的滤波数据緩冲单元 中的数据緩冲子单元划分为多个滤波组, 每个滤波组包含多个数据緩冲子单 元, 对每个滤波组中的数据緩冲子单元中的源数据 点进行串并变换, 对与滤 波组中的数据緩冲子单元对应的系数緩冲子单 元中的滤波系数进行串并变 换, 并行的将滤波组中数据緩冲子单元中的源数据 点与对应的系数緩冲子单 元中的滤波系数相乘, 将乘积相加, 得到滤波组的滤波结果; 以及

将每个滤波组的滤波结果相加, 并对相加后的结果进行并串变换, 得到 本次滤波运算的运算结果。

所述输出数据緩冲单元包含 X*N个输出緩冲子单元;

将对每个滤波处理单元的本次滤波运算的运算 结果分别输出到在输出数 据緩冲单元中的本次滤波运算的运算结果对应 的输出緩冲子单元中, 包括: 对于第一个滤波处理单元, 第一次滤波运算到第 X次滤波运算的运算结 果对应的输出緩冲子单元在输出数据緩冲单元 中的序号依次为 0,N,2N,3N... (X-l)N,根据滤波运算的次数将运算结果输出到 应的输出緩冲 子单元中; 以及

对于第 K个滤波处理单元,第一次滤波运算到第 X次滤波运算的运算结 果对应的输出緩冲子单元在输出数据緩冲单元 中的序号依次为

K- 1 ,Ν+Κ- 1 ,2N+K- 1 ,3Ν+Κ- 1... (X- 1 )Ν+Κ- 1 , 根据滤波运算的次数将运算结果 输出到对应的输出緩冲子单元中, 其中, Κ为 2~Ν且为正整数。

一种插值滤波器, 包括: 源数据緩冲单元、 Ν个滤波处理单元和输出数 据緩冲单元, 每个滤波处理单元中均包含滤波数据緩冲单元 , 所述滤波数据 緩冲单元中包含 Μ个数据緩冲子单元, 其中, Ν为滤波的上釆样倍数, Μ为 L/N, L为滤波的阶数, N、 M、 L均为正整数; 其中:

所述源数据緩冲单元设置成緩冲源数据点, 逐一将源数据点并行同步的 向每个滤波处理单元的滤波数据緩冲单元进行 移位输入, 并在所述滤波处理 单元完成一次滤波运算后, 向每个滤波处理单元的滤波数据緩冲单元移位 输 入下一个源数据点; 以及 所述滤波处理单元设置成在包含的滤波数据緩 冲单元中的每个数据緩冲 子单元均写入源数据点后,对滤波数据緩冲单 元中的源数据点进行滤波运算, 并将本次滤波运算的运算结果输出到在输出数 据緩冲单元中的本次滤波运算 的运算结果对应的输出緩冲子单元中, 在所述源数据緩冲单元输入下一个源 数据点后, 对源数据点进行滤波运算, 并将本次滤波运算的运算结果输出到 输出数据緩冲单元中的本次滤波运算的运算结 果对应的输出緩冲子单元中, 直到进行 X次滤波运算, 得到 X个运算结果并将运算结果输出, 其中, X为 源数据点的个数且为正整数。

所述 N个滤波处理单元中的第一个滤波处理单元设 成将所述第一个滤 波处理单元的滤波数据緩冲单元当前緩存的源 数据点中, 最早被输入到所述 第一个滤波处理单元中的源数据点作为本次滤 波运算的运算结果。

所述 N个滤波处理单元中的第二到第 N个滤波处理单元包含与滤波数据 緩冲单元对应的滤波系数緩冲单元, 所述滤波系数緩冲单元包含与滤波数据 緩冲单元的数据緩冲子单元——对应的 M个系数緩冲子单元, 所述 M个系 数緩冲子单元各自保存对应的数据緩冲子单元 中的源数据点的要乘的滤波系 数, 其中, M、 N均为正整数。

所述第二到第 N个滤波处理单元的滤波数据緩冲单元中的数 緩冲子单 元分为多个滤波组, 每个滤波组包含多个数据緩冲子单元;

所述第二到第 N个滤波处理单元包含与滤波组中的数据緩冲 单元连接 的串并变换单元, 与滤波组中的数据緩冲子单元对应的系数緩冲 子单元连接 的串并变换单元, 滤波组对应的运算单元以及并串变换单元, 其中:

所述与滤波组中的数据緩冲子单元连接的串并 变换单元设置成对连接的 数据緩冲子单元中的源数据点进行串并变换;

所述与滤波组中的数据緩冲子单元对应的系数 緩冲子单元连接的串并变 换单元设置成对连接的系数緩冲子单元中的滤 波系数进行串并变换;

所述滤波组对应的运算单元分别与所述与滤波 组中的数据緩冲子单元连 接的串并变换单元和所述与滤波组中的数据緩 冲子单元对应的系数緩冲子单 元连接的串并变换单元连接, 其设置成并行的将滤波组中数据緩冲子单元中 的源数据点与对应的系数緩冲子单元中的滤波 系数相乘, 将乘积相加, 得到 滤波组的滤波结果, 并接收相邻的前一个滤波组对应的运算单元发 送的滤波 组的滤波结果, 将接收到的滤波组的滤波结果与自身得到的滤 波组的滤波结 果相加, 将相加的结果发送给相邻的下一个滤波组对应 的运算单元; 以及 所述并串变换单元设置成对每个滤波组的滤波 结果相加后的结果进行并 串变换, 得到本次滤波运算的运算结果。

所述输出数据緩冲单元包含 X*N个输出緩冲子单元;

所述 N个滤波处理单元中的第一个滤波处理单元的 一次滤波运算到第 X次滤波运算的运算结果对应的输出緩冲子单 在输出数据緩冲单元中的序 号依次为 0,N,2N,3N...(X-1)N; 以及

所述 N个滤波处理单元中的第 K个滤波处理单元的第一次滤波运算到第 X次滤波运算的运算结果对应的输出緩冲子单 在输出数据緩冲单元中的序 号依次为 K- 1 ,Ν+Κ- 1 ,2N+K- 1 ,3Ν+Κ- 1... (X- 1 )Ν+Κ- 1 , 其中, Κ为 2~Ν且为正 整数。

综上所述, 本发明实施例具有如下有益效果:

( 1 )省略了上釆样滤波前的插 0操作, 省略了与 0数据进行相乘加的操 作;

( 2 )通过对滤波系数进行排列的方式以及对滤波 算的运算结果分类输 出的方式, 使得在进行滤波运算时, 源数据点与滤波系数已经天然对齐, 省 略了通过输出数据索引计算与此输出数据对应 的输入数据的系数索引的环 节, 形成第一层次的并行运算结构;

( 3 )由于源数据点与滤波系数已经天然对齐, 在进行滤波运算时, 则可 以通过串并变换, 将分散的源数据点与滤波系数, 分别组装成更高位宽的数 据、 系数, 以利用处理器本身的并行处理能力, 形成第二层次的并行;

( 4 )在进行滤波运算时, 能够换行连续的乘加运算, 将成倍提高处理器 的流水线单元的效率, 避免处理器流水线空泡, 提高了处理器执行效率, 形 成第三第四层次的并行;

( 5 )对于第一个滤波处理单元中的源数据点, 不进行与滤波系数的乘运 算, 减少了不必要的滤波运算;

本发明实施例的并行的上釆样插值滤波方法, 根据数据的位宽, 在处理 器釆用 2倍并行执行的情况下, 滤波效率提高了 9倍; 在处理器釆用 4倍并 行执行的情况, 滤波效率提高了 17倍。 在实际的 WCDMA系统中, 将系统 所能支持的高精度搜索用户的数量提高为原来 的 10倍。

附图概述

图 1为本发明实施方式的插值滤波方法的流程图

图 2为本发明实施方式的插值滤波器的架构图。

本发明的较佳实施方式

由于软件实现上釆样插值, 其大量的乘加运算需要消耗巨量的处理器计 算时间, 另外由于滤波运算时, 源数据点与滤波系数对齐关系复杂, 每计算 一个插值后的数据点, 都需要先计算每个源数据点对应的插值系数索 引, 消 耗大量额外的辅助计算资源; 且由于在计算时, 滤波系数与源数据点的对应 关系未知, 无法实现乘加运算的并行化及流水化, 处理器的利用率低。 在现 代的高性能处理器上, 传统的软件实现上釆样插值方法只能支持极少 量的用 户, 成为系统的一个瓶颈。

基于相关软件滤波方法的缺点, 本文提出了一种适合于 RISC处理器实 现, 具有高度并行运算结构, 具有极高运算效率, 适用于 WCDMA的高度并 行的上釆样插值滤波方法及插值滤波器, 极大提高了插值效率, 在软件实现 插值的 WCDMA系统上支持更多的高精度搜索用户。

本实施方式中, 根据上釆样插值的滤波系数的特点及滤波运算 的特点, 设计了一种全新的运算结构, 特别适合于软件实现插值滤波。 本实施方式的 插值滤波器, 最大限度的减少了非必要的插值运算及非必要 的对于系数对齐 的辅助运行, 还使并行运算成为可能, 充分利用了 RISC处理器本身的并行 处理能力, 在实现插值滤波的并行计算及提高插值运算效 率方面, 效果非常 明显。 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中的特 征可以相互组合。 下面将参考附图并结合实施例来详细说明本发 明实施例。

本实施方式中假设插值滤波器的上釆样倍数为 N,源数据点的个数为 X, 则插值滤波后得到的总的数据点的个数为 X*N, 滤波器的阶数 L为 N*M, 即 每个源数据点均与 M个滤波系数进行滤波运算, 其中 N、 M、 L、 X均为正 整数。

如图 1所示, 本实施方式的插值滤波方法, 包括:

步骤 101 : 设置 N个滤波处理单元, 每个滤波处理单元中包含滤波数据 緩冲单元, 滤波数据緩冲单元中包含 M个数据緩冲子单元, 每个数据緩冲子 单元用于緩存一个源数据点 D;

步骤 102: 对于 N*M阶滤波器, 共包含 N*M个滤波系数 C, 将 N*M个 滤波系数, 分成 N组, 其中, 组 1中的滤波系数为第一个滤波处理单元中的 源数据点将要乘的滤波系数, 组 1 中 的滤波系数的序号为 0,N,2N,3N ... ... (M-l)N,组 2中的滤波系数为第二个滤波处理单元中的源 据 点将要乘的滤波系数, 组 2 中的滤波系数的序号为 1,N+1,2N+1,3N+1 ... ...

(Μ-1)Ν+1 , 以此类推到组 Ν中的滤波系数;

步骤 103 : 分别为第二个滤波处理单元到第 Ν个滤波处理单元设置滤波 系数緩冲单元, 滤波系数緩冲单元包含 Μ个系数緩冲子单元, 滤波系数緩冲 单元的 Μ个系数緩冲子单元与对应的滤波数据緩冲单 的 Μ个数据緩冲子 单元——对应, 用于緩存对应的数据緩冲子单元中的源数据点 将要乘的滤波 系数;

由于组 1中的滤波系数除 ^_ 为 1外均为 0, 因此, 未对第一个滤波 处理单元设置滤波系数緩冲单元。

步骤 104: 将组 2到组 Ν中的滤波系数对应的保存到相应的滤波系数 冲单元的系数緩冲子单元中;

步骤 105 : 逐一将源数据点并行同步的向每个滤波处理单 元的滤波数据 緩冲单元进行移位输入, 在每个滤波数据緩冲单元中的每个数据緩冲子 单元 均写入源数据点后, 对每个滤波处理单元中的源数据点进行滤波运 算; 请参考图 2, 将源数据点 D 0 ~D X 并行同步的移位输入到每个滤波处理单 元的滤波数据緩冲单元的数据緩冲子单元, 每个数据緩冲子单元中緩存一个 源数据点。

对每个滤波处理单元中的源数据点进行滤波运 算, 包括:

对于第一个滤波处理单元, 将第一个滤波处理单元的滤波数据緩冲单元 当前緩存的源数据点中, 最早被输入到第一个滤波处理单元中的源数据 点作 为本次滤波运算的运算结果。 在图 2中的瞬时状态, 当前最早输入到第一个 滤波处理单元中的源数据点为 D Q , 在进行下一次的移位输入后, 最早输入到 第一个滤波处理单元中的源数据点为 D l Do已移出第一滤波处理单元。

对于第二到第 N个滤波处理单元, 将滤波处理单元中的滤波数据緩冲单 元的数据緩冲子单元划分为多个滤波组, 每个滤波组包含多个数据緩冲子单 元, 对每个滤波组中的数据緩冲子单元中的源数据 点进行串并变换, 对与滤 波组中的数据緩冲子单元对应的系数緩冲子单 元中的滤波系数进行串并变 换, 并行的将滤波组中数据緩冲子单元中的源数据 点与对应的系数緩冲子单 元中的滤波系数相乘, 将乘积相加, 得到滤波组的滤波结果; 并将每个滤波 组的滤波结果相加, 并对相加后的结果进行并串变换, 得到本次滤波运算的 运算结果。 图 2中每个滤波组包含两个数据緩冲子单元。

步骤 106: 将每个滤波处理单元的本次滤波运算的运算结 果分别输出到 在输出数据緩冲单元中的本次滤波运算的运算 结果对应的输出緩冲子单元 中;

输出数据緩冲单元包含 X*N个输出緩冲子单元;

对于第一个滤波处理单元, 第一次滤波运算〜第 X次滤波运算的运算结 果对应的输出緩冲子单元在输出数据緩冲单元 中的序号依次为 0,N,2N,3N... (X-l)N,根据滤波运算的次数将运算结果输出到 应的输出緩冲 子单元中; 对于滤波后的第一路数据, 是直接按滤波后的位置输出。 即源数 据点的第 0个(D 0 )输出到输出緩冲子单元 O 0 , 源数据点的第 1个(D 输 出到输出緩冲子单元 0 N ,源数据点的第 2个输出到输出緩冲子单元 0 2N ..... 源 数据点的第 X-1个(D x-1 )输出到输出緩冲子单元 0( X-1 ) N 。 对于第 K个滤波处理单元,第一次滤波运算到第 X次滤波运算的运算结 果对应的输出緩冲子单元在输出数据緩冲单元 中的序号依次为

Κ- 1 ,Ν+Κ- 1 ,2N+K- 1 ,3Ν+Κ- 1... (X- 1 )Ν+Κ- 1 , 根据滤波运算的次数将运算结果 输出到对应的输出緩冲子单元中,其中, Κ为 2~Ν且为正整数。

本实施方式中按源数据点所使用的滤波系数的 特点, 将滤波后得到的数 据点分成并行的 Ν路数据。 第一路对应的输出緩冲子单元的序号为 0, Ν, 2Ν, 3Ν ... ... (X-l)N, 即图 1中的 O 0 ,0 N ... ...0 (Χ- ι (部分未示出), 输出的滤波 后的数据点是源数据点与系数 Co, C N ,C 2N ... ... C (^ 相乘加;第二路对应的输 出緩冲子单元的序号为 1, N+1, 2N+1, 3N+1 ... ... (X-1)N+1 , 即图 1 中的 Οι ,0 Ν+ ι ... ...0 (Χ- ι )Ν+ ι (部分未示出), 输出的滤波后的数据点是源数据点与系 数 d , 系数 C N+1 , C 2N+1 ... ... C ( M-1 ) N+1相乘加; 依次类推到 N路数据。

步骤 107: 向每个滤波处理单元的滤波数据緩冲单元移位 输入下一个源 数据点, 重复进行对每个滤波处理单元中的源数据点的 滤波运算, 并将本次 滤波运算的运算结果输出到输出数据緩冲单元 中的本次滤波运算的运算结果 对应的输出緩冲子单元中, 直到对每个滤波处理单元进行 X次滤波运算, 得 到 X个运算结果并将运算结果输出后结束。

本实施方式中, 对于第 2到第 N个滤波处理单元, 对每个滤波处理单元 中的源数据点进行滤波运算时,第一次的滤波 运算是取源数据点 D Q ~D M ^与 对应的 M个滤波系数相乘, D Q 对应 C( )N+1 , ... ... , D M4 对应 得到第一个 数据点, 第二次滤波运算取 0 至 D M , 与对应的 M个滤波系数对应相乘, 对应 C( M-1)N+1 , ... ... , D M 对应 d , 得到第二个数据点, 第三到第 X个数据点 依次类推。

在对每个滤波处理单元中的源数据点进行单次 滤波运算的时候, 通过对 源数据点及滤波系数进行串并变换,使串行计 算变为并行计算,充分利用 CPU 的并行处理能力。 在输出时, 通过将数据点串行输出到间隔为 N的输出緩冲 子单元中, 即输入输出是串行的, 但中间通过串并变换及并串变换, 实现并 行乘力口运算。

在实施本实施方式的方法时, 需要根据滤波器的参数, 包括滤波器的阶 数、 滤波系数、 上釆样倍数、 并行计算系数等, 按图 2所示的结构, 构造滤 波器的源数据緩冲单元、 滤波处理单元及输出数据緩冲单元, 设上釆样倍数 为 N, 设置 N个滤波处理单元, 对于第二到第 N个滤波处理单元, 分别为第 二到第 N个滤波处理单元设置滤波系数緩冲单元, 逐路进行并行滤波。 当所 有路的滤波运算都结束后, 输出数据緩冲单元中的数据, 即为插值滤波后的 结果。

本实施方式通过分析上釆样插值滤波的特点, 通过目标滤波数据分类、 滤波系数重排、 并行乘加运行, 特殊运行省略及串并变换、 并串变换的输入 输出, 实现了一种高度并行的滤波器运算结构。

如图 2所示, 本实施方式提供的插值滤波器, 包括: 源数据緩冲单元 21、 N个滤波处理单元 22和输出数据緩冲单元 23 ,每个滤波处理单元中均包含滤 波数据緩冲单元 221 ,滤波数据緩冲单元中包含 M个数据緩冲子单元,其中, N为滤波的上釆样倍数, M为 L/N, L为滤波的阶数, N、 M、 L均为正整数; 其中:

源数据緩冲单元 21 , 用于緩冲源数据点, 逐一将源数据点并行同步的向 每个滤波处理单元的滤波数据緩冲单元进行移 位输入, 并在滤波处理单元完 成一次滤波运算后, 向每个滤波处理单元的滤波数据緩冲单元移位 输入下一 个源数据点;

滤波处理单元 22, 用于在包含的滤波数据緩冲单元 221中的每个数据緩 冲子单元均写入源数据点后, 对滤波数据緩冲单元中的源数据点进行滤波运 算, 并将本次滤波运算的运算结果输出到在输出数 据緩冲单元中的本次滤波 运算的运算结果对应的输出緩冲子单元中, 在源数据緩冲单元输入下一个源 数据点后, 对源数据点进行滤波运算, 并将本次滤波运算的运算结果输出到 输出数据緩冲单元中的本次滤波运算的运算结 果对应的输出緩冲子单元中, 直到进行 X次滤波运算, 得到 X个运算结果并将运算结果输出, 其中, X为 源数据点的个数。

N个滤波处理单元中的第一个滤波处理单元, 具体用于将第一个滤波处 理单元的滤波数据緩冲单元 221 当前緩存的源数据点中, 最早被输入到第一 个滤波处理单元中的源数据点作为本次滤波运 算的运算结果。

N个滤波处理单元中的第二到第 N个滤波处理单元包含与滤波数据緩冲 单元 221对应的滤波系数緩冲单元 222, 滤波系数緩冲单元 222包含与滤波 数据緩冲单元 221的数据緩冲子单元——对应的 M个系数緩冲子单元, M个 系数緩冲子单元各自保存对应的数据緩冲子单 元中的源数据点的要乘的滤波 系数。

第二到第 N个滤波处理单元的滤波数据緩冲单元 221中的数据緩冲子单 元分为多个滤波组, 每个滤波组包含多个数据緩冲子单元;

第二到第 N个滤波处理单元包含与滤波组中的数据緩冲 单元连接的串 并变换单元 223 , 与滤波组中的数据緩冲子单元对应的系数緩冲 子单元连接 的串并变换单元 224, 滤波组对应的运算单元 225以及并串变换单元 226, 其 中:

与滤波组中的数据緩冲子单元连接的串并变换 单元 223 , 用于对连接的 数据緩冲子单元中的源数据点进行串并变换;

与滤波组中的数据緩冲子单元对应的系数緩冲 子单元连接的串并变换单 元 224, 用于对连接的系数緩冲子单元中的滤波系数进 行串并变换;

滤波组对应的运算单元 225分别与与滤波组中的数据緩冲子单元连接的 串并变换单元 223和与滤波组中的数据緩冲子单元对应的系数 緩冲子单元连 接的串并变换单元 224连接, 用于并行的将滤波组中数据緩冲子单元中的源 数据点与对应的系数緩冲子单元中的滤波系数 相乘, 将乘积相加, 得到滤波 组的滤波结果, 并接收相邻的前一个滤波组对应的运算单元发 送的滤波组的 滤波结果, 将接收到的滤波组的滤波结果与自身得到的滤 波组的滤波结果相 加, 将相加的结果发送给相邻的下一个滤波组对应 的运算单元; 并串变换单元 226, 用于对每个滤波组的滤波结果相加后的结果进 行并 串变换, 得到本次滤波运算的运算结果。

输出数据緩冲单元包含 X*N个输出緩冲子单元;

N个滤波处理单元中的第一个滤波处理单元的 一次滤波运算到第 X次 滤波运算的运算结果对应的输出緩冲子单元在 输出数据緩冲单元中的序号依 次为 0,N,2N,3N...(X-1)N;

N个滤波处理单元中的第 K个滤波处理单元的第一次滤波运算到第 X次 滤波运算的运算结果对应的输出緩冲子单元在 输出数据緩冲单元中的序号依 次为 K-1,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1 ,其中, K为 2~N且为正整数。

图 2所示的滤波器中, 最左边的是源数据緩冲单元 21 , 最右边是输出数 据緩冲单元 23。 本实施方式的滤波器包括两层次的并行运算结 构。 第一层并 行是滤波运算被按系数的特点拆分成了可并行 的 N路; 第二层并行是在每一 路计算中, 对于每个输出数据点, 源数据点与滤波系数的乘加运算, 可以通 过串并变换后进行并行运算, 并行运算的结果再通过串并变换后输出。

每一路的运算结构包括系数緩冲、 数据緩冲、 系数与数据的串并变换、 并行计算及累加计算、 并串变换并输出。 其中, 滤波系数緩冲单元保存了与 当前路相关的滤波系数, 由前面的系数分类操作得到; 数据緩冲从右到左保 存了依次位移进入滤波处理单元的源数据点。 当緩冲满之后, 右边的源数据 点移出一个, 左边的源数据点移进一个, 且每计算完一个输出数据点, 进行 一次位移。

显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可 以用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布 在多个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程 序代码来实现, 从而可以将它们存储在存储装置中由计算装置 来执行, 或者 将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制作 成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软件 结合。

以上该仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领 域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原 则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范 围之内。

工业实用性

本发明实施例的并行的上釆样插值滤波方法, 根据数据的位宽, 在处理 器釆用 2倍并行执行的情况下, 滤波效率提高了 9倍; 在处理器釆用 4倍并 行执行的情况, 滤波效率提高了 17倍。 在实际的 WCDMA系统中, 将系统 所能支持的高精度搜索用户的数量提高为原来 的 10倍。