离散时间傅里叶变换(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在新兴领域(如物联网、生物医学信号处理等)的应用,也将为数字信号处理技术带来新的机遇和挑战。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/68039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哈希表与散列表的原理及C++实现

1. 什么是哈希表&#xff1f; 哈希表&#xff08;Hash Table&#xff09;是一种高效的数据结构&#xff0c;用于存储键值对&#xff08;Key-Value Pairs&#xff09;。它通过哈希函数&#xff08;Hash Function&#xff09;将键&#xff08;Key&#xff09;映射到一个固定大小…

图像分类与目标检测算法

在计算机视觉领域&#xff0c;图像分类与目标检测是两项至关重要的技术。它们通过对图像进行深入解析和理解&#xff0c;为各种应用场景提供了强大的支持。本文将详细介绍这两项技术的算法原理、技术进展以及当前的落地应用。 一、图像分类算法 图像分类是指将输入的图像划分为…

数字化转型:概念性名词浅谈(第四讲)

​大家好&#xff0c;本篇文章是在新年之际写的&#xff0c;所以在这里先给大家拜个年。 今天要介绍的名词为ETL: ETL&#xff0c;是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transfor…

UVM factory机制

目录 1. factory-register 1.1 uvm_object_registry#(type T=uvm_object, string Tname="") 1.1 uvm_default_factory::register 2. factory-override 2.1 set_type_override(uvm_object_wrapper override_type) 2.2 set_inst_override(uvm_object_wrapper ove…

奥迪改名风波再起,A6L能否率队创下新奇迹

文/王俣祺 导语&#xff1a;春节假期刚过&#xff0c;奥迪的车型命名规则又变了。在如今以内卷为主基调的环境下&#xff0c;车型改名可不是小事&#xff0c;而奥迪的这次调整背后藏着许多深意&#xff0c;也预示着2025年奥迪在产品布局上的新动向。 改名能否“改命” 回溯到…

改进Transformer,解读Tokenformer论文:基于参数分词化重新思考Transformer的扩展策略

Transformer 训练成本高昂的问题日益凸显&#xff0c;不仅需要耗费巨额的资金与大量的计算资源&#xff0c;还对环境产生了不可忽视的影响&#xff0c;最近由北京大学与谷歌联合发表的一篇论文&#xff0c;为这一棘手难题带来了全新的曙光。论文中提出的创新方案&#xff0c;有…

【STM32】HAL库USB虚拟U盘MSC配置及采用自带的Flash作为文件系统

【STM32】HAL库USB虚拟U盘MSC实现配置及采用自带的Flash作为文件系统 本文将自带的Flash作为文件系统 通过配置USB的MSC功能实现虚拟U盘 没有单独建立FATFS文件系统 仅仅是配置USB和Flash读写而已 当然 这里也可以用外部Flash等等 也可以配置文件系统来进行套壳 但总体而言不如…

Nginx通过设置自定义标记识别代理调用

Nginx通过设置自定义标记识别代理调用 业务场景 最近遇到一个业务场景&#xff0c;部署在云端服务器的一个平台&#xff0c;接口提供给多个现场调用&#xff0c;其中一个现场是通过nginx代理服务器代理转发到云服务器&#xff0c;另外一个现场则是直接通过云服务器接口进行调…

【DeepSeek系列】01 DeepSeek-V1 快速入门

1、DeepSeek简介 2024年底&#xff0c;DeepSeek 相继推出了其第一代推理大模型&#xff1a;DeepSeek-R1-Zero 和 DeepSeek-R1。 DeepSeek-R1-Zero 是一个通过大规模强化学习&#xff08;RL&#xff09;训练的模型&#xff0c;训练过程中没有使用监督微调&#xff08;SFT&…

基于LabVIEW的Modbus-RTU设备通信失败问题分析与解决

在使用 LabVIEW 通过 Modbus-RTU 协议与工业设备进行通信时&#xff0c;可能遇到无法正常发送或接收指令的问题。常见原因包括协议参数配置错误、硬件连接问题、数据帧格式不正确等。本文以某 RGBW 控制器调光失败为例&#xff0c;提出了一种通用的排查思路&#xff0c;帮助开发…

密云生活的初体验

【】在《岁末随笔之碎碎念》里&#xff0c;我通告了自己搬新家的事情。乙巳年开始&#xff0c;我慢慢与大家分享自己买房装修以及在新家的居住体验等情况。 跳过买房装修的内容&#xff0c;今天先说说这三个月的生活体验。 【白河】 潮白河是海河水系五大河之一&#xff0c;贯穿…

Python爬虫:1药城店铺爬虫(完整代码)

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

openwebui入门

1 简介 ‌Open WebUI‌&#xff08;网址是openwebui.com&#xff09;是一个高度可扩展、功能强大且用户友好的自托管Web用户界面&#xff0c;专为完全离线操作设计&#xff0c;编程语言是python。它支持对接Ollama和OpenAI兼容的API的大模型。‌ Open WebUI‌在架构上是一种中…

Day36-【13003】短文,数组的行主序方式,矩阵的压缩存储,对称、三角、稀疏矩阵和三元组线性表,广义表求长度、深度、表头、表尾等

文章目录 本次课程内容第四章 数组、广义表和串第一节 数组及广义表数组的基本操作数组的顺序存储方式-借用矩阵行列式概念二维数组C语言对应的函数-通常行主序方式 矩阵的压缩存储对称矩阵和三角矩阵压缩存储后&#xff0c;采用不同的映射函数稀疏矩阵-可以构成三元组线性表三…

3-Not_only_base/2018网鼎杯

3-Not_only_base 打开code MCJIJSGKPZZYXZXRMUW3YZG3ZZG3HQHCUS 分析&#xff1a; 首先看题知道解密过程中肯定有base解密。 知识点1&#xff1a; Base64字符集&#xff1a; 包含大小写字母&#xff08;A-Z、a-z&#xff09;、数字&#xff08;0-9&#xff09;以及两个特殊字…

deepseek、qwen等多种模型本地化部署

想要在本地部署deepseek、qwen等模型其实很简单,快跟着小编一起部署吧 1 环境搭建 1.1下载安装环境 首先我们需要搭建一个环境ollama,下载地址如下 :Ollama 点击Download 根据自己电脑的系统选择对应版本下载即可 1.2 安装环境(window为例) 可以直接点击安装包进行安…

02/06 软件设计模式

目录 一.创建型模式 抽象工厂 Abstract Factory 构建器 Builder 工厂方法 Factory Method 原型 Prototype 单例模式 Singleton 二.结构型模式 适配器模式 Adapter 桥接模式 Bridge 组合模式 Composite 装饰者模式 Decorator 外观模式 Facade 享元模式 Flyw…

Idea ⽆ Maven 选项

Idea ⽆ Maven 选项 1. 在 Idea 项⽬上右键2. 选中 Maven 选项 如果在创建 Spring/Spring Boot 项⽬时&#xff0c;Idea 右侧没有 Maven 选项&#xff0c;如下图所示&#xff1a; 此时可以使⽤以下⽅式解决。 1. 在 Idea 项⽬上右键 2. 选中 Maven 选项 选中 Maven 之后&#…

用Deepseek做EXCLE文件对比

背景是我想对比两个PO系统里的一个消息映射&#xff0c;EDI接口的mapping有多复杂懂的都懂&#xff0c;它还不支持跨系统版本对比&#xff0c;所以我费半天劲装NWDS&#xff0c;导出MM到excle&#xff0c;然后问题来了&#xff0c;我需要对比两个excel文件里的内容&#xff0c;…

OpenCV:图像轮廓

目录 简述 1. 什么是图像轮廓&#xff1f; 2. 查找图像轮廓 2.1 接口定义 2.2 参数说明 2.3 代码示例 2.4 运行结果 3. 绘制图像轮廓 3.1 接口定义 3.2 参数说明 3.3 代码示例 3.4 运行结果 4. 计算轮廓周长 5. 计算轮廓面积 6. 示例&#xff1a;计算图像轮廓的面…