快速傅里叶变换
数字信号处理课件第4章快速傅里叶变换FF

通过FFT对雷达信号进行频谱分析,实现雷 达数据的压缩,减小存储空间和传输带宽。
谢谢聆听
05 FFT的局限性与挑战
浮点运算的开销问题
浮点运算开销
快速傅里叶变换(FFT)算法在实 现过程中需要进行大量的浮点运 算,这可能导致计算成本较高, 尤其是在处理大规模数据时。
硬件资源需求
由于FFT的浮点运算密集特性,对 计算设备的硬件资源(如CPU、 GPU等)要求较高,需要具备高 性能的计算能力。
FFT的软件实现
C/C实现
01
使用C或C等通用编程语言实现FFT算法,具有较好的通用性和
可移植性。
优化编译器
02
利用现代编译器的优化功能,如向量化、内联等,可以提高软
件实现的计算速度。
并行计算框架
03
利用OpenMP、CUDA等并行计算框架,可以实现多核或多
GPU上的并行计算。
FFT的优化方法
算法改进
FFT的历史与发展
历史
FFT的诞生可以追溯到1960年代,其发展经历了多个阶段,包括库利-图基算法、威尔金森算法、桑德斯算法等 。
发展
随着计算机技术的不断进步,FFT算法在实现方式、精度、并行化等方面不断得到优化和改进,以满足不同应用 场景的需求。
02 FFT的基本算法
递归算法
递归算法是一种基于数学归纳法的算法,通过将问题分解为更小的子问题来解决 问题。在FFT中,递归算法将一个长度为N的DFT问题分解为两个长度为N/2的 DFT问题,直到最后分解为基本的DFT问题。
特别是在信号处理领域,FFT的应用非常广泛。
FFT与Z变换的关系
定义
Z变换是离散时间信号 到复平面上的扩展,而 FFT是频域的一种快速 计算方法。
快速傅里叶变换和逆变换

快速傅里叶变换和逆变换介绍快速傅里叶变换(Fast Fourier Transform,简称FFT)和逆变换(Inverse Fourier Transform)是一对重要的信号处理工具。
傅里叶变换及其逆变换是一种将信号在时域和频域之间转换的方法,广泛应用于图像处理、音频处理、通信系统等领域。
FFT算法是一种高效的实现傅里叶变换和逆变换的方法,通过减少计算量,加快了信号处理的速度。
傅里叶变换傅里叶级数傅里叶变换的前身是傅里叶级数。
傅里叶级数是将一个周期为T的连续函数f(t)分解成一系列基本频率(正弦和余弦函数)的和。
假设函数f(t)的周期为T,则可以将其表示为以下形式:f(t) = a0/2 + Σ(an*cos(nωt) + bn*sin(nωt))其中,ω = 2π/T是与周期T对应的基本频率,an和bn是系数。
连续傅里叶变换对于非周期性的信号,可以使用连续傅里叶变换(Continuous Fourier Transform)将其从时域转换到频域。
连续傅里叶变换的定义如下:F(ω) = ∫[f(t)e^(-jωt)]dt其中,F(ω)表示信号f(t)在频域中的表示,ω是频率。
离散傅里叶变换离散傅里叶变换(Discrete Fourier Transform,简称DFT)是将离散的时间域信号转换为离散的频域信号的方法。
DFT的定义如下:X(k) = Σ[x(n)e^(-j2πkn/N)]其中,X(k)表示信号x(n)在频域中的表示,k是频率的索引,N是信号的长度。
快速傅里叶变换FFT算法原理快速傅里叶变换(Fast Fourier Transform)是一种高效计算离散傅里叶变换的算法。
FFT算法的基本思想是将长度为N的DFT分解为多个长度为N/2的DFT的计算,并重复这个分解过程,直到长度为1。
FFT算法的时间复杂度为O(NlogN),相比于原始的DFT算法的O(N^2),具有更快的计算速度。
快速傅里叶变换推导

快速傅里叶变换推导摘要:1.快速傅里叶变换的概念与意义2.傅里叶变换的定义与性质3.快速傅里叶变换的算法原理4.快速傅里叶变换的实际应用正文:一、快速傅里叶变换的概念与意义快速傅里叶变换(Fast Fourier Transform,FFT)是一种高效的计算离散傅里叶变换(Discrete Fourier Transform,DFT)及其逆变换的算法。
DFT 是一种将时间域信号转换到频率域的方法,常用于信号处理、图像处理等领域。
然而,当信号长度很长时,DFT 的计算复杂度较高,因此,为了加速计算,提出了快速傅里叶变换算法。
二、傅里叶变换的定义与性质傅里叶变换是一种将信号从时域转换到频域的方法。
对于一个信号f(t),其傅里叶变换结果为频谱F(ω),可以通过以下公式计算:F(ω) = ∫[f(t) * e^(-jωt) dt],其中积分范围为-∞到∞。
傅里叶变换具有以下性质:1.傅里叶变换是线性的,即满足线性性质的信号可以通过傅里叶变换分开。
2.傅里叶变换是可逆的,即频域信号可以通过傅里叶逆变换转换回时域信号。
3.傅里叶变换具有时域与频域之间的帕斯卡三角关系,即频谱的幅度与相位分别对应时域信号的幅度与相位。
三、快速傅里叶变换的算法原理快速傅里叶变换算法的原理是将DFT 分解成更小的子问题,并重复利用子问题的计算结果。
具体来说,如果将信号长度为N 的DFT 表示为:X_k = ∑[x_n * e^(-j2πnk/N)],其中n 为时域索引,k 为频域索引。
那么,如果将信号长度分解为2 的幂次方形式(如N = 2^m),则可以将DFT 分解为两个较短的DFT 的加权和,即:X_k = ∑[x_n * e^(-j2πnk/N)] = ∑[x_n * e^(-j2πn(k-m)/2^m)] + e^(-j2πkm/2^m) * ∑[x_n * e^(-j2πn(k+m)/2^m)]其中,第一个和式计算偶数项的DFT,第二个和式计算奇数项的DFT。
快速傅里叶变换浅析

快速傅里叶变换浅析快速傅里叶变换(Fast Fourier Transform,FFT)是一种用于将信号在时域和频域之间转换的高效算法。
它广泛应用于数字信号处理、图像处理、音频处理以及其他各种领域。
本文将简要介绍FFT的原理、应用及其优缺点。
一、快速傅里叶变换的原理快速傅里叶变换是傅里叶变换(Fourier Transform,FT)的一种快速算法。
FT是将一个信号分解成不同频率的正弦波组成的频谱。
而FFT则通过将信号分解成更小的子问题并利用许多对称性质来大大减少计算量。
在FFT中,信号被表示为一组复数形式的采样点。
通过对这些采样点进行分解和重组,可得到信号的频谱。
FFT算法的核心思想是将信号分解成大小相等的子问题,并通过迭代的方式快速计算出频谱。
不同大小的子问题需要使用不同的算法,其中最常用的是基2快速傅里叶变换算法(Cooley-Tukey算法)。
二、快速傅里叶变换的应用1. 信号处理领域FFT在信号处理领域得到了广泛应用,例如音频和图像处理。
在音频处理中,FFT可以将时域的音频信号转换为频域,从而实现音频的分析、滤波、压缩等操作。
在图像处理中,FFT可以将图像转换为频域表达,从而实现图像增强、滤波、纹理分析等操作。
2. 通信领域FFT在通信领域也有着重要的应用。
例如,在调制解调器中,FFT被用于将时域的信号转换为频域,以进行调制解调操作。
另外,FFT还可以用于信号的编码、解码和信道估计等方面,提高通信系统的性能。
3. 数值计算领域FFT在数值计算领域也扮演着重要的角色。
例如,在大规模线性方程组的求解中,FFT被用于加速计算过程。
FFT还可以应用于信号滤波、噪声消除、信号重建和频谱分析等方面。
三、快速傅里叶变换的优缺点1. 优点(1)高效性:相比于传统的傅里叶变换算法,FFT具有更高的计算效率,能够在较短的时间内完成复杂的频谱计算。
(2)节省空间:FFT所需的内存空间较少,可以适用于有限的计算资源。
快速傅里叶变换

快速傅⾥叶变换快速傅⾥叶变换快速傅⾥叶变换(FFT )是根据计算量的最⼩化原理来设计和实施离散傅⾥叶变换(DFT)计算的⽅法。
1965年,库利(T.W.Cooley )和图基(J.W.tukey )发表了著名的《计算机计算傅⾥叶级数的⼀种算法》论⽂。
从此掀起了快速傅⾥叶变换计算⽅法研究的热潮。
快速傅⾥叶变换(FFT )的出现,实现了快速、⾼效的信号分析和信号处理,为离散傅⾥叶变换(DFT)的⼴泛应⽤奠定了基础。
1.1离散傅⾥叶变换(DFT)的计算设x(n)是⼀个长度为M 的有限长序列,则定义x(n)的N 点离散傅⾥叶变换为∑-===10)()]([)(N n kn NW n x n x DFT k X 其中由于计算⼀个X(k)值需要N 次复乘法和(N-1)次复数加法,因⽽计算N 个X(k)值,共需N2次复乘法和N(N-1)次复加法。
每次复乘法包括4次实数乘法和2次实数加法,每次复加法包括2次实数加法,因此计算N 点的DFT 共需要4N2次实数乘法和(2N2+2N ·(N-1))次实数加法。
当N 很⼤时,这是⼀个⾮常⼤的计算量。
1.2减少DFT 计算量的⽅法减少DFT 的计算量的主要途径是利⽤k N W 的性质和计算表达式的组合使⽤,其本质是减少DFT 计算的点数N 以便减少DFT 的计算量。
k N W 的性质:(1)对称性: (2)周期性: (3) 可约性: (4) 特殊点:选择其中⼀个证明N N j k N j N k N j N k N e e e W 222)2(22πππ--+-+==ππj k N j e e --=2k N j e π2--=k N W -=FFT 算法是基于可以将⼀个长度为N 的序列的离散傅⾥叶变换逐次分解为较短的离散傅⾥叶变换来计算这⼀基本原理的。
这⼀原理产⽣了许多不同的算法,但它们在计算速度上均取得了⼤致相当的改善。
0,1,,1k N =-()*nk nk N N W W -=()()nk N n k n N k N N NW W W ++==nk mnk N mN W W =//nk nk m N N mW W =01N W =/21N N W =-(/2)k N k N NW W +=-在这⾥讨论两类基本的FFT 算法。
数字信号处理中的快速傅里叶变换

数字信号处理中的快速傅里叶变换快速傅里叶变换(Fast Fourier Transform, FFT)是数字信号处理中一种重要的算法,用于将时域信号转换为频域信号。
通过将信号分解成不同频率的正弦和余弦波,可以提取出信号的频谱信息,进而进行频域分析和滤波等操作。
本文将介绍快速傅里叶变换的原理、算法流程以及在数字信号处理中的应用。
一、快速傅里叶变换的原理快速傅里叶变换是以傅里叶变换为基础的一种高效的算法。
傅里叶变换是将一个周期函数(或有限长的信号)分解成若干个不同频率的正弦和余弦波的叠加。
这些正弦和余弦波的频率和振幅反映了原始信号的频谱特征。
传统的傅里叶变换算法复杂度较高,难以在实时信号处理中应用。
而快速傅里叶变换通过巧妙地利用信号的对称性和周期性,将传统傅里叶变换的复杂度从O(n^2)降低到O(nlogn),大大提高了计算效率。
二、快速傅里叶变换的算法流程快速傅里叶变换算法采用分治法的思想,将信号逐步分解成更小的子问题,并通过递归地计算子问题的频域结果来获得最终的结果。
其算法流程如下:1. 输入原始信号,设信号长度为N。
2. 如果N为1,则直接返回原始信号。
3. 将原始信号分为偶数项和奇数项两部分。
4. 对偶数项序列进行快速傅里叶变换,得到频域结果D1。
5. 对奇数项序列进行快速傅里叶变换,得到频域结果D2。
6. 根据傅里叶变换的性质,将D1和D2组合成整体的频域结果,得到最终结果。
7. 返回最终结果。
三、快速傅里叶变换在数字信号处理中的应用1. 频谱分析:快速傅里叶变换可以将信号从时域转换到频域,通过分析信号的频谱特征,可以提取信号的频率成分,并得到各频率成分的振幅和相位信息。
在音频、图像处理等领域,频谱分析是常见的操作,可以实现音乐信号的频谱可视化、图像去噪和图像压缩等任务。
2. 滤波操作:快速傅里叶变换可以将信号转换到频域后进行滤波操作。
在通信系统中,为了提高信号抗干扰能力和传输效率,通常使用滤波器对信号进行处理。
快速傅里叶变换和逆变换

快速傅里叶变换和逆变换一、前言快速傅里叶变换(FFT)是一种高效的计算傅里叶变换的算法,它在信号处理、图像处理等领域得到了广泛应用。
本文将介绍FFT算法的基本原理、实现方法和应用场景,以及逆变换的概念和实现方法。
二、傅里叶变换1. 傅里叶级数傅里叶级数是指将周期函数表示为正弦函数和余弦函数的无限级数之和的形式。
它可以用来分析周期信号的频率成分。
2. 傅里叶变换傅里叶变换是将一个信号从时域转换到频域的过程,它可以将一个复杂的信号分解成若干个简单的正弦波或余弦波,从而更好地理解信号。
3. 傅里叶反演公式傅里叶反演公式是指将一个频域信号转换回时域信号的过程。
它可以通过对频域中每个频率分量进行加权求和来还原原始信号。
三、快速傅里叶变换1. FFT算法基本原理FFT算法是一种高效计算离散傅里叶变换(DFT)的方法,它可以将DFT的时间复杂度从O(N^2)降低到O(NlogN)。
FFT算法的基本思想是将DFT分解为若干个小规模DFT的组合,从而达到减少计算量的目的。
2. FFT算法实现方法FFT算法有多种实现方法,其中最常用的是蝴蝶算法。
蝴蝶算法将DFT分解为两个规模较小的DFT,并通过旋转因子进行组合,从而得到原始信号的频域表示。
3. FFT应用场景FFT算法在信号处理、图像处理、音频处理等领域得到了广泛应用。
例如,在音频压缩中,可以使用FFT算法对音频信号进行频谱分析并提取重要信息,以便进行压缩。
四、傅里叶逆变换1. 逆变换概念傅里叶逆变换是将一个频域信号转换回时域信号的过程。
它可以通过对频域中每个频率分量进行加权求和来还原原始信号。
2. 逆变换实现方法傅里叶逆变换可以通过傅里叶反演公式来计算。
具体而言,可以对每个频率分量乘以相应的旋转因子,并将结果相加得到原始信号的时域表示。
3. 逆变换应用场景傅里叶逆变换在信号恢复、图像重建等领域得到了广泛应用。
例如,在图像处理中,可以使用傅里叶逆变换将频域中的图像还原为时域中的图像,以便进行后续处理。
4 快速傅里叶变换

4.2 直接计算 DFT 的问题及改进的途径
设 x(n) 为 N 点有限长序列 , 其 DFT 为
X (k ) x(n)W , k 0,1,…,N-1
n 0 nk N
N 1
(4-1)
反变换( IDFT) 为
1 N 1 nk x(n) X (k )WN , n 0,1,…,N-1 N k 0
表示。流图的表示法 将在第五章中讨论 , 当支路上没有标出系数
时 , 则该支路的传输系数为 1 。
采用这种表示法 , 可将上面讨论的分解过程表示于图 4-2 中。 此图表示 N= =8 的情况 , 其中输出值 X(0) 到 X(3 )是由(4-11) 式给出的 , 而输出值 X(4 )到 X(7 )是由 (4-12) 式给出的。
前半部分X(k)(k=0,1……,N/2-1)
后半部分X(k)(k= N/2 ……,N-1)
这样 , 只要求出 0 到 (N/2-1 )区间的所有
值 , 即可
求出 0 到 (N-1) 区间 内的所有 X(k)值 , 这就大大节省了运算。
(4-11)式和 (4-12)式的运算可以用图 4-1 的蝶形信号流图符号
nk (1) WN 的对称性
(W ) W
nk * N
nk N
nk (2 ) 的周期性 WN
W
(3)W
nk N 的可约性
nk N
W
W
( n N ) k N
W
n( k N ) N
W
nk N
nmk mN
,W
nk N
W
nk / m N /m
由此可得出
n ( N k ) ( N n ) k nk WN WN WN ,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
N X 2 ( k ) X 2 (k ) 2
第4章 快速傅里叶变换(FFT)
(N k ) 2 又由于WN
k WN WN
N 2
k WN
,所以
N N N k N 2 X (k ) X 1 (k ) WN X 2 (k ) 2 2 2
k X 1 (k ) WN X 2 (k ),
X 1 (k ) x1 (r )W x(2r )W
r 0 rk 4 r 0
3
3
rk 4
k 0,1,2,3
第4章 快速傅里叶变换(FFT)
(2) n为奇数时,分别记作:
x2 (0) x (1), x2 (1) x (3), x2 ( 2) x (5), x2 (3) x (7);
k N
1 1
k WN
-1
N X ( k ) X 1 (k ) WNk X 2 (k ) (后一半) 2
5.计算工作量分析
按奇、偶分组后的计算量:
第4章 快速傅里叶变换(FFT)
由上图可知,N点DFT的复乘为N2 ;复加N(N-1); 与分解后相比可知,计算工作点差不多减少 一半。
第4章 快速傅里叶变换(FFT)
一个X(k)的值的工作量,如X(1)
0 1 X (1) x(0)WN x(1)WN x(2)WN2 x( N 1)WNN 1
nk 通常x(n)和 W 都是复数,所以计算一个 N X(k)的值需要N次复数乘法运算,和N 1 次 复数加法运算.那么,所有的X(k)就要N2次复 数乘法运算,N(N-1)次复数加法运算.当N很 大时,运算量将是惊人的,如N=1024,则要完 成1048576 次(一百多万次)运算.这样,难 以做到实时处理.
1
N 2
1
由于:
W e
2 N
2 j 2N
e
j 2 /( N ) 2
WN
2
所以,上式可表示为:
X (k )
r 0
N 2
1 rk k x1 (r )W N WN
2
r 0
N 2
1 rk k x2 (r )W N X 1 (k ) WN X 2 (k )
进行N / 2 4点的DFT,得X 2 (k )
X 2 (k ) x2 (r )W4rk x(2r 1)W4rk
r 0 r 0 3 3
k 0,1,2,3
X (k ) X 1 (k ) W X 2 (k )
k N
X (k 4) X 1 (k ) W X 2 (k ), k 0,1,2,3
x5 (l ) x2 ( r ) x ( n) x5 (0) x2 (0) x(1) x5 (1) x2 ( 2) x(5)
构成N/4点DFT,从而得到X5(0), X5(1)。
第4章 快速傅里叶变换(FFT)
(4) 将原序列x(n)的“奇中奇”部分:
x6 (l ) x2 ( r ) x( n) x6 (0) x2 (1) x(3) x6 (1) x2 (3) x (7)
第4章 快速傅里叶变换(FFT)
同样对n为奇数时,N/2点分为两个N/4点 的序列进行DFT,则有:
X 5 (k ) x2 (2l )W
l 0
N 4 N 4
1
lk N /4
lk x5 (l )WN /4 l 0 lk N /4
N 4
N 4
1
(奇中偶)
X 6 (k ) x2 (2l 1)W
k N
第4章 快速傅里叶变换(FFT)
(3)对X 1 (k)和X 2 (k)进行蝶形运算,前半部为 X(0) ~X(3),后半部分为X(4) ~X(7) 整个过程如下图所示:
x1(0)=x(0) x1(1)=x(2) x1(2)=x(4) x1(3)=x(6)
X1(0)
N/2点 DFT
X1(1) X1(2)
k X 1 ( k ) WN X 2 (k ) k X 1 ( k ) WN X 2 ( k )
前一半 后一半
(k 0,1, , N 2 1) (k
N 2
, , N 1)
(N/2个蝶形) 实现上式运算的流图称作蝶形运算
X 1 (k )
X 2 (k )
1 1
X (k ) X 1 (k ) W X 2 (k )(前一半)
构成N/4点DFT,从而得到X6(0), X6(1)。
(5)由 X3(0), X3(1), X4(0), X4(1)进行碟形运算,
得到X1(0), X1(1), X1(2), X1(3)。
(6)由 X5(0), X5(1), X6(0), X6(1)进行碟形运算,
2
第4章 快速傅里叶变换(FFT)
N 2
X 1 (k ) X 2 (k )
r 0
N 2
1 rk x1 ( r )W N
2
r 0
N 2
N 2
1 rk x(2r )W N
2
r 0
1 rk x2 (r )W N
2
r 0
1 rk x( 2r 1)W N
2
2.两点结论: (1) X1 (k),X2 (k)均为N/2点的DFT。 (2) X(k)=X 1(k)+WkN X 2(k)只能确定出 X(k)的k=0,1… N/2 -1个; 即前一半的结果。
第4章 快速傅里叶变换(FFT)
(2) 将原序列x(n)的“偶中奇”部分:
x4 (l ) x1 ( r ) x ( n) x4 (0) x1 (1) x ( 2) x4 (1) x1 (3) x(6)
构成N/4点DFT,从而得到X4(0), X4(1)。 (3) 将原序列x(n)的“奇中偶”部分:
l 0
1
lk x6 (l )WN /4 l 0
1
(奇中奇)
由X 5 (k )、X 6 (k )进行碟形运算,得:
N X 2 (k) X 5 (k) W X 6 (k) ; k 0,1,, 1 4 N N k X 2 ( k) X 5 (k) WN/2X 6 (k) ; k 0,1,, 1 4 4
k 0,1,, N 1 2
可见,X(k)的后一半,也完全由X1(k), X2 (k)的前一半所确定。 *N点的DFT可由两个N/2点的DFT来计 算。
第4章 快速傅里叶变换(FFT)
4.蝶形运算
由X1(k)、X 2(k)表示X(k)的运算是一种特殊的运算-碟形运算
X (k ) X (k )
第4章 快速傅里叶变换(FFT)
N点
DFT
N/2点
DFT
N/4点 DFT
2点
DFT
1个
2个
4个
N/2个
问题是如何分最有效?可以对时间变量分 (DIT),也可对频率变量分(DIF)
第4章 快速傅里叶变换(FFT)
§4-2
按时间抽取(DIT)的FFT算法 —库利-图基算法
一.算法原理(基2FFT)
(一)N/2点DFT 1.先将 x(n) 按n的奇偶分为两组作DFT,设N=2L , 不足时,可补些零。这样有: n为偶数时: n为奇数时:
第4章 快速傅里叶变换(FFT)
利用上述特性,可以将有些项合并,并 将DFT分解为短序列,从而降低运算次数,提 高运算速度.1965年,库利(cooley)和图基 (Tukey)首先提出FFT算法.对于N点DFT,仅需 (N/2)log2N 次复数乘法运算.例如N=1024=210 时, 需要(1024/2)log2 210 =512*10=5120次。 5120/1048576=4.88% ,速度提高20倍
(二) N/4点DFT 由于N=2 L ,所以 N/2仍为偶数,可以进 一步把每个N/2点的序列再按其奇偶部分 分解为两个N/4的子序列。
例如,n为偶数时的 N/2点分解为:
x1 (2l ) x3 (l ), 0,1,, N 4 1 x1 (2l 1) x4 (l ), 0,1,, N 4 1
第4章 快速傅里叶变换(FFT)
3.X(k)的后一半的确定
由于
WN
2
N 2
r (k N ) 2
WN
2
rk (周期性),所以:
N X1( k ) 2
r 0
1
x1 (r )W
r( N 2 N 2
k )
r 0
N 2
1 rk x1 (r )W N X 1 (k )
2
同理, 这就是说,X1(k),X2(k)的后一半,分别 等于其前一半的值。
例如 N=8 时的DFT,可以分解为两个
N/2=4点的DFT.具体方法如下: (1)n为偶数时,即 x(0), x(2), x(4), x(6); 分别记作: x1 (0) x (0),
x1 (1) x ( 2), x1 ( 2) x ( 4), x1 (3) x (6);
进行N / 2 4点的DFT,得X1 (k )
N 2
N 1
n 0 (n为偶数) 1
nk N
x(n)W
N 2
N 1
n 0 (n为奇数) 1
nk N
2 rk ( 2 r 1) k x(2r )WN x(2r 1)WN r 0
N 2
r 0
2 rk k 2 rk x1 (r )(WN ) WN x ( r )( W 2 N) r 0 r 0
第4章
快速傅立叶变换(FFT)