自然序列平方的离散傅里叶变换公式推导

您所在的位置:网站首页 级数x的n次方等于什么 自然序列平方的离散傅里叶变换公式推导

自然序列平方的离散傅里叶变换公式推导

2023-06-07 02:00| 来源: 网络整理| 查看: 265

自然序列平方的DFT

 

01 离散傅里叶变换 信号与系统 2023(春季) 作业参考答案 - 第十三次作业 一、前言 二、N的平方序列

  对于序列平方的离散傅里叶变换,   可以直接利用定义, 再施加一定的数学推导,   经过整理之后,   便可以得到最后的结果。  下面利用数值仿真的方法, 来验证一下这个公式是否正确。

GM1685248592_1280_800.MPG|_-9

1、推导n的DFT

from headm import * N = 10 def D(k): if k == 0: return sum([i**1 for i in range(N)]) W = exp(-1j*2*pi/N)**k return (-N)/(1-W) ndim = [i**1 for i in range(N)] printf(ndim) dftn = fft.fft(ndim) dft1 = array([D(i) for i in range(N)]) printf(abs(dftn), abs(dft1)) printf(dftn, dft1) 三、序列平方DFT

  对于自然数平方序列  下面推导一下它的离散傅里叶变换。 这是 DFT 公式,   其中 W 是  e 的 负j N 分之 2 Pi。 它有一个性质,  对于 N 的整数倍数次幂,   经过化简,   可以知道它等于 e 的 负 j, 2 Pi k, 这个数值等于 1。  这个属性待会儿在求解过程中会使用到。  

  对于序列平方的离散傅里叶变换,  其中 k 等于 0 时, 结果比较简单,  它等于 n 的平方的累加,  这里就给出了对应的结果。   下面我们推导一下,  k 不等于 0 时, 这个变化结果。

GM1685256793_1280_800.MPG|_-20

  下面为了书写方便,  先对 k=1 的情况进行推导, 后面再 利用 W 的 nk 次方替换 W n 次方。  由于在后面需要应用到 n 的离散傅里叶变换,  在这里先求 n 的 傅里叶变换。  对于上面这个系数为等差序列的等比序列的求和,  将其不同的想进行拆解,  每一行都是等比序列,  对于第一行,  根据等比序列, 可以计算出累加和等于 1 减 W 分之 W 减去 W 的 N 次方。  第二行也是一个等比序列。   它的累加和等于 首项 减去 尾项乘以等比, 再除以 1 减去 等比。  其余各项都可以推导出来。   将这些结果类加在一起,  对其进行化简。  其中 W 的 N 次方, 刚才已经说明过 它等于 1。  前面是一个等比序列的累加和,  写出它的结果,  将 W 的 N 次方更换为 1,  前面这一项等于 负一。 对于分子进行化简,  最终等于 负 N 。  至此, 我们先得到了 序列 n 的离散傅里叶变换。

GM1685257725_1280_800.MPG|_-24   这个结果 留作后面使用。   下面推导 n 的平方的离散傅里叶变换公式。   根据公式, 继续将其展开,  利用相同的技巧, 把它展成许多等比序列之和,  我们可以写出每一组等比序列累加结果。   然后再合并这些累加和。  提出相同的分母,  里面包括有 2k 减去 1 乘以 W 的k 次方的累加,  还有一个等差序列的累加。 其中 W 的 N次方等于 1,  所以后面就是等差序列累加和,  结果等于N 减 1 的平方。   前面的累加和可以拆成两项, 后面一项是等比序列累加和, 写出它的结果。  前面一项是关于 序列 n 的 离散傅里叶变换,  这个结果前面刚刚求出, 将其代入。  对于中间的结果进行化简,  它等于 负1。   最终合并后面两项, 这是化简后的结果。  写出最终的结果。

GM1685258708_1280_800.MPG|_-26   根据这个结果,   最终可以得到关于 k 不等于 0 时对应的离散傅里叶变换。   这是 n 的平方序列的离散傅里叶变换结果。  请注意, k 等于 0 时的表达式需要单独写出来。

GM1685258916_1280_800.MPG|_-7 ▲ 图1.3.1 推导过程

▲ 图1.3.1 推导过程

四、数值验证

  下面使用 Python 程序, 验证一下这个结果是否正确。  在这里验证 N 等于 10 的时候,使用推导结果与FFT计算结果进行对比。 这是根据刚才推动的公式, 计算不同 k 时 对应的变换结果。 定义 n 平方的数组。 直接使用 FFT 计算出 结果。 利用公式计算出结果。 输出两个计算结果数值, 对比它们是否相同。 这是输出两种方法计算的结果, 可以看出使用给定的公式和 FFT 计算出的结果是一样的。  由此,验证了这个公式的正确性。

GM1685259409_1280_800.MPG|_-10

from headm import * N = 10 def D(k): if k == 0: return N*(N+1)*(2*N+1)/6 W = exp(-1j*2*pi/N)**k return (-N**2-(2*N-N**2)*W)/(1-W)**2 ndim = [i**2 for i in range(N)] dftn = fft.fft(ndim) dft1 = array([D(i) for i in range(N)]) printf(abs(dftn), abs(dft1)) printf(dftn, dft1)

  下面是计算结果:

[285. 153.90228295 77.44867398 55.80400795 47.346625 45. 47.346625 55.80400795 77.44867398 153.90228295] [385. 153.90228295 77.44867398 55.80400795 47.346625 45. 47.346625 55.80400795 77.44867398 153.90228295] [285. +0.00000000e+00j 2.36067977+1.53884177e+02j -35.52786405+6.88190960e+01j -42.36067977+3.63271264e+01j -44.47213595+1.62459848e+01j -45. +1.06581410e-14j -44.47213595-1.62459848e+01j -42.36067977-3.63271264e+01j -35.52786405-6.88190960e+01j 2.36067977-1.53884177e+02j] [385. +0.j 2.36067977+153.88417686j -35.52786405 +68.81909602j -42.36067977 +36.3271264j -44.47213595 +16.24598481j -45. +0.j -44.47213595 -16.24598481j -42.36067977 -36.3271264j -35.52786405 -68.81909602j 2.36067977-153.88417686j]

 

※ 总  结 ※

  本文推到了 自然序列平方的离散傅里叶变换公式, 对于和这个习题相关的参考答案进行更新。 GM1685259489_1280_800.MPG|_-2

■ 相关文献链接:

404

● 相关图表链接:

图1.3.1 推导过程


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3