Chapter 3 Finite Length Discrete Transforms
Introduce Often, in practice, it is convenient to map a finite-length sequence from the time domain into a finite-length sequence of the same length in a different domain, and vice-versa. Such transformations are usually collectively called finite-length transforms.
Introduce In some applications, a very long length time-domain sequence is broken up into a set of short-length time-domain sequences and a finite-length transform is applied to each short-length sequence.
Introduce The transformed sequences are next processed in the transform domain, and their time-domain equivalents are generated by applying the inverse transform. The processed shorted-length sequences are then grouped together appropriately to develop the final long-length sequence.
Orthogonal Transform A general form of the orthogonal transform pair is of the form Analysis equation Basis sequences synthesis equation
Orthogonal Transform The basis sequences satisfy the condition
Orthogonal Transform An important consequence of the orthogonality of the basis sequence is energy preservation property of the transform
Discrete Fourier Transform Definition Matrix Relations DFT Computation Using MATLAB Relation between DTFT and DFT and their inverses
Discrete Fourier transform In this section, we define the discrete Fourier transform, usually known as the DFT, and develop the inverse transformation, often abbreviated as IDFT.
1. Definition The discrete Fourier transform (DFT) of length-N time domain sequence x[n] is defined by The basis sequence is ,which are complex exponential sequences commonly used notation
1. Definition We can rewrite as The inverse discrete Fourier transform (IDFT) is given by
1. Definition
1. Definition
1. Definition
1. Definition
1. Definition
1. Definition
1. Definition
1. Definition
1. Definition
1. Definition
2. Matrix Relations
2. Matrix Relations
2. Matrix Relations
2. Matrix Relations
3. DFT Computation using MATLAB
3. DFT Computation using MATLAB
3. DFT Computation using MATLAB Example DFT computation using MATLAB M –point DFT U[k]
3. DFT Computation using MATLAB % Program 5_1 % Illustration of DFT Computation % Read in the length N of sequence and the desired length M of the DFT N = input('Type in the length of the sequence = '); M = input('Type in the length of the DFT = '); u = [ones(1,N)]; % Generate the length-N time-domain sequence U = fft(u,M); % Compute its M-point DFT t = 0:1:N-1; % Plot the time-domain sequence and its DFT stem(t,u) title('Original time-domain sequence'); xlabel('Time index n'); ylabel('Amplitude') pause subplot(2,1,1); k = 0:1:M-1; stem(k,abs(U)) title('Magnitude of the DFT samples') xlabel('Frequency index k'); ylabel('Magnitude') subplot(2,1,2); stem(k,angle(U)) title('Phase of the DFT samples'); xlabel('Frequency index k'); ylabel('Phase')
3. DFT Computation using MATLAB Program 5_2 % Illustration of IDFT Computation % Read in the length K of the DFT and the desired length N of the IDFT K = input('Type in the length of the DFT = '); N = input('Type in the length of the IDFT = '); k = 0:K-1; % Generate the length-K DFT sequence V = k/K; v = ifft(V,N); % Compute its N-point IDFT stem(k,V) % Plot the DFT and its IDFT xlabel('Frequency index k'); ylabel('Amplitude'); title('Original DFT samples') pause subplot(2,1,1) n = 0:N-1; stem(n,real(v)) ; title('Real part of the time-domain samples'); xlabel('Time index n'); ylabel('Amplitude') subplot(2,1,2); stem(n,imag(v)); title('Imaginary part of the time-domain samples')
4. Relations between DTFT and DFT and their inverses We now examine the explicit relation between the Fourier transform and N-point DFT of a length-N sequence and the relation between the Fourier transform of a length-M sequence and N-point DFT obtained by sampling the Fourier transform.
4.1 Relation with Discrete-time Fourier Transform For a length-N sequence, 0<=n<=N-1, DTFT: DFT:
4.1 DTFT from DFT by interpolation The above equation can be rewritten as where
4.3 Numerical Computation of the DTFT using the DFT The DFT provides a practical approach to the numerical computation of the Fourier transform of a finite-length sequence, particularly if fast algorithms are available for the computation of the DFT.
4.3 Numerical Computation of the DTFT using the DFT Consider the N-point DFT of the length-N sequence Where r=3, N=16 and M=512.
4.3 Numerical Computation of the DTFT using the DFT % Program 5_3 % Numerical Computation of Fourier transform Using DFT k = 0:15; w = 0:511; x = cos(2*pi*k*3/16);% Generate the length-16 sinusoidal sequence X = fft(x); % Compute its 16-point DFT XE = fft(x,512); % Compute its 512-point DFT % Plot the frequency response and the 16-point DFT samples plot(k/16,abs(X),'o', w/512,abs(XE)) xlabel('\omega/\pi'); ylabel('Magnitude')
4.3 Numerical Computation of the DTFT using the DFT
5.4 Operations on finite-length sequences Like the Fourier transform, the DFT also satisfies a number of properties that are useful in signal processing applications. Some of these properties are essentially identical to those of the Fourier transform, while some others are somewhat different. We first point out the differences between two important operations on sequences and then review the properties of the DFT in following section.
5.4.1 Circular shift of a sequence As several DFT properties and theorems involve shifting in the time domain and the frequency domain, it is important first to develop the correct procedure for such shifting operations. In the time domain, the operation is referred to as the circular time-shifting operation, whereas in the frequency domain, it is referred to as the circular frequency-shifting operation.
5.4.1 Circular shift of a sequence Without any loss of generality, we restrict our attention to the time domain as the operation is identical in the frequency domain.
5.4.1 Circular shift of a sequence Consider length-N sequences defined for Such sequences have sample values equal to zero for n<0 and n>=N.
5.4.1 Circular shift of a sequence If x[n] is such a sequence, then, for any arbitrary integer n0, the shifted sequence Is no longer defined for the range We need to define another type of a shift that will always keep the shifted sequence in the range . This is achieved by using the modulo operation.
5.4.1 Circular shift of a sequence Modulo operation For example
5.4.1 Circular shift of a sequence
5.4.1 Circular shift of a sequence
5.4.1 Circular shift of a sequence
5.4.1 Circular shift of a sequence Circular time-reversal operation For a length-N sequence x[n], 0≤n ≤N-1, the circularly time-reversed sequence is also of length N and given by
5.4.1 Circular shift of a sequence In the frequency domain, the circular shifting operation by k0 samples on the length-N DFT sequence X[k] is defined by Where Xc[k] is also a length-N DFT.
5.4.1 Circular shift of a sequence The circular time-shifting operation can be implemented in MATLAB using the M-file circshift1
5.4.2 Circular Convolution
5.4.2 Circular convolution Definition To develop a convolution-like operation that results in a length-N sequence yC[n], we first apply the circular time-reversal operation and then apply a circular time-shift.
5.4.2 Circular convolution Definition A circular convolution is defined by The above operation is often referred to as an N-point circular convolution and is denoted as
5.4.2 Circular convolution The N-point circular convolution operation can be written in matrix form as Circular convolution
5.4.2 Circular convolution Tabular Method The tabular Method for the computation of the linear convolution can be modified to implement the circular convolution.
5.4.2 Circular convolution n: 1 2 3 g[n]: h[n]: g[0] h[0] g[1] h[1] 1 2 3 g[n]: h[n]: g[0] h[0] g[1] h[1] g[2] h[2] g[3] h[3] g[0]h[0] g[3]h[1] g[2]h[2] g[1]h[3] g[1]h[0] g[0]h[1] g[3]h[2] g[2]h[3] g[2]h[0] g[1]h[1] g[0]h[2] g[3]h[0] g[2]h[1] g[1]h[2] g[0]h[3] yC[n]: yC[0] yC[1] yC[2] yC[3]
5.4.2 Circular Convolution
5.4.2 Circular convolution
5.4.2 Circular convolution
5.4.2 Circular convolution
5.4.2 Circular convolution
5.4.2 Circular convolution
5.4.2 Circular convolution
5.4.2 Circular convolution
5.5 Classifications of finite-length sequences For a length-N sequence defined for 0≤n ≤N-1, the definitions of symmetry discussed in Section 2.1.3 are not applicable. The definitions of symmetry in the case of finite-length sequences are given such that the symmetric and antisymmetric parts of a length-N sequence are also of length N and defined for the same range of values of the time index n.
5.5.1 Classification based on conjugate symmetry One symmetry definition is given using a modulo operation. A length-N sequence x[n] is expressed as Circular conjugate-symmetric part Circular conjugate-antisymmetric part
5.5.1 Classification based on conjugate symmetry
5.5.1 Classification based on conjugate symmetry For a real sequence x[n], the conjugate-symmetric part is a real sequence, called the circular even part, and is denoted by xev[n]. For a real sequence x[n], the conjugate-antisymmetric part is a real sequence, called the circular odd part, and is denoted by xod[n].
5.5.1 Classification based on conjugate symmetry A length-N complex sequence x[n], 0≤n ≤N-1, is said to be circular conjugate-symmetric if and is said to be circular conjugate-antisymmetric if
5.5.1 Classification based on conjugate symmetry Likewise, a length-N real sequence x[n], 0≤n ≤N-1, is called a circular even sequence if and is called a circular odd sequence if
5.5.1 Classification based on conjugate symmetry An N-point DFT X[k] is defined to be a circular conjugate-symmetric sequence if Likewise, a DFT X[k] is defined to be a circular anticonjugate-symmetric sequence if
5.5.1 Classification based on conjugate symmetry EXAMPLE Conjugate-symmetric and conjugate-antisymmetric parts of a complex sequence Consider the finite-length sequence of length 4 defined for 0<=n<=3:
5.5.1 Classification based on conjugate symmetry A complex DFT X[k] can also be expressed as a sum of a circular conjugate-symmetric part Xcs[k] and a circular conjugate-antisymmetric part Xca[k] as where
5.5.2 Classification based on Geometric symmetry Finite-length sequence exhibiting geometric symmetry play an important role in digital signal processing. Two types of geometric symmetries are usually defined: (1) symmetric (2) antisymmetric
5.5.2 Classification based on Geometric symmetry A length-N symmetric sequence x[n] satisfies the condition A length-N antisymmetric sequence x[n] satisfies the condition
5.5.2 Classification based on Geometric symmetry Since the length N of a sequence can be either even or odd, four types of geometric symmetry are thus defined. Note: The odd-length sequences are symmetric with respect to time index n=(N-1)/2, whereas the even-length sequences exhibit symmetry with respect to the half-sample point at n=(N-1)/2.
5.5.2 Classification based on Geometric symmetry
5.5.2 Classification based on Geometric symmetry We can arrive at the expressions by the definition of DFT for the Fourier transforms of these four types of sequences exhibiting geometric symmetry.
5.5.2 Classification based on Geometric symmetry Type 1: Symmetric sequence with odd length For simplicity, assume first, N=9. the Fourier transform of the length-9 sequence x[n] is then given by By the geometric symmetry, x[0]=x[8], x[1]=x[7], x[2]=x[6] ,x[3]=x[5], we can obtain
5.5.2 Classification based on Geometric symmetry Type 1: Symmetric sequence with odd length By the geometric symmetry, x[0]=x[8], x[1]=x[7], x[2]=x[6] ,x[3]=x[5], we can obtain
5.5.2 Classification based on Geometric symmetry Type 1: Symmetric sequence with odd length We get
5.5.2 Classification based on Geometric symmetry Type 1: Symmetric sequence with odd length The phase of the sequence is given by Where βis either 0 or π, and hence, the phase is a linear function of ω.
5.5.2 Classification based on Geometric symmetry Type 1: Symmetric sequence with odd length
5.5.2 Classification based on Geometric symmetry Type 2: Symmetric sequence with Even length
5.5.2 Classification based on Geometric symmetry Type 3: Antisymmetric sequence with odd length
5.5.2 Classification based on Geometric symmetry Type 4: Antiymmetric sequence with even length
5.6 DFT symmetry relations As indicated earlier, in general, the DFT X[k] of a sequence x[n] is a sequence of complex numbers and can be expressed as The imaginary part of X[k] The real part of X[k] where
5.6 DFT symmetry relations The real and imaginary parts of x[n] can be expressed in terms of the real and imaginary parts of x[n].
5.6 DFT symmetry relations Substituting in the definition of DFT we arrive at we thus have
5.6 DFT symmetry relations Finite-length complex sequence For a given length-N sequence with an N-point DFT X[k], it is quite straightforward to derive the DFTs of its circularly time-reversed length-N sequence x[<-n>N] and length-N complex conjugate sequence x*[n].
5.6 DFT symmetry relations From the definition of DFT, we can derive the DFT pairs
5.6 DFT symmetry relations
5.6 DFT symmetry relations
5.6 DFT symmetry relations Finite-Length Real Sequences For a real sequence, xim[n]=0, we can obtain
5.6 DFT symmetry relations We arrive at the following symmetry relation
5.2 Symmetry properties of the DFT of a real sequence
5.7 DFT Theorems As in the case of the FT. there are a number of important theorems of DFT that are also useful in digital processing applications.
Table 5.3 DFT theorems
5.8 Fourier-domain filtering Often one is interested in removing the components of a finite-length discrete-time signal in one or more frequency bands. If the location of these bands are known a priori, then a straightforward approach to remove the unwanted components from a signal is to implement the filtering in the Fourier domain.
5.9 Computation of the DFT of real sequences
5.9 Computation of the DFT of real sequences
5.9.1 N-point DFTs of two real sequences using a single N-point DFT
5.9.1 N-point DFTs of two real sequences using a single N-point DFT
5.9.1 N-point DFTs of two real sequences using a single N-point DFT
5.9.1 N-point DFTs of two real sequences using a single N-point DFT
5.9.1 N-point DFTs of two real sequences using a single N-point DFT
5.9.2 2N-point DFT of a real sequence using a single N-point DFT
5.9.2 2N-point DFT of a real sequence using a single N-point DFT
5.9.2 2N-point DFT of a real sequence using a single N-point DFT 5.9.1.
5.9.2 2N-point DFT of a real sequence using a single N-point DFT Example Let use determine the 8-point DFT V[k] of the length-8 real sequence v[n] given below: v[n]={1 2 2 2 0 1 1 1} Form two length-4 real sequences g[n]=v[2n]={1 2 0 1} h[n]=v[2n+1]={2 2 1 1}
5.9.2 2N-point DFT of a real sequence using a single N-point DFT We finally arrive at: V[k]={10 1.0-j2.4142 -2 1.0-j0.4142 -2 1.0+j0.4142 -2 1.0+2.4142}
5.10 Linear convolution using the DFT
5.10.1 Linear convolution of two finite-length sequences
5.10.1 Linear convolution of two finite-length sequences
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence Overlap-Add method
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence Overlap-Add method
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence Overlap-Add method
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence Overlap-Add method
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence Overlap-Add method
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence Overlap-Add method
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence
5.10.2 Linear convolution of a finite-length sequence with an infinite-length sequence Overlap-save method
5.11 用DFT对信号进行谱分析 所谓信号的谱分析就是计算信号的傅里叶变换 因此,DFT成为分析离散信号和系统的有力工具 连续信号与系统的傅里叶分析不便于直接用计算机进行计算 DFT是一种时域和频域均离散化的变换,适合数值运算。 因此,DFT成为分析离散信号和系统的有力工具
5.11 用DFT对信号进行谱分析 用DFT对连续信号进行谱分析 在工程实际中,经常遇到的连续信号xa(t),其频谱函数Xa(jΩ)也是连续函数。 为了利用DFT对xa(t)进行频谱分析,要先对其进行时域采样得到时域序列,再对其DFT得到X(k)。
5.11 用DFT对信号进行谱分析 问题: 由于x(n)和X(k)均为有限长序列,由Fourier变换理论可知,若信号持续时间有限长,则其频谱无限宽;若信号的频谱有限宽,则其持续时间必然为无限长。即持续时间有限的带限信号是不存在的 。
5.11 用DFT对信号进行谱分析 解决方法: 对宽带信号,采样前对信号进行预滤波; 对持续时间长的信号,采取时域截断。
5.11 用DFT对信号进行谱分析 理论推导: 设连续信号xa(t),持续时间Tp,最高频率为fc,其傅里叶变换为 对xa(t)以采样间隔T≤1/2fc(即fs=1/T≥2fc)采样得 a(t)= Xa(nT)。设共采样N点,并对Xa(jf)作零阶近似(t=nT, dt=T)得
5.11 用DFT对信号进行谱分析 显然, Xa(jf)仍是f的连续周期函数。 对X(jf)在区间[0, fs]上等间隔采样N点,采样间隔F, 参数fs 、 Tp、 N和F满足如下关系式: (3.4.5) 由于NT=Tp, 所以 (3.4.6) 将f=kF和式(3.4.5)代入X(jf)中可得Xa(jf)的采样
5.11 用DFT对信号进行谱分析 0≤k≤N-1 令 则 (3.4.8)
5.11 用DFT对信号进行谱分析
5.11 用DFT对信号进行谱分析 结论: 可以通过对连续信号采样并进行DFT再乘以T,近似得 到模拟信号频谱的周期延拓函数在第一个周期上的N点 等间隔采样。 X(k)只能看到N个离散采样点谱线,即栅栏效应。
5.11 用DFT对信号进行谱分析 截断效应 理想低能滤波器的单位冲击响应ha(t)及其频响函数Ha(if) 如下图所示:
图 3.4.6 用DFT计算理想低通滤波器频响曲线
5.11 用DFT对信号进行谱分析 理想低通滤波器的单位冲激响应
5.11 用DFT对信号进行谱分析 由于ha(t)的持续时间为无穷长,所以要截取一段Tp,假设 Tp=8 s,采样间隔T=0.25 s(即采样速度fs=4 Hz),采样点 数N=Tp/T=32。此时频域采样间隔F=1/NT=0.125 Hz。 则 H(k)=T·DFT[h(n)], 0≤k≤31 其中 h(n)=ha(nT)R32(n) 由图c可见,低频部分近似理想低通滤波器频响特性,而高 频误差较大,且整个频响都有波动。这些误差即为截断效 应。
5.11 用DFT对信号进行谱分析 减少截断误差的措施 适当加长TP,增加采样点数; 用窗函数处理后再进行DFT。
5.11 用DFT对信号进行谱分析 谱分析范围 已知信号的最高频率fc(即谱分析范围时),为了避免在DFT 运算中发生频率混叠现象,要求采样速率fs满足下式 fs>2fc (3.4.9)
5.11 用DFT对信号进行谱分析 频率分辨率 谱分辨率F=fs/N,表示谱分析中能够分辨的两个频谱分量的最小间隔。 F越小,谱分析就越接近Xa(jf)
5.11 用DFT对信号进行谱分析 频率分辨率 从F=fs/N的形式上看,要提高谱的分辨率(F减小),有两个途径:
5.11 用DFT对信号进行谱分析 问题: 途径1:采样速率的降低会引起谱分析范围减少; 途径2:因为NT=Tp,T=f-1s,只有增加对信号的观察时间Tp,才能增加N。 结论:Tp和N可以按照下式进行选择: (3.4.10) (3.4.11)
5.11 用DFT对信号进行谱分析 例 3.4.1 对实信号进行谱分析,要求谱分辨率F≤10 Hz,信号最高频率fc=2.5 kHz,试确定最小记录时间Tpmin,最大的采样间隔Tmax,最少的采样点数Nmin。如果fc不变,要求谱分辨率增加一倍, 最少的采样点九和最小的记录时间是多少? 解: 因此TPmin=0.1 s, 因为要求fs≥2fc, 所以
5.11 用DFT对信号进行谱分析 为使频率分辨率提高一倍, F=5 Hz, 要求
5.11 用DFT对信号进行谱分析 用DFT对序列进行谱分析 对于序列的谱分析,单位圆上的Z变换就是 序列傅里叶变换, 即
5.11 用DFT对信号进行谱分析 对周期为N的周期序列 , 其频谱函数为 用DFT的隐含周期性知道, 截取 的主值序列x(n)= RN(n), 并进行N点DFT得到 其中
5.11 用DFT对信号进行谱分析 如果截取长度M等于 的整数个周期,即M=mN, m为正整数, 则 令n=n′+rN, r=0, 1, …, m-1, n′=0, 1, …, N-1,则
5.11 用DFT对信号进行谱分析 k/m=整数 因为 k/m≠整数
5.11 用DFT对信号进行谱分析 k/m=整数 k/m≠整数 如果 的周期预先不知道,可先截取M进行DFT, 即 再将截取长度扩大一倍, 截取
5.11 用DFT对信号进行谱分析 问题: 在很多实际应用中,并非整个单位圆上的频谱都有意义; 例如:对于窄带信号,往往只希望对信号所在的一段频谱进行谱分析,这时便希望采样点能密集地在这段频段内进行,而带外部分可完全不考虑。
5.11 用DFT对信号进行谱分析 问题: 有时希望采样点不局限于单位圆上; 例如:语音信号处理中,常需要知道系统极点所对应的频率,但当极点位置离单位圆较远时,因其频谱比较平滑,很难识别出极点对应的频率。如果采样点轨迹沿一条接近这些极点的弧线进行,则采样结果将会在极点对应的频率上出现尖峰,这样就能准确地测定出极点频率。
5.11 用DFT对信号进行谱分析 问题分析: 对于均匀分布在以原点为圆心的任何圆上的N点频率采样,仍可用DFT计算。
5.11 用DFT对信号进行谱分析 例如:要计算序列在半径为r的圆上的频谱,那么N个等间隔采样点为 Zk的频谱分量为
5.11 用DFT对信号进行谱分析 令 ,则 结论:要计算x(n)在半径为r的圆上的N点等间隔频谱分量,可以先对x(n)乘以r-n,再计算N点DFT即可。
5.11 用DFT对信号进行谱分析 问题分析: 若要求x(n)分布在该圆的有限角度2π/M内的N点等间隔频谱采样,可以取L=MN,在尾部补L-N个零,再用DFT分析整个元上的L点等间隔频谱,最后只取所需角度内的N点等间隔采样即可。 缺点:计算量大,效率低。
5.11 用DFT对信号进行谱分析 问题分析: Chirp-Z变换 设序列x(n)长度为N,要求分析z平面上M频谱采样值,设分析点zk为 A决定谱分析起始点,W0决定分析路径,φ0表示两个相邻采样点之间的夹角。 其中
5.11 用DFT对信号进行谱分析 将zk代入Z变换公式,得到
5.11 用DFT对信号进行谱分析 其中 结论:长度为N的序列x(n)的M点Chirp-Z可通过预乘得到y(n),再计算y(n)与h(n)的卷积v(k),最后乘以Wk*k/2得到。
5.11 用DFT对信号进行谱分析 用DFT计算Chirp-Z的步骤: 形成hL(n)序列 (2)计算 (3)计算 截取相应的部分即可。
5.11 用DFT对信号进行谱分析 (4)计算 (5) 计算 (6) 计算 (7) 计算
5.11 用DFT对信号进行谱分析 与DFT比较,Chirp-Z变换有以下特点: (1) 输入序列长度N与输出序列长度无需相等 (2) 分析频率的起始点、相邻两点的夹角均是任意的 (3) 谱分析路径可以是螺旋形的 (4) DFT是Chirp-Z变换的特例
5.11 用DFT对信号进行谱分析 用DFT进行谱分析的误差问题 混叠现象 栅栏效应 截断效应(泄露;谱间干扰)
5.11 用DFT对信号进行谱分析 误差问题的解决 保证采样频率满足采样定律要求;对于采样频率确定的情况,进行预滤波 改变时域序列长度可改变栅栏效应(可通过对有限长序列后补零;无限长序列增大截取长度) 截断效应(泄露;谱间干扰)
5.11 用DFT对信号进行谱分析 截断效应(泄露;谱间干扰) 时域截断对应于时域序列与窗函数相乘,反映到频域就是频域卷积。以矩形窗函数为例,即
5.11 用DFT对信号进行谱分析 导致的结果: 使频谱展宽(称为泄漏) 出现旁瓣,导致谱间干扰
5.11 用DFT对信号进行谱分析 解决方法: 增加N可使主瓣变窄,减小泄漏,提高分辨率,但旁瓣幅度不会减小;
5.12 Discrete cosine transform As pointed out earlier, in general, the N-point DFT X[k] of a length-N real sequence is a complex sequence satisfying the symmetry condition X[k]=X*[<-k>N]. There is a redundancy in the DFT-based frequency-domain representation of a discrete-time sequence. It is of interest to have orthogonal transforms that represent a real time-domain sequence x[n] by a real transform-domain sequence X[k]. We restrict our attention here to the discrete cosine transform.