当前位置: 首页 > news >正文

傅里叶变换与现代深度学习

突破傅里叶变换

  • 傅里叶变换是什么?
  • 傅里叶变换和傅里叶级数有什么关系?
    • 傅里叶级数
    • 指数与三角函数的联系:欧拉公式
    • 变换和级数关系
  • 傅里叶变换的优势是什么?
  • 傅里叶变换是由什么样的人提出来的?
  • 傅里叶变换能否拟合任意决策面(概念c)?
  • 参考文献

傅里叶变换是什么?

傅里叶变换公式
F(ω)=F(f(t))=∫−∞+∞f(t)e−jωtdtF(\omega) = \mathcal{F}(f(t))= \int_{-\infty}^{+\infty} f(t) e^{-j\omega t} \, dtF(ω)=F(f(t))=+f(t)etdt

对应的傅里叶反变换公式
f(t)=12π∫−∞+∞F(ω)ejωtdωf(t) = \frac{1}{2\pi} \int_{-\infty}^{+\infty} F(\omega) e^{j\omega t} \, d\omega f(t)=2π1+F(ω)etdω

  • F(ω)F(\omega)F(ω) 称为 f(t)f(t)f(t) 的傅里叶变换或频谱密度函数(简称频谱)。
  • f(t)f(t)f(t) 称为 F(ω)F(\omega)F(ω) 的傅里叶反变换或原函数。
  • f(t)f(t)f(t) 的傅里叶变换存在的充分条件为绝对可积: ∫−∞+∞∣f(t)∣dt<∞\int_{-\infty}^{+\infty} \lvert f(t) \rvert \, dt < \infty+f(t)∣dt<

然而,有一些函数不满足绝对可积这一充分条件,如常数 1 等,但傅里叶变换却存在。直接用定义式不好求解。可构造一函数序列 {fn(t)}\{f_n(t)\}{fn(t)} 逼近 f(t)f(t)f(t),即
f(t)=lim⁡n→∞fn(t)f(t) = \lim_{n \to \infty} f_n(t) f(t)=nlimfn(t)
fn(t)f_n(t)fn(t) 满足绝对可积条件,并且 {fn(t)}\{f_n(t)\}{fn(t)} 的傅里叶变换所形成的序列 {Fn(jω)}\{F_n(j\omega)\}{Fn()} 是极限收敛的。则可定义 f(t)f(t)f(t) 的傅里叶变换 F(jω)F(j\omega)F()
F(jω)=lim⁡n→∞Fn(jω)F(j\omega) = \lim_{n \to \infty} F_n(j\omega) F()=nlimFn()
基于此,可以得到几个有用的例子:
例1 常数1的傅里叶变换为
F(w)=F(1)=∫−∞∞e−jωtdt=2πδ(ω)F(w)=\mathcal{F}({1}) = \int_{-\infty}^{\infty} e^{-j\omega t} \, dt = 2\pi \delta(\omega) F(w)=F(1)=etdt=2πδ(ω)
证明 定义函数序列
定义函数 fα(t)=e−α∣t∣f_\alpha(t) = e^{-\alpha|t|}fα(t)=eαt,其中 α>0\alpha > 0α>0。当 α→0+\alpha \to 0^+α0+ 时,fα(t)→1f_\alpha(t) \to 1fα(t)1 对所有 ttt 成立。

计算 fα(t)f_\alpha(t)fα(t) 的傅里叶变换

Fα(ω)=F(fα(t))=∫−∞∞e−α∣t∣e−jωtdtF_\alpha(\omega) = \mathcal{F}({f_\alpha(t)}) = \int_{-\infty}^{\infty} e^{-\alpha|t|} e^{-j\omega t} dtFα(ω)=F(fα(t))=eαtetdt

=∫−∞0eαte−jωtdt+∫0∞e−αte−jωtdt= \int_{-\infty}^{0} e^{\alpha t} e^{-j\omega t} dt + \int_{0}^{\infty} e^{-\alpha t} e^{-j\omega t} dt=0eαtetdt+0eαtetdt

=∫−∞0e(α−jω)tdt+∫0∞e−(α+jω)tdt= \int_{-\infty}^{0} e^{(\alpha - j\omega)t} dt + \int_{0}^{\infty} e^{-(\alpha + j\omega)t} dt=0e(α)tdt+0e(α+)tdt

=[e(α−jω)tα−jω]−∞0+[e−(α+jω)t−(α+jω)]0∞= \left[ \frac{e^{(\alpha - j\omega)t}}{\alpha - j\omega} \right]_{-\infty}^{0} + \left[ \frac{e^{-(\alpha + j\omega)t}}{-(\alpha + j\omega)} \right]_{0}^{\infty}=[αe(α)t]0+[(α+)e(α+)t]0

=1α−jω(1−0)+1α+jω(0−(−1))= \frac{1}{\alpha - j\omega} (1 - 0) + \frac{1}{\alpha + j\omega} (0 - (-1))=α1(10)+α+1(0(1))

=1α−jω+1α+jω= \frac{1}{\alpha - j\omega} + \frac{1}{\alpha + j\omega}=α1+α+1

=(α+jω)+(α−jω)(α−jω)(α+jω)= \frac{(\alpha + j\omega) + (\alpha - j\omega)}{(\alpha - j\omega)(\alpha + j\omega)}=(α)(α+)(α+)+(α)

=2αα2+ω2= \frac{2\alpha}{\alpha^2 + \omega^2}=α2+ω22α

取极限 α→0+\alpha \to 0^+α0+

观察 Fα(ω)=2αα2+ω2F_\alpha(\omega) = \frac{2\alpha}{\alpha^2 + \omega^2}Fα(ω)=α2+ω22αα→0+\alpha \to 0^+α0+ 时的性质:

ω=0\omega = 0ω=0 时:Fα(0)=2αα2=2α→∞F_\alpha(0) = \frac{2\alpha}{\alpha^2} = \frac{2}{\alpha} \to \inftyFα(0)=α22α=α2

ω≠0\omega \neq 0ω=0 时:Fα(ω)=2αα2+ω2≈2αω2→0F_\alpha(\omega) = \frac{2\alpha}{\alpha^2 + \omega^2} \approx \frac{2\alpha}{\omega^2} \to 0Fα(ω)=α2+ω22αω22α0

曲线下总面积:∫−∞∞Fα(ω)dω=∫−∞∞2αα2+ω2dω=2π\int_{-\infty}^{\infty} F_\alpha(\omega) d\omega = \int_{-\infty}^{\infty} \frac{2\alpha}{\alpha^2 + \omega^2} d\omega = 2\piFα(ω)dω=α2+ω22αdω=2π(恒定)

定义狄拉克 δ\deltaδ 函数:

δ(ω)=0\delta(\omega) = 0δ(ω)=0,当 ω≠0\omega \neq 0ω=0

δ(ω)=∞\delta(\omega) = \inftyδ(ω)=,当 ω=0\omega = 0ω=0

∫−∞∞δ(ω)dω=1\int_{-\infty}^{\infty} \delta(\omega) d\omega = 1δ(ω)dω=1

因此:
lim⁡α→0+Fα(ω)=lim⁡α→0+2αα2+ω2=2πδ(ω)\lim_{\alpha \to 0^+} F_\alpha(\omega) = \lim_{\alpha \to 0^+} \frac{2\alpha}{\alpha^2 + \omega^2} = 2\pi \delta(\omega)α0+limFα(ω)=α0+limα2+ω22α=2πδ(ω)

由于 lim⁡α→0+fα(t)=1\lim_{\alpha \to 0^+} f_\alpha(t) = 1limα0+fα(t)=1,且对应的傅里叶变换极限为 2πδ(ω)2\pi\delta(\omega)2πδ(ω),我们得到:
F(1)=2πδ(ω)\mathcal{F}({1}) = 2\pi \delta(\omega)F(1)=2πδ(ω)

例2 符号函数的傅里叶变换. 符号函数定义为:
sgn(t)={−1,t<01,t>0\text{sgn}(t) = \begin{cases} -1, & t < 0 \ 1, & t > 0 \end{cases}sgn(t)={1,t<0 1,t>0
其傅里叶变换为F(sgn(t))=2jω\mathcal{F}(\text{sgn}(t)) = \frac{2}{j\omega}F(sgn(t))=2

证明 构造函数:
fα(t)={−eαt,t<0e−αt,t>0α>0f_\alpha(t) = \begin{cases} -e^{\alpha t}, & t < 0 \ e^{-\alpha t}, & t > 0 \end{cases} \quad \alpha > 0fα(t)={eαt,t<0 eαt,t>0α>0
则有:
sgn(t)=lim⁡α→0fα(t)\text{sgn}(t) = \lim_{\alpha \to 0} f_\alpha(t)sgn(t)=α0limfα(t)

fα(t)f_\alpha(t)fα(t) 的傅里叶变换为:
F(fα(t))=Fα(jω)=1α+jω−1α−jω=−j2ωα2+ω2\mathcal{F}( f_\alpha(t))= F_\alpha(j\omega) = \frac{1}{\alpha + j\omega} - \frac{1}{\alpha - j\omega} = -\frac{j2\omega}{\alpha^2 + \omega^2}F(fα(t))=Fα()=α+1α1=α2+ω2j2ω

因此,符号函数的傅里叶变换为:
sgn(t)⟷lim⁡α→0Fα(jω)=lim⁡α→0(−j2ωα2+ω2)=2jω\text{sgn}(t) \longleftrightarrow \lim_{\alpha \to 0} F_\alpha(j\omega) = \lim_{\alpha \to 0} \left( -\frac{j2\omega}{\alpha^2 + \omega^2} \right) = \frac{2}{j\omega}sgn(t)α0limFα()=α0lim(α2+ω2j2ω)=2

例3 阶跃函数的傅里叶变换. 阶跃函数定义为:
ε(t)=12+12sgn(t)\varepsilon(t) = \frac{1}{2} + \frac{1}{2} \text{sgn}(t)ε(t)=21+21sgn(t)

其傅里叶变换为
F(ε(t))=πδ(ω)+1jω\mathcal{F}(\varepsilon(t))= \pi\delta(\omega) + \frac{1}{j\omega}F(ε(t))=πδ(ω)+1

傅里叶变换和傅里叶级数有什么关系?

傅里叶级数与傅里叶变换的内在联系:傅里叶级数用于分析周期函数,一个周期为 TTT 的函数 f(t)f(t)f(t) 可以分解为一系列离散频率的正弦波叠加;而傅里叶变换则用于分析非周期函数从离散到连续的飞跃。
下面详细分析为什么傅里叶级数里明明有 sin 和 cos,到了傅里叶变换里就只剩下一个奇怪的 e^{-jωt} 了?它们俩到底是什么关系?

傅里叶级数

首先介绍一下用于分析周期函数的傅里叶级数:傅里叶级数专门处理周期函数,将其分解为一系列离散频率的谐波分量。它有两种完全等价的数学形式:

形式一:三角形式 (最直观)
f(t)=a02+∑n=1∞[ancos⁡(nω0t)+bnsin⁡(nω0t)]f(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left[ a_n \cos(n\omega_0 t) + b_n \sin(n\omega_0 t) \right]f(t)=2a0+n=1[ancos(nω0t)+bnsin(nω0t)]
这里,ana_nanbnb_nbn 是实系数,ω0=2πT\omega_0 = \frac{2\pi}{T}ω0=T2π 是基频。这个形式非常直观,直接告诉我们函数包含了哪些振幅和相位的正弦波、余弦波。

形式二:指数形式 (更抽象,更强大)
通过欧拉公式,我们可以将上述形式改写为:
f(t)=∑n=−∞∞cnejnω0tf(t) = \sum_{n=-\infty}^{\infty} c_n e^{j n \omega_0 t}f(t)=n=cnejnω0t
这里,cnc_ncn 是复系数。求和从 −∞-\infty+∞+\infty+,引入了负频率的概念。

这两种形式完全等价! 指数形式中的每一项 cnejnω0tc_n e^{j n \omega_0 t}cnejnω0t 通过欧拉公式,都可以展开成 sinsinsincoscoscos 的组合。负频率项 (e−jnω0t)(e^{-j n \omega_0 t})(ejnω0t) 和正频率项 (ejnω0t)(e^{j n \omega_0 t})(ejnω0t) 共同合作,才在实数世界中合成出我们实际的波形。指数形式是更简洁、更数学化的表达,它将正弦和余弦"封装"在了复指数中。

指数与三角函数的联系:欧拉公式

理解两者联系的关键,是数学上最优美的公式之一——欧拉公式:

ejθ=cos⁡(θ)+jsin⁡(θ)e^{j\theta} = \cos(\theta) + j\sin(\theta)ejθ=cos(θ)+jsin(θ)

它揭示了一个复指数函数可以分解为实部的余弦函数和虚部的正弦函数。反之,三角函数也可以用复指数表示:

cos⁡(θ)=ejθ+e−jθ2\cos(\theta) = \frac{e^{j\theta} + e^{-j\theta}}{2}cos(θ)=2ejθ+ejθ
sin⁡(θ)=ejθ−e−jθ2j\sin(\theta) = \frac{e^{j\theta} - e^{-j\theta}}{2j}sin(θ)=2jejθejθ

欧拉公式,正是连接三角函数世界和指数函数世界的桥梁。

变换和级数关系

傅里叶级数用于分析周期函数。一个周期为 TTT 的函数 f(t)f(t)f(t) 可以分解为一系列离散频率的正弦波叠加。而傅里叶变换则用于分析非周期函数,是傅里叶级数的推广。它的思想可以看作是 “让傅里叶级数的周期 TTT 趋于无穷大”。

当周期 T→∞T \to \inftyT 时,会发生什么?

离散 → 连续:相邻频率分量 nω0n\omega_0nω0(n+1)ω0(n+1)\omega_0(n+1)ω0 的间隔 Δω=ω0=2πT→0\Delta \omega = \omega_0 = \frac{2\pi}{T} \to 0Δω=ω0=T2π0。原本离散的频谱线变得无限密集,最终连成一片,形成连续频谱 F(ω)F(\omega)F(ω)

求和 → 积分:离散的求和 ∑\sum 自然就变成了连续的积分 ∫\int

系数 → 函数:离散的系数 cnc_ncn 演变成了连续的频谱密度函数 F(ω)F(\omega)F(ω)∣F(ω)∣|F(\omega)|F(ω) 表示的是单位带宽上的能量大小。

从这个"极限"的思想出发,我们就从傅里叶级数的指数形式自然推导出了傅里叶变换对:

傅里叶变换 (分析方程):
F(ω)=∫−∞∞f(t)e−jωtdtF(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} dtF(ω)=f(t)etdt

傅里叶逆变换 (综合方程):
f(t)=12π∫−∞∞F(ω)ejωtdωf(t) = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega) e^{j\omega t} d\omegaf(t)=2π1F(ω)etdω

变换公式中的 e−jωte^{-j\omega t}et 正是从傅里叶级数的指数项 ejnω0te^{j n \omega_0 t}ejnω0t 演化而来。它并非没有正弦函数,根据欧拉公式 e−jωt=cos⁡(ωt)−jsin⁡(ωt)e^{-j\omega t} = \cos(\omega t) - j\sin(\omega t)et=cos(ωt)jsin(ωt),它同时包含了余弦和正弦信息。

傅里叶变换的优势是什么?

我们以阶跃函数 ε(t)\varepsilon(t)ε(t) 的傅里叶变换 F(ω)=πδ(ω)+1jωF(\omega) = \pi\delta(\omega) + \frac{1}{j\omega}F(ω)=πδ(ω)+1 为例,详细分析傅里叶变换带来的好处和性质优势, 其中 δ\deltaδ 为狄拉克函数。

  1. 从时域到频域:揭示信号的“频率成分”
    这是傅里叶变换最根本、最直观的好处。它像一个数学棱镜,将混杂在一起的信号分解成不同频率的“单色光”。

时域视角 (ε(t)\varepsilon(t)ε(t)):我们只能看到一个在 t=0t=0t=0 时刻突然从 0 跳变到 1 的信号。它看起来是“直流”的(因为 t>0t>0t>0 后一直是 1),但又有一个瞬变的“跳变”过程。我们无法量化这两种成分。

频域视角 (πδ(ω)+1jω\pi\delta(\omega) + \frac{1}{j\omega}πδ(ω)+1):变换结果清晰地告诉我们,阶跃信号由两种截然不同的频率成分构成:

πδ(ω)\pi\delta(\omega)πδ(ω) (直流分量):狄拉克δ函数只有在 ω=0\omega=0ω=0 处取值非0(为正无穷)。这完美地描述了信号的稳态特性——在跳变发生很久之后 (t→∞t \to \inftyt),信号稳定在一个恒定的值(直流值 1)。其强度 π\piπ 对应于直流分量的大小。

1jω\frac{1}{j\omega}1 (交流分量):这个项随着频率 ω\omegaω 增加而衰减 (∼1/∣ω∣\sim 1/|\omega|1/∣ω)。它描述了信号的瞬态特性——即从 0 到 1 的那个跳变边沿。所有高频成分共同协作,才在时域上“合成”了那个无限陡峭的跳变。

优势:傅里叶变换将信号中“稳定”的部分和“变化”的部分清晰地分离开,并告诉我们为了构成那个跳变,需要哪些频率成分以及它们的强度如何。

  1. 简化系统分析:卷积变为乘法
    这是傅里叶变换在工程上最强大的应用之一。一个线性时不变 (LTI) 系统(如一个电路滤波器)对输入信号 x(t)x(t)x(t) 的响应 y(t)y(t)y(t),在时域上是输入信号与系统冲激响应 h(t)h(t)h(t) 的卷积运算:
    y(t)=x(t)∗h(t)y(t) = x(t) * h(t)y(t)=x(t)h(t)
    卷积运算非常复杂,难以直观理解和计算。

傅里叶变换将其简化为了频域中的乘法:
Y(ω)=X(ω)⋅H(ω)Y(\omega) = X(\omega) \cdot H(\omega)Y(ω)=X(ω)H(ω)
其中 H(ω)H(\omega)H(ω) 是系统的频率响应,它完全表征了系统的特性。

以阶跃信号输入为例:假设一个 RC 低通滤波器,其频率响应为 H(ω)=11+jωRCH(\omega) = \frac{1}{1+j\omega RC}H(ω)=1+RC1

时域分析:需要计算 ε(t)∗hRC(t)\varepsilon(t) * h_{RC}(t)ε(t)hRC(t),这是一个复杂的卷积积分。

频域分析:

求输入的傅里叶变换:X(ω)=Fε(t)=πδ(ω)+1jωX(\omega) = \mathcal{F}{\varepsilon(t)} = \pi\delta(\omega) + \frac{1}{j\omega}X(ω)=Fε(t)=πδ(ω)+1

乘以系统响应:Y(ω)=X(ω)⋅H(ω)=[πδ(ω)+1jω]⋅11+jωRCY(\omega) = X(\omega) \cdot H(\omega) = \left[ \pi\delta(\omega) + \frac{1}{j\omega} \right] \cdot \frac{1}{1+j\omega RC}Y(ω)=X(ω)H(ω)=[πδ(ω)+1]1+RC1

计算反变换得到 y(t)y(t)y(t)(输出波形)。

优势:复杂的卷积运算变成了简单的乘法,极大地简化了系统分析和计算。我们可以清晰地看到系统 H(ω)H(\omega)H(ω) 如何“过滤”输入信号 X(ω)X(\omega)X(ω) 中的不同频率成分(例如,如何衰减高频部分 1jω\frac{1}{j\omega}1 而保留直流部分 δ(ω)\delta(\omega)δ(ω))。

  1. 微分性质的简化:将微分方程变为代数方程
    傅里叶变换有一个极其有用的性质:时域中的微分对应于频域中乘以 jωj\omega
    Fddtf(t)=jωF(ω)\mathcal{F}{\frac{d}{dt}f(t)} = j\omega F(\omega)Fdtdf(t)=F(ω)

许多物理系统(如电路、力学系统)都由微分方程描述。傅里叶变换可以将这些微分方程转化为频域上更易求解的代数方程。

以阶跃函数为例:我们知道阶跃函数的导数是狄拉克δ函数:ddtε(t)=δ(t)\frac{d}{dt}\varepsilon(t) = \delta(t)dtdε(t)=δ(t)
让我们看看在频域中是否成立:
Fddtε(t)=Fδ(t)\mathcal{F}{\frac{d}{dt}\varepsilon(t)} = \mathcal{F}{\delta(t)}Fdtdε(t)=Fδ(t)
根据微分性质,左边是:jω⋅(πδ(ω)+1jω)=jπωδ(ω)+1j\omega \cdot \left( \pi\delta(\omega) + \frac{1}{j\omega} \right) = j\pi\omega\delta(\omega) + 1(πδ(ω)+1)=jπωδ(ω)+1
利用 ωδ(ω)=0\omega\delta(\omega) = 0ωδ(ω)=0 的性质,上式简化为 111
而右边 Fδ(t)=1\mathcal{F}{\delta(t)} = 1Fδ(t)=1
因此,1=11 = 11=1,验证了傅里叶变换微分性质的一致性。

优势:这是求解线性微分方程的系统性方法(傅里叶分析法),比直接求解微分方程要简单得多。

  1. 全局视角与局部视角的融合
    δ(ω)\delta(\omega)δ(ω) 的全局性:δ函数意味着零频率,它代表了信号在整个时间轴上的平均值或直流偏移。这是一个全局属性。

1jω\frac{1}{j\omega}1 的局部性:1/∣ω∣1/|\omega|1/∣ω 的衰减特性告诉我们,为了构造 t=0t=0t=0 时刻的那个局部突变,需要引入大量高频分量。

优势:一个简单的 F(ω)F(\omega)F(ω) 同时包含了信号的全局(稳态)和局部(瞬态)信息,这是时域波形无法直接提供的。

总结
对一个函数进行傅里叶变换,就像是为它拍摄了一张“频率身份证”。提供了一个全新的、洞察事物本质的维度(频域)。它让我们能够分析信号的构成,简化系统的分析与设计,并将复杂的数学运算转化为简单的代数操作。

傅里叶变换是由什么样的人提出来的?

让·巴普蒂斯·约瑟夫·傅里叶(Jean-Baptiste Joseph Fourier)于1807年向法兰西科学院提交的论文和1822年出版的经典著作《热的解析理论》(Théorie analytique de la chaleur)中,他提出现代傅里叶变换的核心思想:
“任何一个周期函数,无论其本身多么复杂、多么不规则,都可以分解为一系列简单的正弦函数和余弦函数(即简谐波)的叠加。”

可见他最初提出的是用于周期函数的傅里叶级数(Fourier Series)。后人将这一思想推广到非周期函数,通过让周期趋近于无穷大,从离散的求和过渡到连续的积分,从而得到了现代形式的傅里叶变换(Fourier Transform)和傅里叶逆变换。

傅里叶既是理论家(数学家、物理学家),又是实践者(政治家、管理者),还是人文学者(埃及学先驱)。

傅里叶1768年3月21日出生于法国中部欧塞尔(Auxerre)的一个裁缝家庭里,排行十二。不幸的是,在傅里叶9岁时父母双亡,在当地教会的抚养下,这个可怜的孤儿才得以生活。凭借惊人的数学天赋,得到了当地主教的赏识和培养,得以进入军校学习。

1798年,拿破仑组织了一支庞大的远征军入侵埃及,队伍中除了士兵,还有167名各领域的科学家和艺术家,旨在研究埃及的古文明和自然环境。这支队伍被称为“埃及学家的摇篮”。傅里叶被拿破仑选中,成为这支科学队的秘书长,实际上是科学工作的总负责人。在埃及的三年里,他深入参与了对埃及古迹、自然和文化的开创性研究,并共同主持编纂了宏大的著作《埃及记述》(Description de l’Égypte)。这段经历极大地开阔了他的视野。

从埃及返回后,拿破仑赏识他的才能,任命他为伊泽尔省(Grenoble地区)的省长(Préfet)。他在这个职位上干了十多年,出色地负责了排水沼泽、修建道路等民生工程,并继续他的科学研究。正是在省长任内,他完成了自己最伟大的数学工作。拿破仑倒台后,他失去了省长职位,但因其崇高的科学声誉,最终被选为法国科学院的终身秘书,并于1826年成为院士。这是他晚年最主要的身份。

傅里叶变换能否拟合任意决策面(概念c)?

参考文献

  • https://zhuanlan.zhihu.com/p/438755503

文章转载自:

http://O1NXXHVT.Lwtfr.cn
http://c9Z5XFH9.Lwtfr.cn
http://DFyP17zl.Lwtfr.cn
http://GXc12IhJ.Lwtfr.cn
http://5kCp1kSf.Lwtfr.cn
http://zX5YATW5.Lwtfr.cn
http://kyjUhVag.Lwtfr.cn
http://KFpDYIVl.Lwtfr.cn
http://prpGCsyd.Lwtfr.cn
http://bWcaoFDb.Lwtfr.cn
http://71YRmIGb.Lwtfr.cn
http://J0vsMjMj.Lwtfr.cn
http://82Fu4poS.Lwtfr.cn
http://7LRXdsNY.Lwtfr.cn
http://6ZA6MOAe.Lwtfr.cn
http://mbHZF2OP.Lwtfr.cn
http://KOgjEo9s.Lwtfr.cn
http://NFwD3ZyD.Lwtfr.cn
http://oMBMNBe7.Lwtfr.cn
http://tJ16cuWu.Lwtfr.cn
http://UNXEAvrM.Lwtfr.cn
http://wnuADge3.Lwtfr.cn
http://z89ez4n8.Lwtfr.cn
http://GaguujMx.Lwtfr.cn
http://PmpNg0I1.Lwtfr.cn
http://r2oMozNQ.Lwtfr.cn
http://G4YhMWXP.Lwtfr.cn
http://vOCHRWwa.Lwtfr.cn
http://wDSRcLwU.Lwtfr.cn
http://j3kc11Nt.Lwtfr.cn
http://www.dtcms.com/a/384760.html

相关文章:

  • 【LeetCode】2785. 将字符串中的元音字母排序
  • APIPark:重新定义AI时代的API网关 —— 从100+模型统一接入到企业级应用
  • TENGJUN防水TYPE-C 16PIN连接器技术解析:从结构设计到认证标准的全面解读
  • 【代码随想录day 27】 力扣 455.分发饼干
  • 云原生与 AI 驱动下的数据工程新图景——解读 DZone 2025 数据工程趋势报告【附报告下载】
  • 从异步到半同步:全面解读MySQL复制的数据一致性保障方案
  • 项目工程中库使用Debug与release
  • IntelliJ IDEA 初学者指南:从零创建并运行 Java 项目
  • 虚拟线程和普通线程的区别
  • 微软发布高危漏洞更新,涉及 Windows、Office、SQL Server 等多款产品
  • IDEA-MyBatis动态sql关联映射
  • 【学习】【js】栈数据结构
  • Coze源码分析-资源库-创建知识库-后端源码-核心技术与总结
  • ArcGIS Pro实现基于 Excel 表格批量创建标准地理数据库(GDB)——高效数据库建库解决方案
  • 在openEuler系统 上安装Go语言开发环境
  • 奈奎斯特频率和采样定理的解释
  • 直播APP集成美颜SDK详解:智能美妆功能的开发实战
  • 基于Matlab GUI的心电信号QRS波群检测与心率分析系统
  • 贪心算法应用:5G网络切片问题详解
  • 【117】基于51单片机GSM智能拐杖老人防跌倒报警器【Keil程序+报告+原理图】
  • Rancher 社区双周报|聚焦 Harvester 新特性:网络、存储与虚拟化全面升级
  • CSS视差旋转动效实战
  • Java 设计模式——单例模式6种写法:从原理到 SpringBoot 落地
  • 【自存】懒汉式单例模式中的多线程经典问题
  • 【第五章:计算机视觉-项目实战之图像分类实战】1.经典卷积神经网络模型Backbone与图像-(4)经典卷积神经网络ResNet的架构讲解
  • 区块链:搭建简单以太坊Geth私有链
  • 数据分析:函数
  • 《投资-57》元宇宙的价值
  • Linux任务调度全攻略
  • 基于springboot的毕业旅游一站式定制系统