精华内容
下载资源
问答
  • 一个矩阵的2-D(2维)DFT通常用行列法化为1-DDFT来计算。但是,用行列法把上述一维的结果推广到二维是困难的。作者得到了计算二维情形的一些新的直接公式,其证明是简明的,它们公别推广了已有的结果。同时还指出
  • 离散傅里叶变换(DFT)的矩阵形式

    千次阅读 2019-12-16 15:48:31
    废话不多说了,先看一下离散傅里叶变换的公式: 公式1 看着如此简单的公式,其实暗藏玄机,往往我们忽略的都是最重要的细节。第一,这个公式针对的是离散周期信号,得到的频域也是离散周期频信号。这也是最普遍...

    废话不多说了,先看一下离散傅里叶变换的公式:

    公式1

    看着如此简单的公式,其实暗藏玄机,往往我们忽略的都是最重要的细节。第一,这个公式针对的是离散周期信号,得到的频域也是离散周期频信号。这也是最普遍使用的公式,方便在计算机上计算。即使信号不是周期信号,在计算机上计算的时候,由于序列长度有限,我们就可以认为这只是信号的一个周期内容。同样,我们输入到计算机中的序列一定是经过采样定理采样后的信号,因此任意一个信号在计算机上做傅里叶变换的时候,都是离散周期信号!!第二,如果信号x(n)是周期函数,那么信号应该限制在一个周期T1之内。第三,变换前后的序列长度是一样的都为[0,N-1]。第四,信号长度N与采样频率f是不一样的,他们的关系是:N=f*T1,其中T1为信号总时间。第五,变换后的横坐标轴不是1,2,3……,而应该是f1,2*f1,3*f1……,因为非简化的离散傅里叶变换公式应该是:

    公式2-1 
    公式2-2

    ​其中,T1为信号时间,N为信号采样数,Ts为信号采样间隔时间,f1为频率间隔。这样就能很清晰的看到,变换后的坐标轴都是f1的整数倍。​由时域采样间隔Ts,确定频域重复周期fs,而df→f1=fs/N,即确定了频域的横轴坐标。要想详细了解可以看郑君里的《信号与系统》下册,第九章内容。

    好像跑题了,不过离散跟连续真的是有很大的区别,需要特别关注。继续说如何得到离散傅里叶的矩阵形式,我们将上式展开写成如下形式:

    公式3

    ​显而易见,上式中的W各次幂组成的矩阵就是我们要找的离散傅里叶变换矩阵。是不是很简单呢?同理,我们可以得到IDFT的变换矩阵如下:

    公式4  

    可以从上面看出,两个变换矩阵都是方阵,而且都是对称矩阵。​

    对于DFT的正变换在matlab中,已经有写好的程序为dftmtx(n)。而逆变换的矩阵可以通过求dftmtx(n)矩阵的逆,当然也可以自己写(突然发现自己好蠢,为毛要自己写)。matlab程序如下:

    N=width;

    x=(0:N-1)'*(0:N-1);

    W=exp(2*pi*1i*x/N)/N;

    ​总结一下,其实大部分变换都存在变换矩阵,就是将变换从公式形式向量化,写为矩阵形式即可。其次,因为我们往往会在计算机上使用,也就意味着我们用到的都是离散变换,而离散域跟连续域的不同是我们要特别注意的,我也已经在文中写了几条,也希望各为大神给予指点。

    展开全文
  • V^H是DFT矩阵的厄米(hermitian),并且input s def graph_freq_spectrum(freq_spectrum) :用于绘制频谱图的功能。 使用plotly Python库实现 idft.py def idft(freq_spectrum) :将频谱转换为时域正弦波的函数。 ...
  • DFT DFT(Discrete Fourier Transform),离散傅里叶变化,可以将离散信号变换到频域,它的公式非常简单: ...DFT公式,虽然简单,但是理解起来比较麻烦,我发现如果用矩阵相乘的角度来理解上面的公式,就会非常简单,直
  • 本文主要罗列一下DFT的相关公式 首先,不难将DFT写成矩阵形式,回忆之前的推导,DFT表达式为: Ff––––=∑n=0N−1f[n]––––ω––−nFf_=∑n=0N−1f[n]_ω_−n\underline{{\scr F}f} = \sum_{n=0}^{N-1} ...

    本文主要罗列一下DFT的相关公式


    首先,不难将DFT写成矩阵形式,回忆之前的推导,DFT表达式为:

    Ff=n=0N1f[n]ωn\underline{\mathscr{F}f} = \sum_{n=0}^{N-1} \underline{f[n]} \underline{\omega}^{-n}

    写成矩阵形式就是:

    [Ff[0]Ff[1]Ff[N1]]=[1111ω11ω1(N1)1ω(N1)1ω(N1)2][f[0]f[1]f[N1]]\large\begin{bmatrix}\underline{\mathscr{F}f[0]}\\\underline{\mathscr{F}f[1]}\\\vdots\\\underline{\mathscr{F}f[N-1]}\end{bmatrix} = \begin{bmatrix}1 & 1 & \cdots & 1 \\1 & \underline{\omega}^{-1 \cdot 1} & \cdots & \underline{\omega}^{- 1 \cdot (N-1)} \\\vdots & \vdots & \ddots & \vdots \\1 & \underline{\omega}^{-(N-1) \cdot 1} & \cdots & \underline{\omega}^{-(N-1)^2}\end{bmatrix}\begin{bmatrix}\underline{f[0] } \\\underline{f[1]} \\\vdots\\\underline{f[N-1]} \end{bmatrix}

    我们发现,DFT其实是一个对称矩阵,即

    FT=F(1)\huge\underline\mathscr{F}^T = \underline\mathscr{F}\tag1

    根据上一章中的运算,还可以知道:

    F1F=FF1=NI(2)\huge\underline\mathscr{F}^{-1} \underline\mathscr{F}= \underline\mathscr{F} \underline\mathscr{F}^{-1} = NI\tag2

    结合(1)(1)(2)(2)两式,有:

    FF=FF=NI\huge\underline\mathscr{F}^* \underline\mathscr{F}= \underline\mathscr{F} \underline\mathscr{F}^* = NI


    DFT的对偶性:

    1. f[n]=f[n]\huge\underline{f}^- [n] = \underline{f}[-n]

    2. F(f)=(Ff)\huge\underline\mathscr{F}\left( \underline{f}^- \right) = \left(\underline{\mathscr{F} f} \right)^-

    3. FFf=Nf\huge\underline{\mathscr{F}\mathscr{F}f} = N f^-

    (3)(3) 也是与连续傅里叶变换情况不同的地方


    类似连续情况,离散情况下的两个常用信号

    a. 1=(1,1,,1)\underline{1} = (1, 1, \dots, 1) 表示各处均为1的离散信号

    b. δk=(0,,0,1,0,,0)\underline{\delta_k} = (0, \dots, 0, 1, 0, \dots, 0) 表示 kk 处为 11,其余均为 00 的离散信号

    接下来我们来推导几个常用的DFT公式

    1. Fδk\underline{\mathscr{F}\delta_k}

    Fδk=n=0N1δk[n]ωn=1ωk=ωk\begin{aligned} \underline{\mathscr{F}\delta_k} &= \sum_{n=0}^{N-1} \underline{\delta_k [n]} \underline{\omega}^{-n}\\ &= 1\cdot \underline{\omega}^{-k}\\ &= \underline{\omega}^{-k} \end{aligned}

    特别地,Fδ=1\underline{\mathscr{F}\delta}=\underline{1}

    1. Fωk\underline{\mathscr{F}\omega^k}

    Fωk=n=0N1ω[n]kωn\underline{\mathscr{F}\omega^k} = \sum_{n=0}^{N-1} \underline{\omega [n]}^k \underline{\omega}^{-n}

    我们看它的第mm项,

    Fω[m]k=n=0N1ω[n]kω[m]n=n=0N1e2πinkNe2πimnN=n=0N1e2πin(km)N={0kmNk=m\begin{aligned} \underline{\mathscr{F}\omega[m]}^k &= \sum_{n=0}^{N-1} \underline{\omega [n]}^k \underline{\omega[m]}^{-n}\\ &= \sum_{n=0}^{N-1} e^{2\pi i\frac{nk}{N}} e^{-2\pi i\frac{mn}{N}}\\ &= \sum_{n=0}^{N-1} e^{2\pi i\frac{n(k-m)}{N}}\\ &= \begin{cases} 0 & k \neq m\\ N & k=m \end{cases} \end{aligned}

    也就是说 Fωk\underline{\mathscr{F}\omega^k} 只有在 m=km=k 的时候值为 NN,其他地方值均为 00,因此

    Fωk=Nδk\underline{\mathscr{F}\omega^k} = N \underline{\delta^k}

    展开全文
  • Python实现DFT

    千次阅读 2019-11-11 09:19:04
    1.利用公式实现DFT: 参阅书上的公式定义可知,可利用Wn展开矩阵的形式实现; # coding=GBK import numpy as np from numpy import arange, sin, pi, cos import matplotlib.pyplot as plt fs=8192 Ts=1/fs N=64...

    1.利用公式实现DFT:

    参阅书上的公式定义可知,可利用Wn展开矩阵的形式实现;

    # coding=GBK
    import numpy as np
    from numpy import arange, sin, pi, cos
    import matplotlib.pyplot as plt
    
    fs=8192
    Ts=1/fs 
    N=64    
    n = np.arange(N)  
    xn1=cos(2*pi*512.*n*Ts)+0.75*cos(2*pi*1024.*n*Ts)
    #print (type(xn1))
    #画出时域采样图
    plt.subplot(311)
    plt.stem(n,xn1,use_line_collection=True)
    plt.xlabel('n')
    plt.ylabel('xn')
    plt.title('Time domain sampling')
    my_x_ticks = np.arange(0, 70, 5)
    my_y_ticks = np.arange(0, 3, 1)
    plt.xticks(my_x_ticks)
    plt.yticks(my_y_ticks)
    
    #DFT
    n = np.expand_dims(n, axis=1)         
    k = n  
    m = n.T * k / N                     
    S = np.exp(1j * 2 * pi *m)
    S=S.conjugate(S)
    X2 = np.dot(xn1, S)
    
    mX = np.abs(X2)
    pX = np.angle(X2)
    
    # plot the magnitude and phase
    plt.subplot(312)
    plt.stem(mX,use_line_collection=True)
    plt.xlabel('k');
    plt.ylabel('|X(K)|')
    plt.title('Amplitude frequency characteristic')
    my_x_ticks = np.arange(0, 70, 5)
    my_y_ticks = np.arange(0, 50, 10)
    plt.xticks(my_x_ticks)
    plt.yticks(my_y_ticks)
    
    plt.subplot(313)
    plt.stem(n,pX,use_line_collection=True)
    plt.xlabel('k');
    plt.ylabel('φ(w)/rad');
    plt.title('Phase frequency characteristics')
    my_x_ticks = np.arange(0, 70, 5)
    my_y_ticks = np.arange(-4, 5, 1)

    该代码,将xn1先抽样成序列,之后进行DFT变换。

    展开全文
  • 本文主要总结了离散傅里叶变换(DFT)的定义、矩阵算法、性质,阐述了频域取样点数的限制,推导了内插公式,解释了用 DFT 对连续时间信号逼近的问题。在性质方面,介绍了 DFT 的线性性质、如何用正变换计算逆变换、...


    《Josh 的复习总结之数字信号处理》系列文章目录:

          Part 1——离散时间信号和系统分析基础
          Part 2——离散傅里叶级数 DFS
    👉 Part 3——离散傅里叶变换 DFT
          Part 4——快速傅里叶变换 FFT
          Part 5——部分 FFT 蝶形图
          Part 6——数字滤波器的基本结构
          Part 7——数字滤波器设计


    1. 离散傅里叶变换(Discrete Fourier Transform, DFT)的定义

      取离散傅里叶级数的主值,得离散傅里叶变换
    X(k)=X~(k)RN(k)=n=0N1x(n)WNkn,  k=0,1,,N1 X\left(k\right)=\widetilde{X}\left(k\right)R_N\left(k\right)=\sum_{n=0}^{N-1}{x\left(n\right)W_N^{kn}},\ \ k=0,1,\cdots,N-1 x(n)=x~(n)RN(n)=1Nk=0N1X(k)WNkn,  n=0,1,,N1 x\left(n\right)=\widetilde{x}\left(n\right)R_N\left(n\right)=\frac{1}{N}\sum_{k=0}^{N-1}{X\left(k\right)W_N^{-kn}},\ \ n=0,1,\cdots,N-1 X~(k)=X((k))N,x~(n)=x((n))N\widetilde{X}\left(k\right)=X\left(\left(k\right)\right)_N,\widetilde{x}\left(n\right)=x\left(\left(n\right)\right)_N。其中 RN(n)R_N\left(n\right) 表示矩形序列,表示取主值;((n))N\left(\left(n\right)\right)_N 表示 nnNN 取余。

    注:不同教材中取主值、取余的符号表述可能不同。


    2. DFT 的矩阵算法

      若令 X=[X(0)X(1)X(N1)]Tx=[x(0)x(1)x(N1)]TX=\left[\begin{matrix}X\left(0\right)&X\left(1\right)&\cdots&X\left(N-1\right)\\\end{matrix}\right]^\mathrm{T},x=\left[\begin{matrix}x\left(0\right)&x\left(1\right)&\cdots&x\left(N-1\right)\\\end{matrix}\right]^\mathrm{T},则 DFT 和 IDFT 可分别表示为
    X=DNx,  x=DN1X X=D_Nx,\ \ x=D_N^{-1}X 其中 Vandermonde 矩阵
    DN=[11111WN1WN2WN(N1)1WN2WN4WN2(N1)1WN(N1)WN2(N1)WN(N1)2] D_N=\left[\begin{matrix}1&1&1&\cdots&1\\1&W_N^1&W_N^2&\cdots&W_N^{\left(N-1\right)}\\1&W_N^2&W_N^4&\cdots&W_N^{2\left(N-1\right)}\\\vdots&\vdots&\vdots&&\vdots\\1&W_N^{\left(N-1\right)}&W_N^{2\left(N-1\right)}&\cdots&W_N^{\left(N-1\right)^2}\\\end{matrix}\right] DN1=1N[11111WN1WN2WN(N1)1WN2WN4WN2(N1)1WN(N1)WN2(N1)WN(N1)2] D_N^{-1}=\frac{1}{N}\left[\begin{matrix}1&1&1&\cdots&1\\1&W_N^{-1}&W_N^{-2}&\cdots&W_N^{-\left(N-1\right)}\\1&W_N^{-2}&W_N^{-4}&\cdots&W_N^{-2\left(N-1\right)}\\\vdots&\vdots&\vdots&&\vdots\\1&W_N^{-\left(N-1\right)}&W_N^{-2\left(N-1\right)}&\cdots&W_N^{-\left(N-1\right)^2}\\\end{matrix}\right] 且有 DN1=1NDND_N^{-1}=\dfrac{1}{N}D_N^\ast


    3. 离散傅里叶变换(DFT)的性质

    3.1 线性性质

    DFT[ax1(n)+bx2(n)]=aX1(k)+bX2(k) \mathrm{DFT}\left[ax_1\left(n\right)+{bx}_2\left(n\right)\right]=aX_1\left(k\right)+bX_2\left(k\right)

    3.2 用正变换计算逆变换

    x(n)=1N[k=0N1X(k)WNnk],  n=0,1,,N1 x\left(n\right)=\frac{1}{N}\left[\sum_{k=0}^{N-1}{X^\ast\left(k\right)W_N^{nk}}\right]^\ast,\ \ n=0,1,\cdots,N-1 证明:
    1N[k=0N1X(k)WNnk]=1N[k=0N1X(k)WNnk]=x(n) \frac{1}{N}\left[\sum_{k=0}^{N-1}{X^\ast\left(k\right)W_N^{nk}}\right]^\ast=\frac{1}{N}\left[\sum_{k=0}^{N-1}{X\left(k\right)W_N^{-nk}}\right]=x\left(n\right)

    3.3 对称定理

    DFT[1NX(n)]=x(k)=x(Nk) \mathrm{DFT}\left[\frac{1}{N}X\left(n\right)\right]=x\left(-k\right)=x\left(N-k\right) 证明:
    x(n)=x(Nn)=1Nk=0N1X(k)WN(Nn)k=1Nk=0N1X(k)WNnkx(k)=x(Nk)=n=0N1[X(n)N]WNkn=DFT[X(n)N] \begin{aligned} &x\left(-n\right)=x\left(N-n\right)=\frac{1}{N}\sum_{k=0}^{N-1}{X\left(k\right)W_N^{-\left(N-n\right)k}}=\frac{1}{N}\sum_{k=0}^{N-1}{X\left(k\right)W_N^{nk}} \\ \Longrightarrow &x\left(-k\right)=x\left(N-k\right)=\sum_{n=0}^{N-1}{\left[\frac{X\left(n\right)}{N}\right]W_N^{kn}}=\mathrm{DFT}\left[\frac{X\left(n\right)}{N}\right] \end{aligned}

    3.4 反转定理

    DFT[x(n)]=X(k) \mathrm{DFT}\left[x\left(-n\right)\right]=X\left(-k\right) 证明:
    DFT[x(n)]=n=0N1x(n)WNnk=m=nm=(N1)0x(m)WNmk=m=0N1x(m)WNm(k)=X(k) \mathrm{DFT}\left[x\left(-n\right)\right]=\sum_{n=0}^{N-1}{x\left(-n\right)W_N^{nk}}\xlongequal{令m=-n}\sum_{m=-\left(N-1\right)}^{0}{x\left(m\right)W_N^{-mk}}=\sum_{m=0}^{N-1}{x\left(m\right)W_N^{m\cdot\left(-k\right)}}=X\left(-k\right)

    3.5 序列的总和

    n=0N1x(n)=n=0N1x(n)WNknk=0=X(k)k=0=X(0) \sum_{n=0}^{N-1}x\left(n\right)=\left.\sum_{n=0}^{N-1}{x\left(n\right)W_N^{kn}}\right|_{k=0}\left.=X\left(k\right)\right|_{k=0}=X\left(0\right)

    3.6 序列的起始值

    x(0)=1Nk=0N1X(k)WNknn=0=1Nk=0N1X(k) x\left(0\right)=\frac{1}{N}\left.\sum_{k=0}^{N-1}{X\left(k\right)W_N^{-kn}}\right|_{n=0}=\frac{1}{N}\sum_{k=0}^{N-1}X\left(k\right)

    3.7 延长序列的 DFT

      将 NN 点长序列 x(n)(n=1,2,,N1)x\left(n\right)\left(n=1,2,\cdots,N-1\right) 补零延长 rNrN 点得到序列 g(n)g\left(n\right),即
    g(n)={x(n),n=0,1,,N10,n=N,N+1,rN1 g\left(n\right)= \begin{aligned} \begin{cases} x(n),&n=0,1,⋯,N-1\\ 0,&n=N,N+1,⋯rN-1 \end{cases} \end{aligned} g(n)g\left(n\right) 的DFT
    G(k)=DFT[g(n)]=n=0rN1g(n)ej2πnkrN=n=0N1g(n)ej2πn(kr)N=X(kr),  k=0,1,,rN1  \begin{aligned} G\left(k\right)&=\mathrm{DFT}\left[g\left(n\right)\right]=\sum_{n=0}^{rN-1}{g\left(n\right)e^{-j\frac{2\pi nk}{rN}}}=\sum_{n=0}^{N-1}{g\left(n\right)e^{-j\frac{2\pi n\left(\frac{k}{r}\right)}{N}}} \\ &=X\left(\frac{k}{r}\right),\ \ k=0,1,\cdots,rN-1\ \end{aligned} 由此,G(k)G\left(k\right)X(k)X\left(k\right )具有相同的形状,但 G(k)G\left(k\right) 的频谱间隔比 X(k)X\left(k\right) 的小。即通过补零,频谱变得更加细致。但是补零不能提高频谱分辨能力。

    3.8 有限长序列的圆周特性

    3.8.1 圆周移位(周期化→移位→取主值)

    x((nm))NRN(n)={x(nm),mnN1x(Nm+n),0nm x\left(\left(n-m\right)\right)_NR_N\left(n\right)= \begin{aligned} \begin{cases} x\left(n-m\right),&m\leqslant n\leqslant N-1 \\ x\left(N-m+n\right),&0\leqslant n\leqslant m \end{cases} \end{aligned}

    3.9.2 圆周反转(周期化→反转→取主值)

    x((n))NRN(n)={x(0),n=0x(Nn),1nN1 x\left(\left(-n\right)\right)_NR_N\left(n\right)= \begin{aligned} \begin{cases} x\left(0\right),&n=0 \\ x\left(N-n\right),&1\leqslant n\leqslant N-1 \end{cases} \end{aligned}

    3.8.3 有限长序列的时间圆周移位定理(可以通过 DFS 证明)

    DFT[x((n+m))NRN(n)]=WNmkX(k) \mathrm{DFT}\left[x\left(\left(n+m\right)\right)_NR_N\left(n\right)\right]=W_N^{-mk}X\left(k\right) 由此,有限长序列的圆周移位导致频谱线性相移,而对频谱幅度无影响

    3.8.4 限长序列的频率圆周移位定理(调制特性,可以通过 DFS 证明)

    IDFT[X((k+l))NRN(k)]=WNnlx(n)=ej2πNnlx(n) \mathrm{IDFT}\left[X\left(\left(k+l\right)\right)_NR_N\left(k\right)\right]=W_N^{nl}x\left(n\right)=e^{-j\frac{2\pi}{N}nl}x\left(n\right) 由此,时域序列的调制等效于频域的圆周移位,且可以推得
    DFT[x(n)cos(2πnlN)]=12[X((kl))N+X((k+l))N]RN(k) \mathrm{DFT}\left[x\left(n\right)\cos{\left(\frac{2\pi nl}{N}\right)}\right]=\frac{1}{2}\left[X\left(\left(k-l\right)\right)_N+X\left(\left(k+l\right)\right)_N\right]R_N\left(k\right) DFT[x(n)sin(2πnlN)]=12[X((kl))NX((k+l))N]RN(k) \mathrm{DFT}\left[x\left(n\right)\sin{\left(\frac{2\pi nl}{N}\right)}\right]=\frac{1}{2}\left[X\left(\left(k-l\right)\right)_N-X\left(\left(k+l\right)\right)_N\right]R_N\left(k\right)

    3.8.5 DFT的圆周对称性

    3.8.5.1 奇序列和偶序列的 DFT

    奇序列的 DFT
    x(n)=x(n)=x((n))NRN(n)X(k)=X(k)=X((Nk))NRN(k) x\left(n\right)=-x\left(-n\right)=-x\left(\left(-n\right)\right)_NR_N\left(n\right)\rightarrow X\left(k\right)=-X\left(-k\right)=-X\left(\left(N-k\right)\right)_NR_N\left(k\right) 偶序列的 DFT
    x(n)=x(n)=x((n))NRN(n)X(k)=X(k)=X((Nk))NRN(k) x\left(n\right)=x\left(-n\right)=x\left(\left(-n\right)\right)_NR_N\left(n\right)\rightarrow X\left(k\right)=X\left(-k\right)=X\left(\left(N-k\right)\right)_NR_N\left(k\right)

    3.8.5.2 序列的对称分解

      普通序列 x(n)x\left(n\right) 的共轭对称分量和共轭反对称分量分别为
    xe(n)=12[x(n)+x(n)],  xo(n)=12[x(n)x(n)] x_e\left(n\right)=\frac{1}{2}\left[x\left(n\right)+x^\ast\left(-n\right)\right],\ \ x_o\left(n\right)=\frac{1}{2}\left[x\left(n\right)-x^\ast\left(-n\right)\right] 对有限长序列的 DFT 进行分析时,定义周期共轭对称分量和周期共轭反对称分量分别为
    xep(n)=12[x((n))N+x((n))N]RN(n)=12[x(n)+x(Nn)] x_{ep}\left(n\right)=\frac{1}{2}\left[x\left(\left(n\right)\right)_N+x^\ast\left(\left(-n\right)\right)_N\right]R_N\left(n\right)=\frac{1}{2}\left[x\left(n\right)+x^\ast\left(N-n\right)\right] xop(n)=12[x((n))Nx((n))N]RN(n)=12[x(n)x(Nn)] x_{op}\left(n\right)=\frac{1}{2}\left[x\left(\left(n\right)\right)_N-x^\ast\left(\left(-n\right)\right)_N\right]R_N\left(n\right)=\frac{1}{2}\left[x\left(n\right)-x^\ast\left(N-n\right)\right] 二者关系为
    xep(n)=[xe(n)+xe(nN)]RN(n),  xop(n)=[xo(n)+xo(nN)]RN(n) x_{ep}\left(n\right)=\left[x_e\left(n\right)+x_e\left(n-N\right)\right]R_N\left(n\right),\ \ x_{op}\left(n\right)=\left[x_o\left(n\right)+x_o\left(n-N\right)\right]R_N\left(n\right)

    3.8.5.3 共轭复序列的 DFT

    DFT[x(n)]=X((Nk))N \mathrm{DFT}\left[x^\ast\left(n\right)\right]=X^\ast\left(\left(N-k\right)\right)_N DFT[x(n)]=X(k) \mathrm{DFT}\left[x^\ast\left(-n\right)\right]=X^\ast\left(k\right) 证明:
    DFT[x(n)]=n=0N1x(n)WNkn=[n=0N1x(n)WNkn]=X(k)=X((Nk))N \mathrm{DFT}\left[x^\ast\left(n\right)\right]=\sum_{n=0}^{N-1}{x^\ast\left(n\right)W_N^{kn}}=\left[\sum_{n=0}^{N-1}{x\left(n\right)W_N^{-kn}}\right]^\ast=X^\ast\left(-k\right)=X^\ast\left(\left(N-k\right)\right)_N DFT[x(n)]=n=0N1x(n)WNkn=[n=0N1x(n)WNkn]=[m=N+10x(m)WNkm]=[n=0N1x(n)WNkn]=X(k) \begin{aligned} \mathrm{DFT}\left[x^\ast\left(-n\right)\right]&=\sum_{n=0}^{N-1}{x^\ast\left(-n\right)W_N^{kn}}=\left[\sum_{n=0}^{N-1}{x\left(-n\right)W_N^{-kn}}\right]^\ast \\ &=\left[\sum_{m=-N+1}^{0}{x\left(m\right)W_N^{km}}\right]^\ast=\left[\sum_{n=0}^{N-1}{x\left(n\right)W_N^{kn}}\right]^\ast=X^\ast\left(k\right) \end{aligned}

    3.8.5.4 复数序列的 DFT

    x(n)=xr(n)+jxi(n) x\left(n\right)=x_r\left(n\right)+jx_i\left(n\right) \quad\quad\quad\updownarrow\qquad\quad \updownarrow X(k)=Xep(k)+Xop(k) X\left(k\right)=X_{ep}\left(k\right)+X_{op}\left(k\right) 证明:
    Xep(k)=DFT[xr(n)]=12DFT[x(n)+x(n)]=12[X(k)+X(Nk)] X_{ep}\left(k\right)=\mathrm{DFT}\left[x_r\left(n\right)\right]=\frac{1}{2}\mathrm{DFT}\left[x\left(n\right)+x^\ast\left(n\right)\right]=\frac{1}{2}\left[X\left(k\right)+X^\ast\left(N-k\right)\right] Xop(k)=DFT[jxi(n)]=12DFT[x(n)x(n)]=12[X(k)+X(Nk)] X_{op}\left(k\right)=\mathrm{DFT}\left[{jx}_i\left(n\right)\right]=\frac{1}{2}\mathrm{DFT}\left[x\left(n\right)-x^\ast\left(n\right)\right]=\frac{1}{2}\left[X\left(k\right)+X^\ast\left(N-k\right)\right] 且由 3.8.5.3 共轭复序列的 DFT 可推知
    Xep(k)=Xep(Nk)   () X_{ep}\left(k\right)=X_{ep}^\ast\left(N-k\right)\ \ \ (实部相等,虚部相反) Xop(k)=Xop(Nk)() X_{op}\left(k\right)=-X_{op}^\ast\left(N-k\right)(实部相反,虚部相等)

    3.8.5.5 DFT 的奇偶虚实特性

    x(n)x(n) X(k)X(k)
    实部为偶,虚部为奇
    实部为奇,虚部为偶
    实偶 实偶
    实奇 虚奇
    虚偶 虚偶
    虚奇 实奇

    3.8.6 圆周卷积定理

    注:此处用 \odot 表示圆周卷积,不同教材中圆周卷积的符号表述可能不同。

    3.8.6.1 时域圆周卷积定理

    x(n)=x1(n)x2(n)=y~(n)=m=0N1x1(m)[x2((nm))NRN(n)]=IDFT[X1(k)X2(k)] \begin{aligned} x\left(n\right)=x_1\left(n\right)\odot x_2\left(n\right)&=\widetilde{y}\left(n\right)=\sum_{m=0}^{N-1}{x_1\left(m\right)\left[x_2\left(\left(n-m\right)\right)_NR_N\left(n\right)\right]} \\ &=\mathrm{IDFT}\left[X_1\left(k\right)\cdot X_2\left(k\right)\right] \end{aligned}

    3.8.6.2 频域圆周卷积定理

    X(k)=X1(k)X2(k)=X~(k)RN(k)=1Nl=0N1X1(l)[X2((kl))NRN(k)]=DFT[x1(n)x2(n)] \begin{aligned} X\left(k\right)=X_1\left(k\right)\odot X_2\left(k\right)&=\widetilde{X}\left(k\right)R_N\left(k\right)=\frac{1}{N}\sum_{l=0}^{N-1}{X_1\left(l\right)\left[X_2\left(\left(k-l\right)\right)_NR_N\left(k\right)\right]} \\ &=\mathrm{DFT}\left[x_1\left(n\right)\cdot x_2\left(n\right)\right] \end{aligned}

    3.8.6.3 圆周卷积和线性卷积的关系

      长度为 LL 的序列 x1(n)x_1\left(n\right) 和长度为 MM 的序列 x2(n)x_2\left(n\right) 的周期卷积是二者的线性卷积的以 NN 为周期的周期延拓,若满足
    NL+M1 N\geqslant L+M-1 则周期卷积的主值序列即圆周卷积与线性卷积完全相同,即 x1(n)x2(n)=x1(n)x2(n)x_1\left(n\right)\odot x_2\left(n\right)=x_1\left(n\right)\ast x_2\left(n\right)

    3.8.6.4 圆周卷积的矩阵算法

    y=hx=[h100hmh2h100hmhm1000hmh1000h1hm100hmhm1]N×N[x1x2xn00]N×1 y=h\odot x=\left[\begin{matrix}h_1&0&\cdots&0&h_m&\cdots\\h_2&h_1&\cdots&0&0&\cdots\\\vdots&\vdots&&\vdots&\vdots&\cdots\\h_m&h_{m-1}&\cdots&0&0&\cdots\\0&h_m&\cdots&h_1&0&\cdots\\0&0&&\vdots&h_1&\cdots\\\vdots&\vdots&&h_{m-1}&\vdots&\cdots\\0&0&\cdots&h_m&h_{m-1}&\cdots\\\end{matrix}\right]_{N\times N}\cdot\left[\begin{matrix}x_1\\x_2\\\vdots\\x_n\\0\\\vdots\\0\\\end{matrix}\right]_{N\times1} 也可先计算线性卷积以 NN 为周期进行周期化后取主值得到圆周卷积。注意周期化时 N<m+n1N<m+n-1 的情况,此时会出现重叠,重叠部分相加后才是圆周卷积的结果。

    3.8.7 重叠相加法和重叠保留法

     已知序列
    x(n)={2,3,4,5,6,7,8,9,10,11,12,13,14}(0n12)x\left(n\right)=\left\{2,-3,4,5,-6,7,8,-9,-10,11,-12,-13,-14\right\}\left(0\leqslant n\leqslant12\right) h(n)={1,2,3}(0n2) h\left(n\right)=\left\{1,-2,-3\right\}(0\leqslant n\leqslant2)   试分别用重叠相加法和重叠保留法计算线性卷积,取分段长度 L=5L=5

    解:①重叠相加法
       将长序列 x(n)x\left(n\right) 分段,每段长度为 55
    x1(n)={2,3,4,5,6}x2(n)={7,8,9,10,11}x3(n)={12,13,14} \begin{aligned} &x_1\left(n\right)=\left\{2,-3,4,5,-6\right\} \\ &x_2\left(n\right)=\left\{7,8,-9,-10,11\right\} \\ &x_3\left(n\right)=\left\{ -12,-13,-14\right\} \end{aligned}    用圆周卷积计算计算各段与 h(n)h\left(n\right) 的线性卷积,下划线标注部分是需要重叠相加的部分
    y1(n)={2,7,4,6,28,3,18}y2(n)={7,6,46,16,58,8,33}y3(n)={12,11,48,67,42} \begin{aligned} &y_1\left(n\right)=\left\{2,-7,4,6,-28,\underline{-3,18}\right\}\\ &y_2\left(n\right)=\left\{\underline{7,-6},-46,-16,58,\underline{8,-33}\right\}\\ &y_3\left(n\right)=\left\{\underline{-12,11},48,67,42\right\} \end{aligned}    将各段结果重叠相加,连接成线性卷积结果
    y(n)={2,7,4,6,28,4,12,46,16,58,4,22,48,67,42} y\left(n\right)=\left\{2,-7,4,6,-28,\mathbf{4},\mathbf{12},-46,-16,58,-\mathbf{4},-\mathbf{22},48,67,42\right\}
      ②重叠保留法
       将长序列 x(n)x\left(n\right) 分段,每段长度为 55
    x1(n)={0,0,2,3,4}x2(n)={3,4,5,6,7}x3(n)={6,7,8,9,10}x4(n)={9,10,11,12,13}x5(n)={12,13,14,0,0} \begin{aligned} &x_1\left(n\right)=\left\{\underline{0,0,2},-3,4\right\}\\ &x_2\left(n\right)=\left\{\underline{-3,4},5,-6,7\right\}\\ &x_3\left(n\right)=\left\{\underline{-6,-7},8,-9,-10\right\}\\ &x_4\left(n\right)=\left\{\underline{-9,-10},11,-12,-13\right\}\\ &x_5\left(n\right)=\left\{\underline{-12,-13},-14,0,0\right\} \end{aligned}    用圆周卷积计算计算各段与 h(n)h\left(n\right) 的线性卷积,下划线标注部分是需要舍去的部分
    y1(n)={1,12,2,7,4}y2(n)={1,11,6,28,4}y3(n)={41,49,12,46,16}y4(n)={53,47,58,4,22}y5(n)={12,11,48,67,42} \begin{aligned} &y_1\left(n\right)=\left\{\underline{1,-12},2,-7,4\right\}\\ &y_2\left(n\right)=\left\{\underline{1,-11},6,28,4\right\}\\ &y_3\left(n\right)=\left\{\underline{41,49},12,-46,-16\right\}\\ &y_4\left(n\right)=\left\{\underline{53,47},58,-4,-22\right\}\\ &y_5\left(n\right)=\left\{\underline{-12,11},48,67,42\right\} \end{aligned}    将各段重叠部分舍去,连接成线性卷积结果
    y(n)={2,7,4,6,28,4,12,46,16,58,4,22,48,67,42} y\left(n\right)=\left\{2,-7,4,6,-28,4,12,-46,-16,58,-4,-22,48,67,42\right\}

    3.9 Parseval 定理(能量守恒)

    n=0 N1x2(n)=1Nk=0N1X(k)2 \sum_{n=0\ }^{N-1}{x^2\left(n\right)}=\frac{1}{N}\sum_{k=0}^{N-1}\left|X\left(k\right)\right|^2

    3.10 DFT 与 zz 变换

    X(k)=n=0N1x(n)WNnk=n=0N1x(n)ej2πNnk=n=0N1x(n)znz=ej2πNk=X(z)z=ej2πNk=n=0N1x(n)ejωnω=2πNk(k=0,1,,N1) \begin{aligned} X\left(k\right)&=\sum_{n=0}^{N-1}{x\left(n\right)W_N^{nk}}=\sum_{n=0}^{N-1}{x\left(n\right)e^{-j\frac{2\pi}{N}nk}}=\left.\sum_{n=0}^{N-1}{x\left(n\right)z^{-n}}\right|_{z=e^{j\frac{2\pi}{N}k}} \\ &=\left.X\left(z\right)\right|_{z=e^{j\frac{2\pi}{N}k}}=\left.\sum_{n=0}^{N-1}{x\left(n\right)e^{-j\omega n}}\right|_{\omega=\frac{2\pi}{N}k}\left(k=0,1,\cdots,N-1\right) \end{aligned} 因此 x(n)x\left(n\right) 的 DFT 的 NN 个系数即为 x(n)x\left(n\right)zz 变换 X(z)X\left(z\right) 在单位圆上 NN 等分的取样点。


    4. 频域取样的点数限制

      设 MM 点序列 x(n)x\left(n\right)zz 变换为 X(z)X\left(z\right),DTFT 为 X(ejω)X\left(e^{j\omega}\right),则有

    X(z)X\left(z\right) 的单位圆上均匀采样 NN 点,其 IDFT 是序列 x(n)x\left(n\right) 以周期 NN 进行周期延拓后的主值序列;
    X(ejω)X\left(e^{j\omega}\right) 的一个周期内均匀采样 NN 点,其 IDFT 是序列 x(n)x\left(n\right) 以周期 NN 进行周期延拓后的主值序列;
    X(ejω)X\left(e^{j\omega}\right) 的一个周期内均匀采样 MM 点,其 IDFT 是序列 x(n)x\left(n\right) 本身。

    由此,对于列长为M的有限长序列 x(n)x\left(n\right),频域取样不失真的条件是取样点数 NN 满足
    NM N\geqslant M 并且对于无限长序列 x(n)x\left(n\right),无论 NN 取值如何,都不可能消除混叠,只能随着取样点 NN 增加而接近 x(n)x\left(n\right)


    5. 内插公式

      用 DFT 表示 ZT
    X(z)=n=0N1x(n)zn=n=0N1[1Nk=0N1X(k)WNnk]zn=1Nk=0N1[X(k)n=0N1(WNkz1)n]=1Nk=0N1X(k)1WNknzN1WNkz1=1Nk=0N1X(k)1zN1WNkz1=1zNNk=0N1X(k)1WNkz1=k=0N1X(k)φk(z) \begin{aligned} X\left(z\right)&=\sum_{n=0}^{N-1}{x\left(n\right)z^{-n}}=\sum_{n=0}^{N-1}{\left[\frac{1}{N}\sum_{k=0}^{N-1}{X\left(k\right)W_N^{-nk}}\right]z^{-n}}=\frac{1}{N}\sum_{k=0}^{N-1}\left[X\left(k\right)\sum_{n=0}^{N-1}\left(W_N^{-k}z^{-1}\right)^n\right] \\ &=\frac{1}{N}\sum_{k=0}^{N-1}{X\left(k\right)\frac{1-W_N^{-kn}z^{-N}}{1-W_N^{-k}z^{-1}}}=\frac{1}{N}\sum_{k=0}^{N-1}{X\left(k\right)\frac{1-z^{-N}}{1-W_N^{-k}z^{-1}}} \\ &=\frac{1-z^{-N}}{N}\sum_{k=0}^{N-1}\frac{X\left(k\right)}{1-W_N^{-k}z^{-1}}=\sum_{k=0}^{N-1}{X\left(k\right)\varphi_k\left(z\right)} \end{aligned} 其中 X(z)X\left(z\right) 的内插公式
    φk(z)=1N1zN1WNkz1 \varphi_k\left(z\right)=\frac{1}{N}\cdot\frac{1-z^{-N}}{1-W_N^{-k}z^{-1}}   用 DFT 表示 DTFT
    X(ejω)=X(z)z=ejω=k=0N1X(k)φk(ejω)=k=0N1X(k)φ(ωk2πN) X\left(e^{j\omega}\right)=\left.X\left(z\right)\right|_{z=e^{j\omega}}=\sum_{k=0}^{N-1}{X\left(k\right)\varphi_k\left(e^{j\omega}\right)}=\sum_{k=0}^{N-1}X\left(k\right)\varphi\left(\omega-k\frac{2\pi}{N}\right) 其中内插函数
    φ(ω)=1Nsin(ωN2)sin(ω2)ejω(N12) \varphi\left(\omega\right)=\frac{1}{N}\frac{\sin{\left(\frac{\omega N}{2}\right)}}{\sin{\left(\frac{\omega}{2}\right)}}e^{-j\omega\left(\frac{N-1}{2}\right)} 时域取样定理说明,对频域带限的信号,可对其进行时域取样而不丢失任何信息。频域取样理论说明,时间有限的信号(有限长序列),也可对其进行频域取样(DFT)而不丢失任何信息。


    6. 用 DFT 对连续时间信号逼近的问题

    6.1 混叠现象

      时域采样会引起频谱周期化,通过 fs2fhf_s\geqslant 2f_h 消除。

    6.2 频谱泄露现象

      取用有限个数据,即将信号截断的过程,等同于将信号乘以窗函数。如果窗函数是矩形窗,在时域内将信号截断相当于乘以矩形窗,而在频域中则相当于原信号的频谱与矩形窗的频谱卷积,使得原信号的频谱被展宽,造成频谱泄露。通常通过选择频谱特性更接近于 δ(k)\delta\left(k\right) 的函数来减少频谱泄露。

    6.3 栅栏效应

      用 DFT 计算频谱时,采样点为基频的整数倍,由此观察到的频谱特征时有限的,若在两个取样点之间有剧烈的频谱变化,将无法检测出来。通常通过在原序列的末端添加一些零值点来改变周期内的点数,从而在保持原有频谱连续形式不变的情况下,变更了谱线的位置,原来看不到的频谱分量就能移动到可见的位置上。

    6.4 DFT 参数的选择

    6.4.1 取样频率 fsf_s(由取样定理)

    fs2fh f_s\geqslant 2f_h

    6.4.2 取样周期 TT

    T=1fs12fh T=\frac{1}{f_s}\leqslant\frac{1}{2f_h}

    6.4.3 频率分辨率(频率分量间的增量)FF

    F=fsN F=\frac{f_s}{N} FF 越小,频率分辨率越高。

    6.4.4 最小记录长度(周期性函数的有效周期)tpt_p

    tp=1F=NT t_p=\frac{1}{F}=NT

    6.4.5 一个记录长度内的点数 NN

    N2fhF N\geqslant\frac{2f_h}{F}

    注:最高频率 fhf_h 和频率分辨率 FF 存在矛盾,即
    fhfs2fhfsT=1fsTN给定时tpF(频率分辨率) f_h\uparrow \xrightarrow{f_s\geqslant 2f_h}f_s\uparrow \xrightarrow{T=\frac{1}{f_s}}T\uparrow \xrightarrow{N\text{给定时}}t_p\downarrow \longrightarrow F\uparrow \left( \text{频率分辨率}\downarrow \right)


    上一篇:Part 2——离散傅里叶级数 DFS
    下一篇:Part 4——快速傅里叶变换 FFT

    展开全文
  • 图像处理 二维离散傅里叶变换DFT matlab代码图像处理领域离散傅里叶变换的作用二维离散傅里叶变换二维离散傅里叶变换公式将二维的离散傅里叶变换进行转化将系数转化为矩阵形式注意,从矩阵的乘积i形式可以看出,原来...
  • DFT转化为矩阵运算 参考文档 Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过 Euler integral Γ(z)=∫0∞tz−1e−tdt . \Gamma(z) = \int_...
  • DFT的matlab源代码KG4VASP 版本:v1.0稳定版(独立) 在实际系统中的应用:参考。...FILE_NABLA(字符):DFT代码存储nabla矩阵元素的文件的名称 NKPOINTS(整数):K-POINTS的数量 NP_FREQ(整数):最小和最
  • 越来越笨了,dftmtx用法都老是忘记,举几个例子以免又忘了。。。 例1: x=rand(1,Nfft); y=dftmtx(Nfft)*x.’ %和y=fft(x)是等价的 ...相应的,dftmtx(Nfft)产生的矩阵中,第k行,n列元素=exp(-j2pik*n/Nff...
  • 例题 计算以下图像的离散傅里叶变换 f=[1441244224421441] f=\begin{bmatrix}1&...计算方式当然不是通过原始公式硬算,而是构造权值矩阵来计算。 考虑二维DFT的分解: F(u,v)=∑x=0M−1∑y=0N−1f(x,y)e−
  • 第1步遍历图像矩阵的每一个像素; 第2步对像素应用公式: int divideWith=10; uchar table[256]; for (int i=0;i&lt;256;i++) table[i]=divideWith*(i/divideWith); LUT函数: Look up table操作------...
  • Winograd FFT算法

    2020-11-13 04:01:50
    Winograd FFT算法[85]是建立在对N1×N2维逆DFT矩阵(没有前因子N-1)的观察基础上,gcd(N1,N2)=1,也就是:  这两个公式可以用两个分别是N1和N2维的二次IDFT矩阵的Kronecker乘积重写。如同Good-Thomas算法...
  • 傅里叶变换

    2017-04-16 11:34:26
    离散傅里叶变换(Discrete Fourier Transform, DFT)的正变换公式如下: 可将变换写为矩阵形式: 即 X=WNx 变换矩阵: 其中运用到欧拉公式:   因此:      对于矩阵的傅里叶变换:
  • 离散正弦变换(DST)实现(cpu和cuda)

    千次阅读 2018-06-03 15:45:24
    但是类似于DFT,它的变换矩阵并不是一个完全的正交矩阵,需要外加一个定标因子才能变换正交矩阵,有关Matlab中的dst正变换和dst逆变换函数对应的公式分别如下:从以上两个公式可以看出它类似于我们常见的DFTDFT反...
  • FFT快速傅里叶变换的推导

    千次阅读 2019-05-10 19:09:50
    首先搞清楚,DFT计算的是什么及其公式。 其中 展开后得: ………… 上面多项式可转化为下面的矩阵: 最后看到离散傅里叶就是一个复数的矩阵乘法计算。 复指数的周期说明 从上面看到矩阵里的元素全...
  • matlib频域图像处理

    2020-12-13 19:38:22
    图像f(x,y)的二维离散傅立叶变换(2-D DFT)是一个矩阵,其项定义为: 其中u和v是整数频率指数,u=0,1,…,M-1和v=0,1,…,N-1。 二维DFT F(u,v)被认为是图像F(x,y)的频率表示。 公式中的归一化频率...
  • DFT离散的傅里叶变换去掉虚数项的表示。常用于图像音频压缩技术上,如jpeg,h264,mpeg算法中。 公式: 推导与理解见知乎: 代码: 一维DCT变换: 二维DCT变换: 矩阵表示和matlab程序 分块DCT变换 ...
  • 2.3.3 用于DFT矩阵U是酉矩阵吗? 74 2.3.4 DFT 用来扩展图像的基元图像是什么样的? 76 2.3.5 为什么离散傅里叶变换比其他变换得到了更广泛的应用? 78 2.3.6 什么是卷积定理? 79 B2.7 如果一个函数是两个...
  • 算法导论(原书第三版)

    热门讨论 2013-03-06 14:31:34
    A.1 求和公式及其性质 A.2 确定求和时间的界 思考题 附录注记 附录B 集合等离散数学内容 B.1 集合 B.2 关系 B.3 函数 B.4 图 B.5 树 B.5.1 自由树 B.5.2 有根树和有序树 B.5.3 二叉树和位置树 思考题 ...
  • 算法导论中文版

    2016-10-26 10:13:58
     A.1 求和公式及其性质  A.2 确定求和时间的界  思考题  附录注记 附录B 集合等离散数学内容  B.1 集合  B.2 关系  B.3 函数  B.4 图  B.5 树  B.5.1 自由树  B.5.2 有根树和有序树  B.5.3 ...
  • 数字信号处理习题答案第二版

    热门讨论 2010-03-28 18:43:51
    书名:数字信号处理(第二版)——高等学校电子信息类规划教材 作者:丁玉美 出版社:西安电子科技大学出版...附录B 矩阵的幂和逆矩阵的计算方法 附录C 实验用MATLAB工具箱函数简介 附录D FHT程序清单(FORTRAN) 参考文献
  • 《数字图像处理》冈萨雷斯 第三版part1(共1-3部分)

    千次下载 热门讨论 2014-11-12 13:50:07
     10.4.1 基础公式  10.4.2 区域生长  10.4.3 区域分离和合并  10.5 使用分水岭变换的分割  10.5.1 使用距离变换的分水岭分割  10.5.2 使用梯度的分水岭分割  10.5.3 控制标记符的分水岭分割  小结 第11章 ...
  • 算法导论(part1)

    热门讨论 2010-09-09 22:51:05
    一、本书的内容 目前,市面上有关计算机算法的书很多,有些叙述严谨但不全面,另外一些则是容量很大但不够严谨。本书将叙述的严谨性以及内容的深度和广度有机地结合了起来。第1版推出后,即在世界范围内受到了广泛...
  • 算法导论(part2)

    2010-09-09 22:54:12
    一、本书的内容 目前,市面上有关计算机算法的书很多,有些叙述严谨但不全面,另外一些则是容量很大但不够严谨。本书将叙述的严谨性以及内容的深度和广度有机地结合了起来。第1版推出后,即在世界范围内受到了广泛...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

dft矩阵公式