CN101662336B - 一种可配置的交织解交织方法及其装置 - Google Patents

一种可配置的交织解交织方法及其装置 Download PDF

Info

Publication number
CN101662336B
CN101662336B CN2009100925139A CN200910092513A CN101662336B CN 101662336 B CN101662336 B CN 101662336B CN 2009100925139 A CN2009100925139 A CN 2009100925139A CN 200910092513 A CN200910092513 A CN 200910092513A CN 101662336 B CN101662336 B CN 101662336B
Authority
CN
China
Prior art keywords
address
branch road
data
mod
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009100925139A
Other languages
English (en)
Other versions
CN101662336A (zh
Inventor
邓周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Haier IC Design Co Ltd
Original Assignee
Beijing Haier IC Design Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Haier IC Design Co Ltd filed Critical Beijing Haier IC Design Co Ltd
Priority to CN2009100925139A priority Critical patent/CN101662336B/zh
Publication of CN101662336A publication Critical patent/CN101662336A/zh
Application granted granted Critical
Publication of CN101662336B publication Critical patent/CN101662336B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明涉及数字通信领域,尤其涉及一种可配置的交织解交织方法及其装置。本发明通过将宽度为N延迟为f(i)的交织转化为宽度为J延迟为Kf(i)的交织,以及将所有对J求模值相同且延迟相同的支路等效为一条具有K倍该延迟的支路,并通过参数配置以支持具有不同帧长的数据。本发明所需存储器的存储空间小、控制逻辑简单且适用于不同帧长的数据,因此被广泛适用于欧洲数字音频广播标准DAB和韩国地面数字多媒体广播标准T-DMB等时间交织和解交织中。

Description

一种可配置的交织解交织方法及其装置
技术领域
本发明涉及数字通信领域,尤其涉及交织解交织方法。
背景技术
在数字通信系统中,信号传输受到信道和噪声影响,直接导致接收数据出错。为了提高数字通信系统抗干扰能力,保证传输数据可靠,通常会在系统中引入信道编码以纠正错误。然而信道编码纠错能力有限,通常只能纠正信道中的离散随机错误,而对突发脉冲噪声干扰等大量连续错误无能为力。为了提高系统的抗突发错误能力,在纠错编码之后往往还会级联一个数据交织器以使连续错误离散化。常用的交织方法包括块交织和卷积交织。相比之下,卷积交织能以更小的存储空间获得与块交织相当的性能,因此被广泛应用于各类通信系统中,如欧洲数字视频广播标准DVB和数字音频广播标准DAB等。
欧洲数字音频广播标准DAB时间交织和解交织方案如图1所示,图1是DAB中时间交织和解交织示意图,该方法将交织和解交织看作是一个多支路的卷积交织。假设子信道数据帧长为N,交织输入第r帧数据为Br=(br,0,br,1,L,br,N-1),交织输出第r帧数据Cr=(cr,0,cr,1,L,cr,N-1)表示为cr,i=br-f(i),i,0≤i≤N-1。其中,f(i)和i的关系如表1所示,表1是时间交织中f(i)和i的关系表。
  mod(i,16)   f(i)
  0   0
  1   8
  2   4
  3   12
  4   2
  5   10
  6   6
  7   14
  8   1
  9   9
  10   5
  11   13
  12   3
  13   11
  14   7
  15   15
表1
时间解交织是时间交织的逆过程,且与时间交织实现方法类似。假设解交织输入第r帧数据为Cr=(cr,0,cr,1,L,cr,N-1),则解交织输出第r帧数据Br=(br,0,br,1,L,br,N-1),表示为br,i=cr-g(i),i,0≤i≤N-1。其中,g(i)和i的关系如表2所示,表2是时间解交织中g(i)和i的关系表。
  mod(i,16)   g(i)
  0   15
  1   7
  2   11
  3   3
  4   13
  5   5
  6   9
  7   1
  8   14
  9   6
  10   10
  11   2
  12   12
  13   4
  14   8
  15   0
表2
对于传统交织解交织方法,需要接收16个数据帧后再从中选出合适的数据作为交织或解交织输出,因此除当前帧外还需要缓存前15个数据帧。DAB标准规定子信道每帧最多包含55296个数据,每个数据量化为4比特,则需要存储器大小为55296×15×4=3317760比特。由于系统实现超过3兆比特的存储器需要消耗大量硬件资源,因此大大地增加了芯片成本。
针对如何有效减小实现代价,优化交织和解交织算法,开发人员做了大量努力。
发明名称为数字多媒体广播接收机的时间解交织的存储器控制方法,公开号为CN1681269A的中国专利,提供了一种用于DMB接收机中的基于字节寻址控制的时间解交织的存储器控制方法,该专利重点说明了如何通过字节寻址在一个存储器地址存储和读写多个采样数据的方法。该方法需要对数据进行判断和重构因此控制逻辑非常复杂。
发明名称为时间解交织方法,公开号为CN101242190A的中国专利,提出了一种适用于T-DMB的时间解交织方法。该方法将整个解交织存储器分为z-1个逻辑上的FIFO,每个FIFO缓存一个支路的数据,通过z-1个计数器产生各FIFO的内部地址,并和地址偏置值共同求得总的解交织存储器地址。该方法通过多个计数器产生解交织地址,控制逻辑比较复杂,需要较多的硬件资源。
另外,由于各子信道数据帧可能具有不同帧长,因此如何在同一个通用交织器中灵活地支持具有不同帧长的数据交织也是一个需要解决的重要问题。
发明内容
本发明提供了一种能解决以上问题的可配置的交织解交织方法及其装置。
在第一方面,本发明提供了一种交织方法,其中cr,i=br-f(i),i(0≤i≤N-1),br,i为交织输入第r帧第i个数据,cr,i为交织输出第r帧第i个数据,且交织数据帧长N满足N=KJ,N、K、J为正整数,以及f(i)=f(mod(i,J)),mod(i,J)为i对J求模运算。本发明的交织方法将宽度为N延迟为f(i)的交织转化为宽度为J延迟为Kf(i)的交织,以及将所有对J求模值相同且延迟相同的支路等效为一条具有K倍该延迟的支路,并通过在存储器中写地址及读地址实现。
具体的写地址为,
An+1,w=(An,w+Kmaxf(n))mod NA
其中,An+1,w为第n+1支路写地址,An,w为第n支路写地址,Kmax为交织器所支持的最大帧长,f(n)为第n支路延迟,mod为求模运算,NA为存储器所需存储地址数。具体的读地址为,
An+1,r=(An+1,w-(Kmax-L)f(n))mod NA
其中,An+1,r为第n+1支路读地址,An,r为第n支路读地址,L为实际数据帧长。
在第二方面,本发明提供了一种交织器,该交织器包括支路计数器、写地址产生单元、读地址产生单元和存储器。该支路计数器是模J循环计数器,用于对其接收数据的支路序号进行计数,以判定该数据所属支路。且满足cr,i=br-f(i),i(0≤i≤N-1),其中br,i为交织输入第r帧第i个数据,cr,i为交织输出第r帧第i个数据,且交织数据帧长N满足N=KJ,N、K、J为正整数,以及f(i)=f(mod(i,J)),mod(i,J)为i对J求模运算。该写地址产生单元根据该支路计数器的计数值产生写地址,该写地址为
A n + 1 , w = ( A n , w + K max f ( n ) ) mod N A 15
其中,An+1,w为第n+1支路写地址,An,w为第n支路写地址,Kmax为交织器所支持的最大帧长,f(n)为第n支路延迟,mod为求模运算,NA为存储器所需存储地址数。该读地址产生单元根据该写地址An+1,w产生读地址,且该读地址为,
An+1,r=(An+1,w-(Kmax-L)f(n))mod NA
其中,An+1,r为第n+1支路读地址,An,r为第n支路读地址,L为实际数据帧长。
在本发明的一个实施例中,存储器所需存储地址数NA
N A = K max Σ i = 0 J - 1 f ( i ) + 1
在本发明的另一个实施例中,通过配置Kmax值以确定存储器所需存储地址数NA,通过配置L值以支持不同帧长的数据交织。
本发明针对输入第r帧第i个数据br,i时,输出cr,i=br-f(i),i为第r-f(i)帧第i个数据的交织,通过一个计数器产生交织读写地址,并通过参数配置以支持具有不同帧长的数据。本发明利用较少存储器资源及简单控制逻辑就能够实现数据交织、解交织功能,大大减小了硬件实现代价,并且灵活适应于各种不同帧长的数据。
附图说明
下面将参照附图对本发明的具体实施方案进行更详细的说明,在附图中:
图1是DAB中时间交织和解交织示意图;
图2是本实施例的卷积交织等效化示意图;
图3是本实施例的交织器硬件实现结构。
具体实施方式
假设交织数据帧长为N,交织输入第r帧数据为Br=(br,0,br,1,L,br,N-1),交织输出第r帧数据Cr=(cr,0,cr,1,L,cr,N-1),且满足cr,i=br-f(i),i(0≤i≤N-1)。其中数据帧长N=KJ,函数f(i)满足关系f(i)=f(mod(i,J)),mod(i,J)表示i对J求模。也就是f(i)=f(mod(i,J))表示第i支路延迟等于第i对J求模支路延迟。
以上所述交织是宽度为N的卷积交织,且第i(0≤i≤N-1)支路的延迟为f(i)。关系式f(i)=f(mod(i,J))表明多条支路具有相同延迟,因此本发明将该具有相同延迟的支路合并为一条支路,进而将该宽度为N的卷积交织转化为宽度为J的卷积交织,其中第i(0≤i≤J-1)支路的延迟相应变为Kf(i)。
图2是本实施例的卷积交织等效化示意图。图2中,将宽度为N延迟为f(i)的卷积交织转化为宽度为J延迟为Kf(i)的卷积交织,其中N=KJ且N、K、J为正整数。
具体地,由于0、J……(K-1)J对J求模相同且均为0,因此将延迟为f(0)的支路0、支路J……支路(K-1)J,转化为延迟为Kf(0)的支路0;由于1、J+1……(K-1)J+1对J求模相同且均为1,因此将延迟为f(1)的支路1、支路J+1……支路(K-1)J+1,转化为延迟为Kf(1)的支路1;……以及由于J-1、2J-1……KJ-1对J求模相同且均为J-1,因此将延迟为f(J-1)的支路J-1、支路2J-1……支路KJ-1,转化为延迟为Kf(J-1)的支路J-1。也就是说,将K个具有相同延迟f(i)的支路转化为一个延迟为Kf(i)的支路,进而得到延迟分别为Kf(0)、Kf(1)......Kf(J-1)的支路0、支路1……支路J-1。即将所有对J求模值相同且延迟相同的支路等效为一条具有K倍该延迟的支路。
图3是本实施例的交织器硬件实现结构。该交织器包括支路计数器310、写地址产生单元320、读地址产生单元330、存储器340。
存储器340用于缓存交织数据。本实施例采用整体循环移位法,即各支路输入数据在存储器340中的存储地址空间并不固定,而是在整体循环移位,每条支路的数据都根据下一支路的读信号读出。该方法需要增加1个数据的存储空间以便实现整体循环移位。假设数据帧最长为Nmax=KmaxJ,则共需存储器地址数NA
N A = K max Σ i = 0 J - 1 f ( i ) + 1 - - - ( 1 )
以DAB标准的时间交织为例,取最大数据帧长55296,并假设数据的量化比特数为4,由于Nmax=KmaxJ且J=16,则Kmax=Nmax/J=55296/16,同时由表1可知 Σ i = 0 J - 1 f ( i ) = Σ i = 0 J - 1 i , 则所需存储器大小为 N A = ( 55296 16 Σ i = 0 15 i + 1 ) × 4 = 1658884 比特,约为传统方法所需3317760比特的一半,因此大大减小了实现代价。
支路计数器310是一个模J的循环计数器,对每个支路序号进行计数以判断输入数据所属支路,并将该所属支路发送至写地址产生单元320,该所属支路是转化后的卷积交织所属支路。
写地址产生单元320根据支路计数器310的计数值(即产生写地址,并将该写地址发送至读地址产生单元330及存储器340。
具体地,假设某帧的第n个数据属于第mod(n,J)支路,其写地址为An,w,则第n+1个数据属于第mod(n+1,J)支路,其写地址为
An+1,w=(An,w+Kmaxf(n))mod NA    (2)
读地址产生单元330接收来自写地址产生单元320的写地址值,并根据该写地址产生相应的读地址,再将该读地址发送至存储器340。
具体地,当实际数据帧长N=KmaxJ时,一次读写过程中的读地址应等于写地址,即
An+1,r=An+1,w    (3)
当实际数据帧长N=LJ<KmaxJ时,则根据实际帧长对读地址作出修正,此时读地址为
An+1,r=(An+1,w-(Kmax-L)f(n))mod NA    (4)
以上所述公式(3)是公式(4)的特殊情况,即当公式(4)中N=LJ=KmaxJ(即L=Kmax)时,公式(4)可简化为公式(3)
因此,将Kmax作为该交织器支持的最大帧长,将L作为实际帧长,通过配置Kmax决定该交织器所需存储器的规模NA,通过配置L以支持不同帧长的数据交织。
综上所述,本发明的交织器只需利用一个支路计数器来产生存储器的写地址(依据公式(2))及读地址(依据公式(4)),并通过控制数据的读写顺序实现数据交织功能。
需要说明的是,解交织方法与交织方法完全相同,解交织器硬件体系结构也与交织器硬件结构完全相同,因此此处不再对解交织方法及相应解交织器赘述。
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。

Claims (10)

1.一种交织方法,其中cr,i=br-f(i),i(0≤i≤N-1),br,i为交织输入第r帧第i个数据,cr,i为交织输出第r帧第i个数据,且交织数据帧长N满足N=kJ,N、K、J为正整数,以及f(i)=f(mod(i,J)),mod(i,J)为i对J求模运算,其特征在于,包括,
将宽度为N延迟为f(i)的交织转化为宽度为J延迟为Kf(i)的交织,以及将所有对J求模值相同且延迟相同的支路等效为一条具有K倍该延迟的支路,并通过在存储器中写地址及读地址实现;
所述写地址为,
An+1,w=(An,w+Kmaxf(n))mod NA
其中,An+1,w为第n+1支路写地址,An,w为第n支路写地址,Kmax为交织器所支持的最大帧长,f(n)为第n支路延迟,mod为求模运算,NA为存储器所需存储地址数;
所述读地址为,
An+1,r=(An+1,w-(Kmax-L)f(n))mod NA
An+1,r为第n+1支路读地址,An,r为第n支路读地址,L为实际数据帧长。
2.如权利要求1所述的一种交织方法,其特征在于,所述存储器所需存储地址数NA
Figure FSB00000789642600011
3.如权利要求2所述的一种交织方法,其特征在于,通过配置Kmax值以确定所述存储器所需存储地址数NA,通过配置L值以支持不同帧长的数据交织。
4.一种解交织方法,其中br,i=cr-g(i),i,0≤i≤N-1,cr,i为解交织输入第r帧第i个数据,br,i为解交织输出第r帧第i个数据,且解交织数据帧长N满足N=KJ,N、K、J为正整数,以及g(i)=g(mod(i,J)),mod(i,J)为i对J求模运算,其特征在于,包括,
将宽度为N延迟为g(i)的解交织转化为宽度为J延迟为Kg(i)的解交织,以及将所有对J求模值相同且延迟相同的支路等效为一条具有K倍该延迟的支路,并通过在存储器中写地址及读地址实现;所述写地址为,
An+1,w=(An,w+Kmaxg(n))mod NA
其中,An+1,w为第n+1支路写地址,An,w为第n支路写地址,Kmax为解交织器所支持的最大帧长,g(n)为第n支路延迟,mod为求模运算,NA为存储器所需存储地址数;
所述读地址为,
An+1,r=(An+1,w-(Kmax-L)g(n))mod NA
An+1,r为第n+1支路读地址,An,r为第n支路读地址,L为实际数据帧长。
5.如权利要求4所述的一种解交织方法,其特征在于,所述存储器所需存储地址数NA
6.如权利要求5所述的一种解交织方法,其特征在于,通过配置Kmax值以确定所述存储器所需存储地址数NA,通过配置L值以支持不同帧长的数据解交织。
7.一种交织器,包括支路计数器、写地址产生单元、读地址产生单元和存储器;
所述支路计数器是模J循环计数器,用于对其接收数据的支路序号进行计数,以判定该数据所属支路;且满足cr,i=br-f(i),i(0≤i≤N-1),其中br,i为交织输入第r帧第i个数据,cr,i为交织输出第r帧第i个数据,且交织数据帧长N满足N=KJ,N、K、J为正整数,以及f(i)=f(mod(i,J)),mod(i,J)为i对J求模运算;
所述写地址产生单元根据所述支路计数器的计数值产生写地址,该写地址为,
An+1,w=(An,w+Kmaxf(n))mod NA
其中,An+1,w为第n+1支路写地址,An,w为第n支路写地址,Kmax为交织器所支持的最大帧长,f(n)为第n支路延迟,mod为求模运算,NA为存储器所需存储地址数;
所述读地址产生单元根据所述写地址An+1,w产生读地址,且该读地址为, 
An+1,r=(An+1,w-(Kmax-L)f(n))mod NA
An+1,r为第n+1支路读地址,An,r为第n支路读地址,L为实际数据帧长。
8.如权利要求7所述的一种交织器,其特征在于,所述存储器所需存储地址数NA为,
Figure DEST_PATH_F2009100925139C00031
9.如权利要求7所述的一种交织器,其特征在于,通过配置Kmax值以确定所需存储地址数NA,通过配置L值以支持不同帧长的数据交织。
10.一种解交织器,包括支路计数器、写地址产生单元、读地址产生单元和存储器;
所述支路计数器是模J循环计数器,用于对其接收数据的支路序号进行计数,以判定该数据所属支路;且满足br,i=cr-g(i),i,0≤i≤N-1,其中cr,i为解交织输入第r帧第i个数据,br,i为解交织输出第r帧第i个数据,且解交织数据帧长N满足N=KJ,N、K、J为正整数,以及g(i)=g(mod(i,J)),mod(i,J)为i对J求模运算
所述写地址产生单元根据所述支路计数器的计数值产生写地址,且该写地址为
An+1,w=(An,w+Kmaxg(n))mod NA
其中,An+1,w为第n+1支路写地址,An,w为第n支路写地址,Kmax为解交织所支持的最大帧长,g(n)为第n支路延迟,mod为求模运算,NA为存储器所需存储地址数;
所述读地址产生单元根据所述写地址An+1,w产生读地址,且该读地址为,
An+1,r=(An+1,w-(Kmax-L)g(n))mod NA
An+1,r为第n+1支路读地址,An,r为第n支路读地址,L为实际数据帧长。
CN2009100925139A 2009-09-16 2009-09-16 一种可配置的交织解交织方法及其装置 Expired - Fee Related CN101662336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100925139A CN101662336B (zh) 2009-09-16 2009-09-16 一种可配置的交织解交织方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100925139A CN101662336B (zh) 2009-09-16 2009-09-16 一种可配置的交织解交织方法及其装置

Publications (2)

Publication Number Publication Date
CN101662336A CN101662336A (zh) 2010-03-03
CN101662336B true CN101662336B (zh) 2012-08-15

Family

ID=41790151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100925139A Expired - Fee Related CN101662336B (zh) 2009-09-16 2009-09-16 一种可配置的交织解交织方法及其装置

Country Status (1)

Country Link
CN (1) CN101662336B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684666B (zh) * 2012-09-13 2016-12-21 中国科学院上海高等研究院 在ngb-w通信系统中实现时间交织和解时间交织的方法
CN103226602B (zh) * 2013-04-26 2016-08-10 福建联迪商用设备有限公司 一种实现在单个文件中循环存储记录的定位读取偏移方法
CN105721929B (zh) * 2014-12-02 2018-08-21 晨星半导体股份有限公司 频率解交错与时间解交错电路与方法以及数字电视的接收电路
CN107241163B (zh) * 2017-04-28 2020-02-21 华为技术有限公司 一种交织处理方法及装置
CN111030780B (zh) * 2019-12-16 2022-07-12 中国科学院国家空间科学中心 一种可配置并行比特分组交织器及交织方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1427573A (zh) * 2001-12-19 2003-07-02 深圳市中兴通讯股份有限公司上海第二研究所 卷积交织器及其数据读写方法
CN1784833A (zh) * 2003-03-21 2006-06-07 泰拉扬信息系统公司 纠错码交织器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1427573A (zh) * 2001-12-19 2003-07-02 深圳市中兴通讯股份有限公司上海第二研究所 卷积交织器及其数据读写方法
CN1784833A (zh) * 2003-03-21 2006-06-07 泰拉扬信息系统公司 纠错码交织器

Also Published As

Publication number Publication date
CN101662336A (zh) 2010-03-03

Similar Documents

Publication Publication Date Title
US6411654B1 (en) Convolutional interleaver, convolutional deinterleaver, convolutional interleaving method, and convolutional deinterleaving method
CN101662336B (zh) 一种可配置的交织解交织方法及其装置
MX2008015539A (es) Aparato intercalador y receptor para una señal generada por el aparato intercalador.
CN101674093B (zh) 卷积交织两级实现方法及其装置
CN104333435A (zh) 迭代解映射译码装置
CN101388673B (zh) 去交织设备和方法、交织索引产生设备和方法、以及介质
CN101404555B (zh) 数字传输中的一种卷积交织解交织的方法
CN105376008A (zh) Ldpc码字的交织映射方法及解交织解映射方法
CN111030780A (zh) 一种可配置并行比特分组交织器及交织方法
CN105450333A (zh) Ldpc码字的交织映射方法及解交织解映射方法
CN104935399A (zh) Ldpc码字的交织映射方法及解交织解映射方法
KR20040026408A (ko) 유럽향 디지털 오디오 방송수신기의 채널복호장치 및 그의채널복호방법
CN101500099B (zh) 无线通讯接收机、无线通讯接收方法与电视接收机
CN101674092B (zh) 一种支持数据帧长无缝变化的解交织器及其方法
CN106330394B (zh) 一种具有循环特性的可配置式交织器及解交织器
CN105376025A (zh) Ldpc码字的交织和映射方法及解交织解映射方法
CN100531164C (zh) Dmb信号接收器的时间反交错存储器减少方法
KR100733767B1 (ko) 시간 디인터리빙 장치 및 방법
CN105450338A (zh) Ldpc码字的交织和映射方法及解交织解映射方法
CN105356965A (zh) Ldpc码字的交织映射方法及解交织解映射方法
CN105450344A (zh) Ldpc码字的交织和映射方法及解交织解映射方法
CN105721929A (zh) 频率解交错与时间解交错电路与方法以及数字电视的接收电路
Han et al. Simulation and implementation of convolution interleave in digital audio broadcasting (DAB) transmission system
CN105450341A (zh) Ldpc码字的交织和映射方法及解交织解映射方法
CN105376031A (zh) Ldpc码字的交织和映射方法及解交织解映射方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120815

Termination date: 20180916

CF01 Termination of patent right due to non-payment of annual fee