傅里叶分析学习笔记

学习傅里叶分析也零零散散的学了快1年了, 都是自学。看网上的资料学习的。
其中不乏比较通俗易懂的讲解傅里叶分析概念的。例如下面这几篇文章

《傅里叶分析之掐死教程》 下面两个链接都是一样的。防止找不到。随便看一篇都行。
https://zhuanlan.zhihu.com/p/19763358
https://blog.csdn.net/u012361418/article/details/46277779
这两篇文章非常简单明了的介绍了傅里叶分析的作用和相关概念。
已经大部分的介绍了傅里叶分析的主题概念。 这篇文章是网上转载最多,也是最容易理解的文章。确实没有几个公式。(我看了不下20遍)

我总结一下:这篇文章用很简要的文字就描述了傅里叶分析的作用。其功能为可以根据时域信号算出来是有多少种频率组成的。 具体有多少种频率显示在频域图上。。里面也讲解了一些关于复数的概念。 但是却没有从根本上解除我的疑惑。 傅里叶分析到底是如何算的呢?

到底是如何分解成不同频率的呢?

在上篇文章中并没有解除我疑惑的情况下,我有找了好长时间的文章。 终于找到了下面这篇讲解傅里叶分析内部实现算法的文章。 讲解的非常易懂。 虽然我没看懂公式。但是我已经非常肯定的说我知道了傅里叶分析的精华。

《从头到尾彻底理解傅里叶变换算法、上》,里面有讲解内部到底是如何分解计算出有多少种频率的。
https://www.cnblogs.com/v-July-v/archive/2011/02/20/1983676.html

这篇文章讲到了如何分解的算法。

我这里取其精华,只讲重要的部分。其它部分请看原文。

傅里叶分析的核心算法其实还是穷举法, 把原始采集到的信号与无限多个频率的信号来逐一尝试,这个采集到的原始信号中是否包含这个频率的信号。
当然实际上是不会无限多个频率逐一去尝试的。 最多只尝试到 采样量 N的一半的频率。 (差不多这个概念,抱歉我有点马虎,我大概是这么理解的)
如果包含,那么就记下来这个频率, 否则就排除掉这个频率。

那么又来了一个疑问, 算法是如何验证采样信号中是否包含某个频率的数据的呢?

答案是三种方法.:请看《从头到尾彻底理解傅里叶变换算法、上》这篇文章的
第四段: 分解运算方法(DFT)

怕原文找不到,又找了一个转载的文章,地址为.
https://blog.csdn.net/pizi0475/article/details/52914592

利用信号的相关性(correlation)可以从噪声背景中检测出已知的信号,我们也可以利用这个方法检测信号波中是否含有某个频率的信号波:

把一个待检测信号波(也就是采样到的信号波) 乘以 另一个信号波(这个波是逐一拿来尝试的标准波形分别是1hz到N/2hz),得到一个新的信号波,再把这个新的信号波所有的点进行相加,从相加的结果就可以判断出这两个信号的相似程度

这句话非常重要。至于如何理解要结合原文的配图。。才能更容易的理解
为什么要先乘呢? 这涉及到信号运算的一个特性, 两个信号相乘得到的是两个信号的交集..
信号基本运算分为:
1. 移位
2. 反褶
3. 加法
4. 减法
5. 乘法 (这个最重要,是傅里叶分析拆分时域信号的基础,应重点学习)
6. 除法
7. 放大
8. 衰减
9. 沿时间轴压缩,展宽
10. 翻转
11. 差分运算

下面还有一个更重要的基础.

这里有一点必须明白一个正交的概念:两个函数相乘,如果结果中的每个点的总和为0,则可认为这两个函数为正交函数。要确保关联性算法是正确的,则必须使得跟原始信号相乘的信号的函数形式是正交的,我们知道所有的正弦或余弦函数是正交的,这一点我们可以通过简单的高数知识就可以证明它,所以我们可以通过关联的方法把原始信号分离出正余弦信号。当然,其它的正交函数也是存在的,如:方波、三角波等形式的脉冲信号,所以原始信号也可被分解成这些信号,但这只是说可以这样做,却是没有用的。

好到这里就彻底明白了。 至于FFT 则是一种算法上为了更快的执行而改进的算法, 已经不包含分析的具体概念了。
如果想更进一部的了解fft是如何优化改进的话,还需要去看关于fft的算法。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供一些关于 LabVIEW 学习笔记。LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程环境,主要用于控制、数据采集和处理等应用。以下是一些常见的学习笔记: 1. 界面与控件:LabVIEW 的主要特点之一是其图形化界面。了解如何创建界面和使用各种控件(如按钮、滑块、图表等)是学习 LabVIEW 的第一步。 2. 数据流编程:LabVIEW 是一种基于数据流的编程语言,意味着程序的执行顺序由数据的流动决定。理解数据流编程的概念对于使用 LabVIEW 是非常重要的。 3. 连接与通信:LabVIEW 可以与其他设备或系统进行通信,如传感器、仪器、数据库等。学习如何建立连接和进行数据交换是实际应用中常见的需求。 4. 数据处理与分析:LabVIEW 提供了丰富的数据处理和分析工具,如滤波、傅里叶变换、统计分析等。学习如何使用这些工具可以帮助您更好地处理和分析数据。 5. 并行与多线程:LabVIEW 支持并行处理和多线程操作,可以提高程序的性能和效率。了解如何利用这些特性可以优化程序的运行。 6. 错误处理与调试:在开发过程中,遇到错误是不可避免的。学习如何处理错误和进行调试可以帮助您快速解决问题。 这些只是一些基础的学习笔记,希望对您的 LabVIEW 学习有所帮助。如果您有具体的问题或者需要进一步的指导,请随时告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值