从信号处理认识傅里叶变换

2023-11-15

前言

在表示和分析线性时不变系统时,我们的基本方法是将系统输入分解成基本信号的线性组合,其响应是基本输入响应的相同线性组合。

卷积和和卷积积分源于我们将输入信号分解成基本信号的一种特定选择,特别是延迟的单位脉冲。这种选择的优点在于,对于线性时不变系统,一旦已知脉冲在某一时刻的响应,则该响应在所有时刻的响应都是已知的,(单位脉冲和任意函数的卷积还是它本身 δ ( t ) ∗ h ( t ) = h ( t ) \delta(t)*h(t)=h(t) δ(t)h(t)=h(t))。

这里用另一组不同的基本输入——具有单位幅度的复指数来表示信号。对于周期信号,这种形式的分解被称为傅里叶级数,对于非周期信号,它成为傅里叶变换。复指数是线性时不变系统的本征函数;也就是说,线性时不变系统对任何复杂指数信号的响应只是该信号的缩放复制。
e j w k t → ∫ − ∞ t h ( τ ) e j w k ( t − τ ) d τ = e j w k t ∫ − ∞ t h ( τ ) e − j w k τ d τ = H ( w k ) e j w k t e^{jw_kt}\to \int_{-\infin}^{t}h(\tau)e^{jw_k(t-\tau)}d\tau=e^{jw_kt}\int_{-\infin}^{t}h(\tau)e^{-jw_k\tau}d\tau=H(w_k)e^{jw_kt} ejwktth(τ)ejwk(tτ)dτ=ejwktth(τ)ejwkτdτ=H(wk)ejwkt
因此,如果线性时不变系统的输入被表示为复指数的线性组合,那么系统的响应可以简单地用该表示中每个系数的加权来描述。线性时不变系统和复指数之间的这种非常重要和优雅的关系导致了一些非常强大的概念和结果。下面介绍如何把输入信号表示成复指数的线性组合。

1. 傅里叶级数

法国数学家傅里叶发现,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示(选择正弦函数与余弦函数作为基函数是因为它们是正交的),后世称傅里叶级数为一种特殊的三角级数,根据欧拉公式 e j w t = c o s ( w t ) + j s i n ( w t ) e^{jwt}=cos(wt)+jsin(wt) ejwt=cos(wt)+jsin(wt),三角函数又能化成指数形式,也称傅立叶级数为一种指数级数。

给定一个周期为T的函数x(t),那 么它可以表示为无穷级数(1):
x ( t ) = ∑ k = − ∞ + ∞ a k e j k w 0 t x(t)=\sum_{k=-\infin}^{+\infin}a_ke^{jkw_0t} x(t)=k=+akejkw0t
其中 a k a_k ak可由下式计算:
a k = 1 T ∫ T x ( t ) e − j k w 0 t d t a_k=\frac{1}{T}\int_Tx(t)e^{-jkw_0t}dt ak=T1Tx(t)ejkw0tdt
注意到:对于周期为T的函数,故k 取不同值时的周期信号具有谐波关系(即它们都具有一个共同周期T)。k=0时,(1)式中对应的这一项称为直流分量,k=1时具有基波频率,称为一次谐波或基波,类似的有二次谐波,三次谐波等等。
来看祖师爷对上式的分析过程:
在这里插入图片描述

上面有两个错误:第1列底部指数开头没有负号;在第2列的底部,dt应该包含在分析积分的最后。

在分析过程中通过引入 ∫ T e − j m w 0 t d t = { T m = 0 0 m ≠ 0 \int_Te^{-jmw_0t}dt=\begin{cases}T&m=0\\0&m\neq0\end{cases} Tejmw0tdt={T0m=0m=0构造 ∫ T x ( t ) e − j n w 0 t d t = ∫ T ∑ k = − ∞ + ∞ a k e j k w 0 t e − j n w 0 t d t \int_Tx(t)e^{-jnw_0t}dt=\int_T\displaystyle\sum_{k=-\infin}^{+\infin}a_ke^{jkw_0t}e^{-jnw_0t}dt Tx(t)ejnw0tdt=Tk=+akejkw0tejnw0tdt。所以对于 ∑ k = − ∞ + ∞ a k ∫ T e j ( k − n ) w 0 t d t \displaystyle\sum_{k=-\infin}^{+\infin}a_k\int_Te^{j(k-n)w_0t}dt k=+akTej(kn)w0tdt中所有 k ≠ n k\neq n k=n的项都等于0,所以 a n = 1 T ∫ T x ( t ) e − j n w 0 t d t a_n=\frac{1}{T}\int_Tx(t)e^{-jnw_0t}dt an=T1Tx(t)ejnw0tdt


1.1 性质

1.1.1 收敛性

傅里叶级数的收敛性: 满足狄利赫里条件的周期函数表示成的傅里叶级数都收敛。
狄利赫里条件: 在任何周期内,x(t)须绝对可积;在任一有限区间中,x(t)只能取有限个最大值或最小值;在任何有限区间上,x(t)只能有有限个第一类间断点。
吉布斯现象: 在x(t)的不可导点上,如果我们只取(1)式右边的无穷级数中的有限项作和x(t),那么x(t)在这些点上会有起伏。一个简单的例子是方波信号,在间断点处的这个起伏,即使项数趋于无穷,也不会消失。

1.1.2 正交性

所谓的两个不同向量正交是指它们的内积为0,这也就意味着这两个向量之间没有任何相关性,例如,在三维欧氏空间中,互相垂直的向量之间是正交的。事实上,正交是垂直在数学上的的一种抽象化和一般化。一组n个互相正交的向量必然是线性无关的,所以必然可以张成一个n维空间,也就是说,空间中的任何一个向量可以用它们来线性表示。三角函数族的正交性用公式表示出来就是:
∫ 0 2 π c o s ( m x ) c o s ( n x ) d x = 0 ; ( m ≠ n ) ∫ 0 2 π s i n ( n x ) s i n ( n x ) d x = π ∫ 0 2 π c o s ( n x ) c o s ( n x ) d x = π \int_{0}^{2π}cos(mx)cos(nx)dx=0;(m\neq n) \\ \int_{0}^{2π}sin(nx)sin(nx)dx=π \\ \int_{0}^{2π}cos(nx)cos(nx)dx=π 02πcos(mx)cos(nx)dx=0(m=n)02πsin(nx)sin(nx)dx=π02πcos(nx)cos(nx)dx=π

1.1.3 奇偶性

奇函数,可以表示为正弦级数,而偶函数,则可以表示成余弦级数:
f o ( x ) = ∑ − ∞ + ∞ b k s i n ( k x ) f e ( x ) = a 0 2 + ∑ − ∞ + ∞ a k c o s ( k x ) f_o(x)=\sum_{-\infin}^{+\infin}b_ksin(kx)\\ f_e(x)=\frac{a_0}{2}+\sum_{-\infin}^{+\infin}a_kcos(kx) fo(x)=+bksin(kx)fe(x)=2a0++akcos(kx)

2. 傅里叶变换

对于一个非周期信号,可以通过周期性的复制这个非周期信号来构建一个周期信号,所得的周期信号与非周期信号在一个周期内相等,随着周期趋近于无穷大时,周期信号会接近于非周期信号,而不再受在一个周期内相等的限制。总之基本原理就是,用傅里叶级数表示周期信号,然后让周期趋于无穷,此时就是对一个周期无穷的信号求傅里叶级数。

具体的操作过程:对于一个非周期信号 x ( t ) x(t) x(t),我们选取T0将这个非周期信号包括(非周期信号的定义域是T0的子集),将T0部分的信号进行复制,得到一个周期信号 x ~ ( t ) \tilde{x}(t) x~(t),当 T 0 → ∞ T_0\to \infin T0,得 x ~ ( t ) = x ( t ) \tilde{x}(t)=x(t) x~(t)=x(t)

在这里插入图片描述
非周期信号x(t)的傅里叶级数表示。
在这里插入图片描述
这里构造 X ( w ) = ∫ − ∞ + ∞ x ( t ) e − j w t d t X(w)=\int_{-\infin}^{+\infin}x(t)e^{-jwt}dt X(w)=+x(t)ejwtdt,也就是说一个关于 w w w的连续函数,而 T 0 a k T_0a_k T0ak的取值是在 X ( w ) X(w) X(w) w = k w 0 w=kw_0 w=kw0的特殊时刻。所以我们说 T 0 a k T_0a_k T0ak的值其实是 X ( w ) X(w) X(w)取值的一个子集。这里 X ( w ) X(w) X(w)就是非周期信号x(t)的傅里叶变换。
在这里插入图片描述
T 0 → ∞ T_0\to\infin T0 w 0 → 0 w_0\to0 w00,意味着 n w 0 nw_0 nw0可以取连续值, k w 0 → w kw_0\to w kw0w
在这里插入图片描述
根据傅里叶级数的概念,周期信号可以表示成无穷复指数加权之和,而这个权重 a k = 1 T ∫ T x ( t ) e − j k w 0 t d t a_k=\frac{1}{T}\int_Tx(t)e^{-jkw_0t}dt ak=T1Tx(t)ejkw0tdt,而对于非周期信号的权重,我们有 T 0 a k = X ( w ) ∣ w = k w 0 T_0a_k=X(w)|_{w=kw_0} T0ak=X(w)w=kw0下图中虚线绘制的即 T 0 → ∞ T_0\to\infin T0 a k − w a_k-w akw函数图像。
在这里插入图片描述
T 0 = 4 T 1 T_0=4T_1 T0=4T1时有:

在这里插入图片描述
T 0 = 8 T 1 T_0=8T_1 T0=8T1时有:
在这里插入图片描述
可以看到 a k a_k ak的取值更加密集。当 T 0 → ∞ T_0\to\infin T0时, a k a_k ak的取值就是连续的函数图像。
需要的注意的是,信号经过傅里叶变换得到的是一个复变函数。在傅里叶变换的表达式中要求 + w +w +w − w -w w都存在,对于傅里叶级数也是如此。这是因为我们的信号是用复指数构造的,这要求 w w w有正值和负值(不懂)。
下图是信号 e − a t e^{-at} eat的经傅里叶变换后的幅频曲线和相频曲线。
在这里插入图片描述
将幅频曲线和相频曲线改成波特图。
在这里插入图片描述

3. 傅里叶变换的性质

首先给出傅里叶变换中的合成方程及分析方程。
在这里插入图片描述

3.1 对称性

X ( w ) ∗ X(w)^* X(w)表示 X ( w ) X(w) X(w)的共轭复数。
在这里插入图片描述
例子
在这里插入图片描述

3.2 时间和频率缩放的性质

可以将这个性质放到声音的播放中解释,例如,当我们倍速播放一段音乐时 x ( a t ) x(at) x(at),相当于把 x ( t ) x(t) x(t)的函数图像压缩,在频域上与原来音乐相比,幅频曲线变为 X ( w a ) X(\frac{w}{a}) X(aw),相当于把 X ( w ) X(w) X(w)的图像拉长,所以得到新的幅频曲线与原幅频曲线在对应幅度处,新的幅频曲线下的频率是以前的 a a a倍。
在这里插入图片描述

3.3 对偶性

观察下面的合成和分析方程可以发现它们很相似。如果 x ( t ) x(t) x(t) X ( w ) X(w) X(w)是一对傅里叶变换,那么 X ( t ) X(t) X(t)的傅里叶变换实际上就是 2 π x ( − w ) 2πx(-w) 2πx(w)
在这里插入图片描述
例如:
在这里插入图片描述

3.4 Parseval关系

时间函数的能量和它的傅里叶变换的能量成比例关系,比例因子是2π。对于周期函数,可以考虑一个周期内的情况。
在这里插入图片描述

3.5 其他性质

时间平移性质:时间平移对应增加一个线性相位;微分特性;积分特性;线性特性。
在这里插入图片描述

3.6 卷积特性

也就是输入信号在时域的卷积等于频域相乘。
在这里插入图片描述
在这里插入图片描述

所以卷积特性告诉我们,如果将输入信号分解成一系列复指数,当信号通过线性时不变系统时,这些复指数分别得到频率响应的修正,即用频率响应乘以构成输入的复指数的振幅,它们的总和反过来就是将输出分解成复指数的形式。
低通滤波
理想低通滤波的作用就是只允许一个频率范围的频率通过,并消除那个频率范围以外的所有频率。
实际上可以将微分器诠释为滤波器,微分特性是指一个微分信号的傅里叶变换是初始信号的傅里叶变换乘以一个 j w jw jw。如果一个微分器的频率响应是 j w jw jw,输出的傅里叶变换是 j w jw jw乘以输入的傅里叶变换,所以从振幅上看微分器的频率响应如下图所示,作用就是放大高频,并减弱低频。
在这里插入图片描述
对于一个空间信号,经过微分滤波器,缓慢变化的背景会被减弱,并且快速变化的边界会被加强。

3.7 调制特性

卷积特性告诉我们,如果在时间域内进行卷积运算,就相当于在频率域做相乘运算,并且根据对偶性,时间域和频率域可以相互变换,所以在时间域作乘法运算相当于频率域作卷积运算。
在这里插入图片描述
调制特性:如果一个信号具有一定的频谱,我们把它乘以一个正弦信号,该正弦信号的傅里叶变换是一系列脉冲,在频率域作卷积运算,相当于平移初始频谱,将将它沿着频率轴平移到载波频率,载波就是正弦信号。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从信号处理认识傅里叶变换 的相关文章

  • 使用MATLAB实现对信号的EMD分解

    文章目录 0 前言 1 经验模式分解EMD 2 希尔伯特变换HT 3 希尔伯特 黄变换HHT 4 基于EMD的语音信号处理 5 MATLAB实现对信号的EMD分解 5 1 对构造的信号进行EMD 5 2 对实际的信号进行EMD 6 参考文献
  • FPGA等精度测频

    频率测量在电子设计和测量领域中经常用到 因此对频率测量方法的研究在实际工程应用中具有重要意义 常用的频率测量方法有两种 频率测量法 和周期测量法 频率测量法是在时间t内对被测信号的脉冲数N进行计数 然后求出单位时间内的脉冲数 即为被测信号的
  • 类EMD的“信号分解方法”及MATLAB实现(第三篇)——CEEMDAN

    来帮忙填坑了 今天接着之前讲过的EEMD和CEEMD 来介绍一下 类EMD 分解方法的第三篇 1 CEEMDAN 自适应噪声完备集合经验模态分解 的概念 CEEMDAN 1 Complete Ensemble Empirical Mode
  • matlab时域频域信号特征提取资料整合

    1 前言 最近在做一个项目 需要将声纳信号中的特征都提取出来进行分析 资料查到头秃终于整合出来了些东西 记录一下 由于不是专业人员 如果发现任何错误请不要大意的附在评论区 我会及时修改 谢谢 2 思路 思路这段引用自知乎大佬aresmiki
  • 【信号分解】基于辛几何模态SGMD实现信号数据分解附Matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • Matlab画常见的信号函数二

    一 Sa函数 功能 产生Sinc或sin pi t pi t 函数波形 格式 y sinc x 代码如下 x linspace 5 5 y sinc x plot x y 结果如下 二 调频余弦信号 功能 产生调频余弦信号 格式 y chi
  • 信号处理在matlab常用函数

    stem Y 将数据序列Y从x轴到数据值按照茎状形式画出 以圆圈终止 如果Y是一个矩阵 则将其每一列按照分隔方式画出 stem X Y 在X的指定点处画出数据序列Y stem filled 以实心的方式画出茎秆 stem LINESPEC
  • 【数字信号处理2】IIR 滤波器设计

    一 实验目的 1 掌握冲激响应法和双线性变换法设计IIR滤波器的原理及具体设计方法 熟悉用双线性设计法设计低通 带通和高通IIR数字滤波器的计算机程序 2 熟悉模拟Butterworth滤波器的设计 掌握冲激响应法和双线性变换法设计数字II
  • 傅里叶变换公式及其推导【超详细!】

    题主本硕机械专业 自学转互联网 算法岗成功 获得阿里 字节 美团 华为等 15 offer 后续会在公众号 苏学算法 分享各类学习笔记 面试经验 感兴趣的可以关注一波 一 核心公式 时域 gt gt gt 频域 X
  • EC11编码器和单片机通信

    EC11编码器 EC11编码器通常又被称作为旋转编码器 一般主要是用于亮度 温度 频率 音量调节等参数控制 三只脚中的C脚接地 AB脚接上拉电阻后 当左转或右转时 AB脚就有脉冲信号输出 S1和S2脚为按压开关 按下时导通 旋转编码器的引脚
  • FPGA结构分析——IDDR,网口储备点1

    先抛出几个问题 1 什么是 IDDR IDDR的作用是什么 使用场景 2 IDDR结构是什么样 都有哪些端口 端口属性都是什么 3 IDDR原语结构 参数属性说明 4 IDDR时序是什么样 1 什么是 IDDR IDDR的作用是什么 使用场
  • SDRAM操作说明——打开DDR3的大门

    SDRAM synchronous dynamic random access memory 同步动态随机存储器 所谓同步就是指需要时钟信号来控制命令数据 动态是指存储阵列需要不断地刷新来保证数据不会丢失 随机是指存取数据可以根据需要在不同
  • 【数电】理解MOS管的Vth(增强型)

    其实就是 对NMOS来说 栅极底下是P型半导体 有空穴和B 离子 栅衬之间加电压 电子往栅极底下跑 与空穴复合 此时形成耗尽层 虽然因为B 离子的原因带负电 但无法自由移动 当电压超过Vth 多余电子来到栅极底下 可自由移动 形成沟道
  • 类EMD的“信号分解方法”及MATLAB实现(第四篇)——VMD

    重头戏来了 在以往的应用经验里 VMD方法在众多模态分解方法中可以说是非常好的 从催更力度上看 这个方法也是格外受关注 笔者决定加快进度快一些写完这个方法 十月份了有些同学要开始做毕设 希望这篇文能帮上忙 1 VMD 变分模态分解 的概念
  • 曼彻斯特编码/差分曼彻斯特编码

    1 曼彻斯特编码 Manchester Encoding 位中间电平从低到高跳变表示 0 位中间电平从高到低跳变表示 1 2 差分曼彻斯特编码 differential Manchester encoding 在最初信号的时候 即第一个信号
  • 浅谈几个通信概念-如何理解卷积,负频率,傅里叶变换,奈奎斯特采样定理?

    1 如何理解卷积 t时刻的输出信号是t时刻之前的无数小的脉冲序列冲击引起的 2 如何理解欧拉公式 复指数信号呢 可以看成一个点在复平面上以角速度w进行逆时针的旋转 傅里叶分析 整体到部分 把一个信号分解成无数个基频组成的信号的和的过程 of
  • MATLAB雷达空时自适应处理

    空时自适应处理是一个用来描述同时处理空域和时域的自适应阵列的术语 信号的空域分量由阵列传感器收集 与所有阵列工作相同 而信号的时域分量用每个阵列传感器后等间隔延时单元产生 为此目的 一个尺寸N阵列有N个子通道 每个传感器后面对应一个 在每个
  • 信号的时域相位、频域相位

    文章目录 傅里叶变换的时移性质 matlab代码 单点频信号 线调信号 时域相位 频域相位 傅里叶变换的时移性质 信号增加线性相位时 是所有的频率分量对应的相位都有变化 matlab代码 清空一切 clc clear all close a
  • 数字信号处理_第4个编程实例(信号的采样与重建)

    配套的讲解视频详见 数字信号处理14 1 模拟信号转换至数字信号的过程 哔哩哔哩 bilibili 数字信号处理14 2 冲激串的傅里叶变换及采样过程的时频域表示 哔哩哔哩 bilibili 数字信号处理14 3 信号重建与采样定理及Mat
  • IBIS AMI Model 算法模式的选择

    常规的信号完整性仿真 只会包含传统的基于IBIS的芯片行为级模型 但高速串行总线在使用过程中 经常会由于传输信道或链路过长以及信号频率较高而造成信号衰减过大 接收端无法正确判别信号 因此 这类SerDes芯片都需要集成均衡或者加重等信号处理

随机推荐

  • 15.Mybatis 更新操作-update

    1 update 标签 update 标签是用于定义更新 语句的 1 1 常用属性 update 有几个常用的属性 但是通常只需要设置id 即可 id sql 片段在命名空间内的唯一标识 和mapper 中方法名保持一致 parameter
  • python使用keyboard库写的GUI键盘宏

    前言 之前和朋友玩游戏 需要一直按住两个按键 很麻烦 就像用python写个小脚本来方便自己 说干就干 用于学习 正文 用到的库 keyborad threading tkinter time 分析 由于需要监听键盘与运行可视化界面 所以要
  • 5.1 setfenv,但5.3可以使用lua_getglobal(l1, "_G");

    5 1使用法 lua State L luaL newstate luaL openlibs L dostring L function f1 my var 100 print var set end create func on stat
  • Springboot+Netty+Websocket实现消息推送实例

    Springboot Netty Websocket实现消息推送 文章目录 Springboot Netty Websocket实现消息推送 前言 一 引入netty依赖 二 使用步骤 1 引入基础配置类 2 netty服务启动监听器 3
  • windows 消息机制

    windows 操作系统是由事件驱动的 也叫消息机制 一般来说分为四步 用户动作也就是事件 gt windows 将事件翻译成消息 gt 将消息放入消息队列 gt 消息循环从消息队列中取出消息并发送给窗口处理程序 我们来看一下窗口最简单窗口
  • Elasticsearch 设置用户名密码认证(亲测)

    文章目录 第一步 在 elasticsearch yml 中添加如下配置 第二步 重启elasticsearch服务 第三步 设置elasticsearch密码 第四步 验证 修改密码 如果密码忘了怎么办 如何重置密码 1 修改elasti
  • 题目2-1 where is the flag

    对照启明星辰网络空间安全学院编著的 CTF安全竞赛入门 靶场和解题思路 考查点 网页源代码 右键查看源代码
  • 谁有用vue.js写的前端模板页面??? 急需!!!

    谁有用vue js写的前端模板页面 急需
  • Ubuntu切换root用户

    Ubuntu下root用户的默认密码 Ubuntu下root的默认密码是随机的 每次开机都会有一个新的密码 可以在中断输入命令 sudo passwd 然后输入当前用户的密码 按下回车 终端会提示输入新的密码并确认 此时的密码就是root新
  • Node.js 学习系列(五)—— 文件系统

    Node js 提供一组类似 UNIX POSIX 标准的文件操作API Node 导入文件系统模块 fs 语法如下所示 var fs require fs 异步和同步 Node js 文件系统 fs 模块 模块中的方法均有异步和同步版本
  • 如何使用SWC,如何发布,打包SWC

    SWC的使用方法 1 如果是FLEX的话就比较简单 直接在library中加入即可 2 是Flash的情况下 目前只有CS4可以直接导入 方法是 file gt gt publish settings gt gt flash gt gt s
  • 从零开始的Python编程

    目录 1 输出函数print 2 转义字符 3 Python中的标识符和保留字 4 变量的定义和使用 5 Python中常见的数据类型 6 数据类型转换 7 Python中的注释 8 input函数的使用 9 运算符 10 对象的布尔值 1
  • SQL优化 ----锁机制

    锁机制 解决因资源共享 而造成的并发问题 示例 当仓库中最后一件衣服时 A这时候下单 随后B也同一时间下单 这时候就会出现问题 到底这最后一件衣服卖给了谁 所以就要通过锁来解决这种问题 衣服 A来的时候加锁 gt 然后A就可以下单 付款 打
  • C++的复制构造函数三种用法

    前言 如果真的想明白 为什么你写的函数的返回值是对象时 有的时候调用了复制构造函数 而有的时候 没有调用复制构造函数 需要明白一件事 函数的返回值是对象时 什么情况下 函数的返回是return by value 即生成了临时对象 这两个问题
  • 【Kubernetes资源篇】Service四层代理入门实战详解

    文章目录 一 Service四层代理概念 原理 1 Service四层代理概念 2 Service工作原理 3 Service原理解读 4 Service四种类型 二 Service四层代理三种类型案例 1 创建ClusterIP类型Ser
  • 线性表 :顺序表(ArrayList) 和 单链表(LinkedList) 详解

    线性表 1 顺序表 2 单链表 单向 不带头 非循环链表 3 顺序表和链表的区别 面试 线性表 List 是n个具有 相同特性 的数据元素的 有限序列 线性表是一种在实际中广泛使用的数据结构 常见的线性表 顺序表 链表 栈 队列 字符串 线
  • mac系统渗透测试小技巧-将命令行工具能够tab补全

    在kali中各种工具都能补全 但在mac中我们有些工具是需要自己下载回来的 每次使用工具都需要进入目录再打开命令行 这样会影响我们渗透测试的速度 说起来就是懒 懒人自有懒方法 其实很简单 我们只需要添加一个软连接到 usr local bi
  • 人工智能学习线路图

    人工智能学习线路图 Python教程 Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循环语
  • SpringCloud Gateway 在微服务架构下的最佳实践

    前言 本文整理自云原生技术实践营广州站 Meetup 的分享 其中的经验来自于我们团队开发的阿里云 CSB 2 0 这款产品 其基于开源 SpringCloud Gateway 开发 在完全兼容开源用法的前提下 做了诸多企业级的改造 涉及功
  • 从信号处理认识傅里叶变换

    前言 在表示和分析线性时不变系统时 我们的基本方法是将系统输入分解成基本信号的线性组合 其响应是基本输入响应的相同线性组合 卷积和和卷积积分源于我们将输入信号分解成基本信号的一种特定选择 特别是延迟的单位脉冲 这种选择的优点在于 对于线性时