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

离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析

摘要

离散时间傅里叶变换(DTFT)是数字信号处理领域的重要工具,它能将离散时间信号从时域转换到频域,揭示信号的频率特性。本文将深入解读DTFT公式,详细阐述其具有周期性和连续性的原因,帮助读者全面理解DTFT的本质和特性。

在这里插入图片描述

一、引言

在数字信号处理中,我们常常需要分析离散时间信号的频率成分,以便更好地处理和理解这些信号。离散时间傅里叶变换(DTFT)就是实现这一目标的关键方法。通过DTFT,我们可以将离散时间序列转换为频域表示,从而观察信号在不同频率下的分布情况。然而,DTFT具有一些独特的性质,如周期性和连续性,这些性质对于我们理解和应用DTFT至关重要。接下来,我们将详细解读DTFT公式,并深入探讨其周期性和连续性的根源。

二、DTFT公式定义

对于离散时间序列 x [ n ] x[n] x[n],其离散时间傅里叶变换(DTFT)定义为:
X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n X(e^{j\omega})=\sum_{n = -\infty}^{\infty}x[n]e^{-j\omega n} X(e)=n=x[n]ejωn
其中, x [ n ] x[n] x[n] 是离散时间序列, n n n 为整数,代表时间序号; ω \omega ω 是数字角频率,单位为弧度; X ( e j ω ) X(e^{j\omega}) X(e) x [ n ] x[n] x[n] 的DTFT结果,是关于 ω \omega ω 的函数,它描述了信号 x [ n ] x[n] x[n] 在频域的特性。

三、DTFT公式的初步理解

3.1 物理意义

DTFT的物理意义在于将离散时间序列 x [ n ] x[n] x[n] 分解为一系列不同频率的复指数信号 e j ω n e^{j\omega n} ejωn 的线性组合。每个复指数信号 e j ω n e^{j\omega n} ejωn 代表一个特定频率的正弦或余弦信号,其权重由 x [ n ] x[n] x[n] 决定。通过对所有这些复指数信号进行加权求和,就得到了信号在频域的表示 X ( e j ω ) X(e^{j\omega}) X(e)

3.2 数学结构

从数学结构上看,DTFT是一个无穷级数求和。对于给定的 ω \omega ω 值,我们需要对所有的 n n n − ∞ -\infty + ∞ +\infty + 计算 x [ n ] e − j ω n x[n]e^{-j\omega n} x[n]ejωn 的值,并将它们相加。这个求和过程可能是收敛的,也可能是发散的,取决于序列 x [ n ] x[n] x[n] 的特性。

四、DTFT的周期性

4.1 周期性的数学证明

要证明 X ( e j ω ) X(e^{j\omega}) X(e) 具有周期性,我们需要证明对于任意的 ω \omega ω,都有 X ( e j ( ω + 2 π ) ) = X ( e j ω ) X(e^{j(\omega + 2\pi)}) = X(e^{j\omega}) X(ej(ω+2π))=X(e)

ω + 2 π \omega + 2\pi ω+2π 代入DTFT公式中:
X ( e j ( ω + 2 π ) ) = ∑ n = − ∞ ∞ x [ n ] e − j ( ω + 2 π ) n X(e^{j(\omega + 2\pi)})=\sum_{n = -\infty}^{\infty}x[n]e^{-j(\omega + 2\pi)n} X(ej(ω+2π))=n=x[n]ej(ω+2π)n
根据指数运算法则 e a + b = e a × e b e^{a + b}=e^a\times e^b ea+b=ea×eb,上式可变形为:
X ( e j ( ω + 2 π ) ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n e − j 2 π n X(e^{j(\omega + 2\pi)})=\sum_{n = -\infty}^{\infty}x[n]e^{-j\omega n}e^{-j2\pi n} X(ej(ω+2π))=n=x[n]ejωnej2πn
由于 e − j 2 π n = cos ⁡ ( 2 π n ) − j sin ⁡ ( 2 π n ) e^{-j2\pi n}=\cos(2\pi n)-j\sin(2\pi n) ej2πn=cos(2πn)jsin(2πn)而对于任意整数 n n n cos ⁡ ( 2 π n ) = 1 \cos(2\pi n)=1 cos(2πn)=1 sin ⁡ ( 2 π n ) = 0 \sin(2\pi n)=0 sin(2πn)=0,所以 e − j 2 π n = 1 e^{-j2\pi n}=1 ej2πn=1

X ( e j ( ω + 2 π ) ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n = X ( e j ω ) X(e^{j(\omega + 2\pi)})=\sum_{n = -\infty}^{\infty}x[n]e^{-j\omega n}=X(e^{j\omega}) X(ej(ω+2π))=n=x[n]ejωn=X(e)
这就证明了 X ( e j ω ) X(e^{j\omega}) X(e) 是以 2 π 2\pi 2π 为周期的周期函数。

4.2 周期性的物理理解

从物理角度来看,离散时间信号的频率具有周期性是因为离散时间系统对频率的感知是有限的。在离散时间系统中,频率 ω \omega ω ω + 2 π \omega + 2\pi ω+2π 所代表的复指数信号 e j ω n e^{j\omega n} ejωn e j ( ω + 2 π ) n e^{j(\omega + 2\pi)n} ej(ω+2π)n 在离散时间点 n n n 上的取值是相同的。也就是说,离散时间系统无法区分频率相差 2 π 2\pi 2π 的信号。例如,对于离散时间序列 x [ n ] x[n] x[n],当我们用不同频率的复指数信号去分解它时,频率相差 2 π 2\pi 2π 的复指数信号对 x [ n ] x[n] x[n] 的贡献是相同的,因此在频域上表现为周期性。

4.3 周期性的实际影响

DTFT的周期性在实际应用中有重要影响。在进行频域分析时我们只需关注一个周期内的频谱特性,通常选择主值区间 [ − π , π ] [-\pi, \pi] [π,π] [ 0 , 2 π ] [0, 2\pi] [0,2π]。这是因为其他周期的频谱信息与主值区间内的信息完全相同,对分析信号的本质特征并无额外帮助。例如,在设计数字滤波器时,我们可以基于主值区间内的频谱特性来确定滤波器的参数,以实现对特定频率成分的筛选和处理。

在频谱显示方面,周期性使得频谱呈现出重复的模式。这要求我们在绘制频谱图时,合理选择显示范围,以避免信息的冗余和混淆。同时,周期性也影响着信号的采样和重构过程。根据采样定理,为了避免频谱混叠,采样频率必须足够高,使得采样后的信号频谱在主值区间内不会发生重叠。而DTFT的周期性是理解频谱混叠现象的基础,因为当采样频率不满足要求时,不同周期的频谱会相互重叠,导致信号信息的丢失和失真。

此外,在通信系统中,信号的调制和解调过程也与DTFT的周期性密切相关。调制过程是将低频信号加载到高频载波上,而解调则是从已调制信号中恢复出原始低频信号。在这个过程中,需要准确地分析信号的频谱特性,而DTFT的周期性为我们提供了一种有效的分析手段。通过在主值区间内对信号频谱进行操作和处理,我们可以实现高效的调制和解调,提高通信系统的性能和可靠性。

五、DTFT的连续性

5.1 连续性的数学分析

要理解DTFT的连续性,我们需要考虑 X ( e j ω ) X(e^{j\omega}) X(e) ω \omega ω 的依赖关系。对于DTFT公式 X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n X(e^{j\omega})=\sum_{n = -\infty}^{\infty}x[n]e^{-j\omega n} X(e)=n=x[n]ejωn我们可以将其看作是一个关于 ω \omega ω 的函数。假设 ω 1 \omega_1 ω1 ω 2 \omega_2 ω2 是两个非常接近的数字角频率,我们来分析 X ( e j ω 1 ) X(e^{j\omega_1}) X(ejω1) X ( e j ω 2 ) X(e^{j\omega_2}) X(ejω2) 的差值。

∣ X ( e j ω 1 ) − X ( e j ω 2 ) ∣ = ∣ ∑ n = − ∞ ∞ x [ n ] e − j ω 1 n − ∑ n = − ∞ ∞ x [ n ] e − j ω 2 n ∣ = ∣ ∑ n = − ∞ ∞ x [ n ] ( e − j ω 1 n − e − j ω 2 n ) ∣ \begin{align*} \left|X(e^{j\omega_1}) - X(e^{j\omega_2})\right| &= \left|\sum_{n = -\infty}^{\infty}x[n]e^{-j\omega_1 n}-\sum_{n = -\infty}^{\infty}x[n]e^{-j\omega_2 n}\right|\\ &=\left|\sum_{n = -\infty}^{\infty}x[n](e^{-j\omega_1 n}-e^{-j\omega_2 n})\right| \end{align*} X(ejω1)X(ejω2) = n=x[n]ejω1nn=x[n]ejω2n = n=x[n](ejω1nejω2n)

根据复数的性质和三角函数的知识, e − j ω 1 n − e − j ω 2 n e^{-j\omega_1 n}-e^{-j\omega_2 n} ejω1nejω2n 可以表示为:

e − j ω 1 n − e − j ω 2 n = cos ⁡ ( ω 1 n ) − cos ⁡ ( ω 2 n ) − j ( sin ⁡ ( ω 1 n ) − sin ⁡ ( ω 2 n ) ) e^{-j\omega_1 n}-e^{-j\omega_2 n}=\cos(\omega_1 n)-\cos(\omega_2 n)-j(\sin(\omega_1 n)-\sin(\omega_2 n)) ejω1nejω2n=cos(ω1n)cos(ω2n)j(sin(ω1n)sin(ω2n))

利用三角函数的和差化积公式:

cos ⁡ A − cos ⁡ B = − 2 sin ⁡ A + B 2 sin ⁡ A − B 2 \cos A-\cos B=-2\sin\frac{A + B}{2}\sin\frac{A - B}{2} cosAcosB=2sin2A+Bsin2AB

sin ⁡ A − sin ⁡ B = 2 cos ⁡ A + B 2 sin ⁡ A − B 2 \sin A-\sin B = 2\cos\frac{A + B}{2}\sin\frac{A - B}{2} sinAsinB=2cos2A+Bsin2AB

可得:

e − j ω 1 n − e − j ω 2 n = − 2 sin ⁡ ( ω 1 + ω 2 ) n 2 sin ⁡ ( ω 1 − ω 2 ) n 2 − j 2 cos ⁡ ( ω 1 + ω 2 ) n 2 sin ⁡ ( ω 1 − ω 2 ) n 2 e^{-j\omega_1 n}-e^{-j\omega_2 n}=-2\sin\frac{(\omega_1+\omega_2)n}{2}\sin\frac{(\omega_1 - \omega_2)n}{2}-j2\cos\frac{(\omega_1+\omega_2)n}{2}\sin\frac{(\omega_1 - \omega_2)n}{2} ejω1nejω2n=2sin2(ω1+ω2)nsin2(ω1ω2)nj2cos2(ω1+ω2)nsin2(ω1ω2)n

ω 1 \omega_1 ω1 趋近于 ω 2 \omega_2 ω2 时, sin ⁡ ( ω 1 − ω 2 ) n 2 \sin\frac{(\omega_1 - \omega_2)n}{2} sin2(ω1ω2)n 趋近于 0 0 0。如果序列 x [ n ] x[n] x[n] 满足绝对可和条件,即 ∑ n = − ∞ ∞ ∣ x [ n ] ∣ < ∞ \sum_{n = -\infty}^{\infty}|x[n]|\lt\infty n=x[n]<根据级数的性质,我们有:

lim ⁡ ω 1 → ω 2 ∣ X ( e j ω 1 ) − X ( e j ω 2 ) ∣ = 0 \lim_{\omega_1\rightarrow\omega_2}\left|X(e^{j\omega_1}) - X(e^{j\omega_2})\right| = 0 ω1ω2lim X(ejω1)X(ejω2) =0

这表明 X ( e j ω ) X(e^{j\omega}) X(e) 是关于 ω \omega ω 的连续函数。

5.2 连续性的物理直观

从物理直观上理解,DTFT的连续性意味着信号的频谱是平滑变化的。离散时间序列 x [ n ] x[n] x[n] 是由一系列离散的采样点组成,但在频域中,信号的频率成分是连续分布的。这是因为离散时间序列可以看作是连续时间信号经过采样得到的,而连续时间信号的频谱本身是连续的。虽然采样过程会引入一些变化,但在一定条件下,离散时间序列的频谱仍然保持连续性。

可以把离散时间序列想象成是对连续变化的物理现象在离散时刻的采样记录。例如,在音频信号处理中,声音是连续变化的空气压力波动,但我们通过麦克风以一定的采样频率将其转换为离散的数字信号。尽管时域上是离散的采样点,但声音所包含的频率成分是连续分布的,不同频率的声音成分相互叠加形成了复杂的声音信号。当我们对这个离散的音频信号进行DTFT时,得到的频谱反映了声音中各个频率成分的强度和相位信息,由于声音的频率本质上是连续变化的,所以频谱也是连续的。

再比如,在图像处理中,图像的亮度和颜色信息在空间上是连续变化的,经过采样后得到离散的像素值。对这些离散像素值组成的图像序列进行二维DTFT(扩展到二维的离散时间傅里叶变换),得到的频域表示同样具有连续性。低频成分对应图像的整体轮廓和缓慢变化的部分,高频成分对应图像的细节和边缘信息,这些频率成分在频域中是连续过渡的。

5.3 连续性与信号特性的关系

信号的特性对DTFT的连续性有着重要影响。当离散时间序列 x [ n ] x[n] x[n] 是有限长序列时,其DTFT一定是连续的。因为有限长序列满足绝对可和条件,根据前面的数学分析,能保证频谱的连续性。例如,一个长度为 N N N 的矩形脉冲序列,其DTFT是一个抽样函数的形式,在整个频域上是连续变化的。

对于无限长序列,如果序列是绝对可和的,即 ∑ n = − ∞ ∞ ∣ x [ n ] ∣ < ∞ \sum_{n = -\infty}^{\infty}|x[n]| < \infty n=x[n]<那么它的DTFT也是连续的。绝对可和意味着序列的能量在整个时间轴上是有限的,这样的序列在频域上表现为连续的频谱。相反,如果序列不满足绝对可和条件,其DTFT可能会出现不连续的情况。例如,周期序列就不满足绝对可和条件,它的DTFT是由一系列冲激函数组成的离散频谱,不具有连续性。但可以把周期序列看作是离散频谱的一种特殊情况,它是由离散的频率分量组成,每个分量对应一个特定的谐波频率。

5.4 连续性在实际应用中的意义

在实际的信号处理应用中,DTFT的连续性具有重要意义。在滤波器设计方面,由于频谱是连续的,我们可以根据连续的频谱特性来设计各种类型的滤波器,如低通滤波器、高通滤波器、带通滤波器等。通过在连续的频域上设置合适的截止频率和滤波特性,能够实现对信号中特定频率成分的有效筛选和处理。例如,在音频降噪处理中,我们可以设计一个低通滤波器,通过在连续的频谱上设置合适的截止频率,去除音频信号中的高频噪声,保留有用的低频语音信息。

在信号的频谱分析中,连续性使得我们能够更精确地分析信号的频率成分。我们可以通过观察连续的频谱曲线,准确地确定信号的主要频率分量、带宽以及频率分布情况。这对于故障诊断、通信信号分析等领域非常重要。例如,在机械故障诊断中,通过对机械设备振动信号的DTFT分析,观察其连续频谱的变化,可以及时发现设备的异常频率成分,从而判断设备是否存在故障以及故障的类型和位置。

在信号的重建和恢复过程中,连续性也起着关键作用。根据连续的频谱信息,我们可以利用逆离散时间傅里叶变换(IDTFT)将频域信号准确地恢复为时域信号。如果频谱不连续,可能会导致重建信号出现失真和误差。因此,理解和利用DTFT的连续性有助于提高信号处理的精度和可靠性。

六、结论

离散时间傅里叶变换(DTFT)的周期性和连续性是其重要的特性,深入理解这些特性对于掌握数字信号处理的理论和应用具有关键意义。

周期性源于离散时间系统对频率的有限感知能力,使得不同频率相差 2 π 2\pi 2π 的复指数信号在离散时间点上表现相同,从而导致频谱呈现出以 2 π 2\pi 2π 为周期的重复模式。这一特性在实际应用中影响着频谱分析、滤波器设计、信号采样和重构以及通信系统的调制解调等多个方面,让我们在处理信号时只需关注主值区间内的频谱信息。

连续性则与信号的本质和特性密切相关。当离散时间序列满足一定条件(如绝对可和)时,其DTFT是关于数字角频率 ω \omega ω 的连续函数。这从物理直观上反映了信号频率成分的连续分布,并且在滤波器设计、频谱分析以及信号重建等实际应用中发挥着重要作用,有助于我们更精确地处理和理解信号。

6.1 对理论学习的启示

在学习数字信号处理理论时,理解DTFT的周期性和连续性能够帮助我们构建更完整的知识体系。周期性让我们认识到离散时间信号频域表示的独特性,与连续时间信号的频谱有所区别。通过对比和联系,我们能更深入地理解采样定理、频谱混叠等重要概念,为后续学习离散傅里叶变换(DFT)、快速傅里叶变换(FFT)等内容奠定坚实基础。例如,在理解DFT时,我们可以借助DTFT的周期性来解释DFT是如何对DTFT进行离散化采样的,以及采样点数和频率分辨率之间的关系。

连续性则提醒我们在分析信号频谱时要关注信号的整体特性,不能只着眼于离散的频率点。它也为我们理解信号的平滑性和可预测性提供了频域视角。在学习信号的滤波、调制等操作时,我们可以从连续性的角度去分析这些操作对信号频谱的影响,从而更好地掌握信号处理的原理和方法。

6.2 对实际工程应用的指导

在实际工程应用中,充分利用DTFT的周期性和连续性能够优化信号处理系统的设计和性能。在频谱分析方面,根据周期性合理选择频谱显示范围,避免信息冗余和混淆,能够更清晰地观察信号的频率成分。同时,利用连续性可以更精确地估计信号的带宽和中心频率等参数,为后续的信号处理提供准确的依据。

在滤波器设计中,周期性和连续性为滤波器的性能优化提供了方向。我们可以根据信号频谱的周期性特点,设计出具有特定频率响应的滤波器,使其在主值区间内满足设计要求。而连续性则要求我们在设计滤波器时,要考虑频谱的平滑过渡,避免出现频谱突变导致的信号失真。例如,在设计低通滤波器时,我们可以利用连续性来选择合适的滤波器类型(如巴特沃斯滤波器、切比雪夫滤波器等),以实现更平滑的截止特性。

在通信系统中,周期性和连续性有助于提高信号的传输效率和可靠性。在调制和解调过程中,准确把握信号频谱的周期性和连续性,能够合理选择调制方式和载波频率,减少频谱占用和干扰。同时,在信号的接收端,利用连续性可以更准确地恢复原始信号,降低误码率。

6.3 未来发展展望

随着科技的不断发展,数字信号处理在各个领域的应用越来越广泛,对DTFT及其特性的研究也将不断深入。在大数据和人工智能时代,处理大规模、复杂的离散时间信号成为新的挑战。DTFT的周期性和连续性特性可以为信号的特征提取、模式识别等任务提供重要的理论支持。例如,在音频和视频的内容分析中,通过分析信号频谱的周期性和连续性,可以挖掘出更多隐藏的信息,实现更精准的分类和识别。

此外,随着硬件技术的进步,如高速处理器和大容量存储器的发展,对DTFT的实时计算和处理能力提出了更高的要求。研究如何在保证计算精度的前提下,提高DTFT计算的效率,将是未来的一个重要研究方向。同时,探索DTFT在新兴领域(如物联网、生物医学信号处理等)的应用,也将为数字信号处理技术带来新的机遇和挑战。

总之,离散时间傅里叶变换的周期性和连续性是数字信号处理中的核心概念,它们贯穿于理论学习和实际应用的各个方面。深入理解和充分利用这些特性,将有助于我们更好地应对各种信号处理问题,推动数字信号处理技术不断向前发展。

相关文章:

离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析

摘要 离散时间傅里叶变换&#xff08;DTFT&#xff09;是数字信号处理领域的重要工具&#xff0c;它能将离散时间信号从时域转换到频域&#xff0c;揭示信号的频率特性。本文将深入解读DTFT公式&#xff0c;详细阐述其具有周期性和连续性的原因&#xff0c;帮助读者全面理解DT…...

深度学习|表示学习|卷积神经网络|Batch Normalization在干什么?|19

如是我闻&#xff1a; Batch Normalization&#xff08;批归一化&#xff0c;简称 BN&#xff09; 是 2015 年由 Ioffe 和 Szegedy 提出 的一种加速深度神经网络训练并提高稳定性的技术。 它的核心思想是&#xff1a;在每一层的输入进行归一化&#xff0c;使其均值接近 0&…...

Go基础之环境搭建

文章目录 1 Go 1.1 简介 1.1.1 定义1.1.2 特点用途 1.2 环境配置 1.2.1 下载安装1.2.2 环境配置 1.2.2.1 添加环境变量1.2.2.2 各个环境变量理解 1.2.3 验证环境变量 1.3 包管理工具 Go Modules 1.3.1 开启使用1.3.2 添加依赖包1.3.3 配置国内包源 1.3.3.1 通过 go env 配置1.…...

echarts、canvas这种渲染耗时的工作能不能放在webworker中做?

可以将 ECharts、Canvas 等渲染耗时的工作放在 Web Worker 中进行处理。Web Worker 允许在后台线程中运行 JavaScript&#xff0c;从而将计算密集型任务从主线程中分离出来&#xff0c;避免阻塞用户界面。以下是一些关键点&#xff1a; 优势 性能提升&#xff1a;将耗时的渲染…...

Android学习21 -- launcher

1 前言 之前在工作中&#xff0c;第一次听到launcher有点蒙圈&#xff0c;不知道是啥&#xff0c;当时还赶鸭子上架去和客户PK launcher的事。后来才知道其实就是安卓的桌面。本来还以为很复杂&#xff0c;毕竟之前接触过windows的桌面&#xff0c;那叫一个复杂。。。 后面查了…...

antd pro框架,使用antd组件修改组件样式

首先用控制台的指针找到组件的类名 然后找到项目的src/global.less文件 在里面进行修改&#xff0c;切记:where(.css-dev-only-do-not-override-5fybr3).ant-input:placeholder-shown这种格式&#xff0c;把where(.css-dev-only-do-not-override-5fybr3)删掉&#xff0c;使用…...

响应式编程_05 Project Reactor 框架

文章目录 概述响应式流的主流实现框架RxJavaReactor Project Reactor 框架Reactor 异步数据序列Flux 和 Mono 组件FluxMono 操作符背压处理 小结 概述 响应式编程_02基本概念&#xff1a;背压机制 Backpressure介绍了响应式流规范以及 Spring 框架中的响应式编程技术&#xff…...

RabbitMQ 从入门到精通:从工作模式到集群部署实战(一)

#作者&#xff1a;闫乾苓 文章目录 RabbitMQ简介RabbitMQ与VMware的关系架构工作流程RabbitMQ 队列工作模式及适用场景简单队列模式&#xff08;Simple Queue&#xff09;工作队列模式&#xff08;Work Queue&#xff09;发布/订阅模式&#xff08;Publish/Subscribe&#xff…...

导出依赖的几种方法

在 Python 中&#xff0c;你可以使用以下方法导出项目的依赖&#xff1a; 1. 使用 pip freeze pip freeze 可以列出当前环境中安装的所有包及其版本&#xff0c;并将结果保存到 requirements.txt 文件中。 pip freeze > requirements.txt2. 使用 pipreqs pipreqs 可以根…...

CS 与 BS 架构的差异

在数字化的今天&#xff0c;选择软件架构模式对系统的性能、维护、安全和成本都有很大影响。BS架构和CS架构是最常见的两种模式&#xff0c;了解它们的区别和特点对开发人员和企业决策者都很重要。 CS架构最早出现&#xff0c;当时用户直接从主机获取数据。随着客户端和服务端…...

OpenCV YOLOv11实时视频车辆计数线:让车辆进出有条理!

前言 大家好!今天我们聊个超级有趣的课题——如何用OpenCV结合YOLOv11进行实时视频车辆计数。是不是很炫酷?车辆进出全都清晰可见,连“跑车”都能精确统计!不过,别急,这可不仅仅是数车那么简单,背后还有许多实际问题等着你去搞定,比如计数线、车速、误检这些麻烦的小问…...

配置@别名路径,把@/ 解析为 src/

路径解析配置 webpack 安装 craco npm i -D craco/craco 项目根目录下创建文件 craco.config.js &#xff0c;内容如下 const path require(path) module.exports {webpack: {// 配置别名alias: {// 约定&#xff1a; 使用 表示src文件所在路径: path.resolve(__dirname,src)…...

java 进阶教程_Java进阶教程 第2版

第2版前言 第1版前言 语言基础篇 第1章 Java语言概述 1.1 Java语言简介 1.1.1 Java语言的发展历程 1.1.2 Java的版本历史 1.1.3 Java语言与C&#xff0f;C 1.1.4 Java的特点 1.2 JDK和Java开发环境及工作原理 1.2.1 JDK 1.2.2 Java开发环境 1.2.3 Java工作原理 1.…...

Windows Docker笔记-安装docker

安装环境 操作系统&#xff1a;Windows 11 家庭中文版 docker版本&#xff1a;Docker Desktop version: 4.36.0 (175267) 注意&#xff1a; Docker Desktop 支持以下Windows操作系统&#xff1a; 支持的版本&#xff1a;Windows 10&#xff08;家庭版、专业版、企业版、教育…...

hot100(7)

61.31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; 数组问题&#xff0c;下一个更大的排列 题解&#xff1a;31. 下一个排列题解 - 力扣&#xff08;LeetCode&#xff09; &#xff08;1&#xff09;从后向前找到一个相邻的升序对&#xff08;i,j)&#xff0c;此时…...

DeepSeek辅助学术写作【对比概念】效果如何?

DeepSeek-R1在论文写作细节方面有很多好的应用。我们下面通过具体案例来逐一展示这些功能。 DeepSeek-R1在提问方面&#xff0c;可以简化提示词也能给出精准得答案。我们来一探究竟&#xff01; 对比概念(功能指数:★★★★★) DeepSeek-R1在概念对比方面的功能也非常强大。由…...

基础相对薄弱怎么考研

复习总体规划 明确目标 选择专业和院校&#xff1a;根据你的兴趣、职业规划和自身实力&#xff0c;选择适合自己的专业和院校。可以参考往年的分数线、报录比、复试难度等。了解考试科目&#xff1a;不同专业考试科目不同&#xff0c;一般包括&#xff1a; 公共课&#xff1a…...

kakailio官网推荐的安装流程ubuntu 22.04

https://kamailio.org/docs/tutorials/6.0.x/kamailio-install-guide-git/ # 非必须项 wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/kamailio.gpg在/etc/apt/sources.list文件追加以下内容 deb [signed-by/usr/sh…...

DeepSeek:全栈开发者视角下的AI革命者

目录​​​​​​​ DeepSeek&#xff1a;全栈开发者视角下的AI革命者 写在前面 一、DeepSeek的诞生与定位 二、DeepSeek技术架构的颠覆性突破 1、解构算力霸权&#xff1a;从MoE架构到内存革命 2、多模态扩展的技术纵深 3、算法范式的升维重构 4、重构AI竞争规则 三、…...

协同探索与导航文献整理

文章目录 1.SOAR:异构无人机协同探索与拍摄以实现快速自主重建2. RACER: 一种使用分散式无人机群进行快速协同探索的方法3. 使用协作式纳米无人机在非结构化环境中进行最小感知探索4.GVP-MREP:通过动态拓扑图上的 Voronoi 分区进行快速且通信高效的多无人机探索5.森林的快速多无…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

[拓扑优化] 1.概述

常见的拓扑优化方法有&#xff1a;均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有&#xff1a;有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...

路由基础-路由表

本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中&#xff0c;往往存在多个不同的IP网段&#xff0c;数据在不同的IP网段之间交互是需要借助三层设备的&#xff0c;这些设备具备路由能力&#xff0c;能够实现数据的跨网段转发。 路由是数据通信网络中最基…...

在Spring Boot中集成RabbitMQ的完整指南

前言 在现代微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件&#xff0c;支持多种消息协议&#xff0c;具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...