利用FFT成功实现拓扑识别(十)--对FFT算法的理解3

34 篇文章 3 订阅
10 篇文章 1 订阅

信号的相关性

在二维或三维的欧几里得空间中,两个向量正交即它们成90°角。

在这里插入图片描述数学定义中,正交的矢量的内积为零:

在这里插入图片描述
将矢量空间正交分解的概念可推广到信号空间,即:

在这里插入图片描述但是正交有什么用呢?

它可以用于检测信号中是否含有某个频率的信号波:把一个待检测信号波乘以另一个信号波,生成个新的信号波,再把这个新的信号波所有的点进行相加,从相加的结果就可以判断出这两个信号的相似程度,比如下图:

在这里插入图片描述上图中先看左侧的example 1,上图是待检测信号,中图为采样冲激信号,下图为两者的乘积,将下图的各点相加,很显然值是正的,这就说明a图含中图频率的正弦波,或者说上图、中图两个信号是相关的。

再看右侧的example 2,上图、中图相乘后,下图中各点相加结果约等于0了,说明上图不含有中图的正弦波。

一次计算后,我们实现了对一个频率的识别,通过改变中图中信号的频率,就可以逐个识别出上图的原始信号中是否包含中图对应的频率成分,这就是dft也就是离散傅里叶变换最底层的原理。

聪明的同学可能已经想到了,为什么中图中要用sin信号昵,其他函数行不行啊?这就引出了正交函数集合的概念,在信号空间找到若干个相互正交的信号作为基本信号(称为正交函数集),使得信号空间中任意信号均可表示成它们的线性组合。

在这里插入图片描述可以证明:

在这里插入图片描述
就是一个完备的正交函数集,利用上述正交函数集合,现在f(t)就是:

在这里插入图片描述dft就是将待检测信号和很多不同频率的正弦波和余弦波相乘,也就是进行了信号相关性检测,从而可以计算出信号中含有的正弦波的幅度,若含有此频率的正弦波,那么幅值不为0,若不含有此正弦波,那么幅值为0,这就是傅里叶变换的由来。

DFT的代码实现

先给出DFT的公式:

在这里插入图片描述其中X(k)表示DFT变换后的数据,x(n)为采样的模拟信号,公式中的x(n)为复信号,但是在实际当中,x(n)都是实信号,即虚部为0,利用我们前面介绍的欧拉公式,可以展开为:

在这里插入图片描述
从这个公式可以看出,变换后的数据就是原信号对cos和sin的相关操作,即进行相乘求和(连续信号即为积分),再来看看DFT的c语言代码:

在这里插入图片描述其中Input_Squence保存采样数据,N为采样点数,Sum_Point.real和Sum_Point.imag 分别对应复数的实部和虚部,真个DFT是不是一目了然了

呵呵,会者不难难者不会,高大上的DFT也不过如此。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyjbj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值