Fourier分析入门——第6章——连续函数的Fourier分析

news2025/1/12 6:04:54

目录

第 6 章  连续函数的Fourier分析

6.1 引言

6.2 Fourier模型

6.3 求取Fourier系数的实用方法

6.4  相关定理

6.4.1 线性定理(linearity)

6.4.2 平移定理(Shift theorem)

6.4.3 伸缩定理(Scaling theorem)

6.4.4 微分定理(Differentiation theorem)

6.4.5 积分定理(Integration theorem)

6.4.6 非正弦基函数(Integration theorem)


第 6 章  连续函数的Fourier分析

6.1 引言

在第 3 章的介绍中,我们提出了一个问题,即在有限的时间或空间区间上定义的任意函数是否可以表示为一系列加权正弦曲线的总和。我们当时暂时推迟回答这个问题,因为我们处理的是一个更简单的问题,即采样函数是否可以用采样正弦曲线的加权和来表示。 我们发现确实可以通过具有 D 系数的Fourier级数模型精确地拟合一组 D 数据点。 在此过程中,我们开发了简单的公式,使我们能够为任何数据值向量计算这些未知的Fourier系数。 然后,在第 5 章中,我们回到了最初的问题,并通过扩展这些结果证明了在有限区间上定义的连续函数将具有带宽无限大的离散频谱。这是图 5.1 中所示的情况 3。 现在的任务是为这种情况制定一个合适的模型,然后确定计算未知Fourier系数的公式。

6.2 Fourier模型

对于一个任意实数函数 𝗒(𝗑),我们希望在有限区间上用一个具有无限项的Fourier级数准确地表示这个函数。因此,我们寻求的这个模型正是等式[3.34]扩展到无限项的谐波。首先,为了简化记法,我们假设函数 𝗒(𝗑) 定义在区间(-π,π)上,因此,Fourier级数是

y(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_k cos(kx)+b_k sin(kx)] x 取区间(-π,π)上任意值-------------------------[6.1]

先前用于确定未知Fourier系数的方法是计算给定离散函数与模型基函数的内积。在离散情况下,基函数是采样三角函数。现在,在连续情况下,基函数是连续三角函数。因此,我们需要依次用各谐波函数构成等式 [6.1]的内积。例如,为了求得第 k 阶谐波系数 a_k,我们用基函数构成内积并检查和式中的每一项

 cos(kx)\bullet f(x) = cos(kx)\bullet a_0/2

+ cos(kx)\bullet a_1cos(x) + cos(kx)\bullet b_1sin(x)

+ cos(kx)\bullet a_2cos(2x) + cos(kx)\bullet b_2sin(2x)

+ cos(kx)\bullet a_3cos(3x) + cos(kx)\bullet b_3sin(3x)

+ ...

+ cos(kx)\bullet a_kcos(kx) + cos(kx)\bullet b_ksin(kx)

+ ...

= a_k cos(kx) \bullet cos (kx)

= a_k\pi----------------------------------------------------------------------------------------------[6.2]

注意,等式[6.2]右边的无穷级数由于内积的正交性萎缩为一项。根据等式[5.7], cos(kx)• cos (kx)等于L/2 = π 。因为,我们可以从等式[6.2]推导出,系数 a_k 的计算公式为

a_k = \frac{1}{\pi}cos(kx)\bullet f (x) = \frac{1}{\pi}\int_{-\pi}^{\pi} y(x) cos(kx)dx -------------------------------[6.3]

注意,这个公式也适用于常数项 a_0 ,因为,假如 k = 0,则等式[6.3]产生2倍均值。当这个结果被插入到等式[6.1]中的模型时,常量项正是函数 𝗒(𝗑)所求的均值。类似的推理线路导出了正弦系数 a_k 的类似公式

b_k = \frac{1}{\pi}\int_{-\pi}^{\pi} y(x)sin(kx)dx -------------------------------------------------------------[6.4]

为了获得当函数 𝗒(𝗑) 是定义在任意长度为 L 的有限区间上时适用的更通用的公式,我们用 2πx/L代替x (译注:即角速度ω = 2π/L ,则随变量 x 转过的弧度数为 ωx = 2πx/L ),得到

y(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_k cos(2\pi kx/L)+b_k sin(2\pi kx/L)] ,

其中,

a_k = \frac{2}{L} \int_{L_0}^{L_0+L}y(x)cos(2\pi kx/L)dx

b_k = \frac{2}{L} \int_{L_0}^{L_0+L}y(x)sin(2\pi kx/L)dx -------------------------------------------------[6.5]

最后这个结果是教科书上常见的Fourier级数形式,因为它足够通用,可以分析任意起点的一个完整周期。

   等式 [6.1] 的三角模型仅对实值函数有用。 然而,我们可以扩展模型以包括复数值函数,就像我们之前对离散函数所做的那样(参见等式 [4.14])。 为此,Fourier级数模型用复数系数表示为

y(x) = \sum_{k=-\infty}^{+\infty}c_k e^{i(2\pi kx/L)} ------------------------------------------------------------[6.6]

其中,我们从等式 [4.12] 和 [6.5] 中获取复数系数定义的灵感:

c_k = \frac{a_k-ib_k }{2} (k > 0)

c_k = \frac{a_k+ib_k }{2} (k < 0)

c_k = \frac{1}{L} \int_{L_0}^{L_0+L}y(x)cos(2\pi kx/L)dx-i\frac{1}{L} \int_{L_0}^{L_0+L}y(x)sin(2\pi kx/L)dx

 = \frac{1}{L} \int_{L_0}^{L_0+L}y(x)e^{-i(2\pi kx/L)}dx ---------------------------------------------------------[6.7]

在该模型中,连续复数指数是表示任何复值函数的正交基函数。由于实数值函数只是复值函数的特例,等式[6.6]的模型包含等式[6.1]的模型,因此在教科书中通常是首选。

6.3 求取Fourier系数的实用方法

上一节已经证明,有限区间内的离散函数和连续函数的傅里叶分析在概念上几乎没有区别。然而,从实际的角度来看,计算模型Fourier系数的机制存在很大差异。任何会算术的人都可以计算离散函数Fourier分析中所需的内积。 但是,要对连续函数进行Fourier分析,需要具备计算微积分的能力。如果认为计算积分是最后的手段,那么下面几种替代策略值得探索。

(1) 在参考书上查一下。许多常见波形的频谱已经确定,答案在数学函数手册中(例如,参见 Bracewell 的Fourier变换对(pairs)图解词典)。

(2) 使用对称参数断言某些系数为零。

(3) 将给定的函数分解为已知Fourier级数的更多初等函数的总和。由于线性特性,函数之和的频谱等于它们的频谱之和。

(4) 通过采样D次来逼近已经函数,并在数值上计算对应的有限Fourier级数。

(5) 使用定理从现有的Fourier级数推导出新的Fourier级数,而不是做许多额外工作。

(6) 使用蛮力法(brute force)并进行微积分。一个有效的策略是将谐波数 k 保留为一个变量,以便生成一个公式,该公式可以同时确定所有Fourier系数。

下面的示例使用了对称方法和蛮力方法的组合。问题是找到符合图 6.1 所示连续函数的Fourier级数模型。尽管该函数仅在区间(-π,π)上定义,但Fourier级数也将拟合通过复制 𝗒(𝗑) 获得的周期函数以形成“方波(square waves)”。 对于给定函数,我们首先以计算等式[6.5]开始,并观察到被积函数具有奇对称性,因此所有余弦系数都为零,

a_k = \frac{1}{\pi}\int_{-\pi}^{\pi}y(x)cos(kx)dx = \frac{1}{\pi}\int_{-\pi}^{\pi} O(x)E(x)dx = 0 -----------------------------------------[6.8]

为了求得正弦系数,我们计算等式 [6.4] 并注意到,因为这个积分是偶数,因此积分简化为

b_k = \frac{1}{\pi}\int_{-\pi}^{\pi}y(x)sin(kx)dx = \frac{2}{\pi}\int_{0}^{\pi} y(x) sin(kx)dx

= \frac{2}{\pi}\int_{0}^{\pi} sin(kx)dx= \frac{2}{\pi}[-\frac{cos(kx)}{k}]\vert_{0}^{\pi}

=\frac{2}{k\pi}[1-cos(kx)]-----------------------------------------------------------------------------------------------[6.9]

估计前面几个谐波,我们看到

b_1=\frac{2}{\pi}[1-cos(\pi)]=\frac{4}{\pi}

b_2=\frac{2}{2\pi}[1-cos(2\pi)]=0

b_3=\frac{2}{3\pi}[1-cos(3\pi)]=\frac{4}{3\pi} --------------------------------------------------------------------------------[6.10]

这表明对所有系数的通用公式:

b_k = 0 (k = 偶数)

b_k=\frac{4}{k\pi} (k = 奇数) -----------------------------------------------------------------------------------------------[6.11]

将这些系数代回等式[6.1]的模型,我们得到

y(x) = \frac{4}{\pi} [sin(x) + \frac{1}{3} sin(3x) + \frac{1}{5} sin(5x) + ... ]

= \frac{4}{\pi}\sum_{k=odd}^{}[\frac{sin(kx)}{k}] -------------------------------------------------------------------------------------------[6.12]

因此,我们有“正弦相位(sine phase)”方波的Fourier级数模型。对于“余弦相位(cosine phase)”的方波可以确定类似的公式。

 ----------------------------------图 6.1 方波的Fourier分析------------------------------------------------------------

6.4  相关定理

6.4.1 线性定理(linearity)

   描述Fourier分析的一种常见方式是线性运算(linear operation)。任何线性运算都有两个与缩放和相加有关的通用属性。在当前背景下,这些属性是:

(a) 假如函数 f (x) 具有Fourier系数 a_k 和 b_k  ,则通过常量伸缩因子s 以产生新的函数 g (x) = s . f (x),也将同样伸缩其 Fourier 系数。即,g (x) 的Fourier系数将为 s .a_k 和 s .b_k 。通过将新函数代入等式 [6.5] 中的系数生成函数,可以轻松验证该定理。

(b) 假如函数 f (x) 具有Fourier系数  a_k 和 b_k ,函数 g(x) 具有Fourier系数 \alpha_k 和 \beta_k ,则函数 f (x) + g(x) 则具有Fourier系数 a_k+\alpha_k 和 b_k+\beta_k 。该定理源于等式中的积分这一事实。 [6.5]本身是线性运算,所以如果被积函数是两个函数之和,积分可以分解为两个积分之和,分别对应分量函数f g的Fourier系数。

6.4.2 平移定理(Shift theorem)

如果时间或空间参考系的原点移动了 𝗑',则效果是在函数的频谱中引起相移。如果原始函数 f (x) 由极坐标形式 

y(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}m_k \cdot cos(kx-\Phi_k)  --------------------------------------------------------------[6.13]

的Fourier级数给出,则这个结果很容易用代数方法证明。接下来,我们通过将原点移动数量 𝗑' 从 y(x) 得到 g(x) 。在数学上,通过将量 xx’ 代入 x 可以求得 g(x)

g(x)=y(x-x')=\frac{a_0}{2} + \sum_{k=1}^{+\infty}m_k \cdot cos(kx-kx'-\Phi_k) ----------------------------------[6.14]

换句话说,这个等式表示,为了计算 g(x),我们从 x 中减去数量 x´,并将结果提交给函数 y。 结果是Fourier系数的大小不受影响,但每个谐波项的相位增加了 kx´ 量。 图 6.2 中显示了一个示例,其中函数 y(x) 具有两个谐波分量。请注意,数量 x = π/2 的横向偏移会使基波的相位偏移 1/4 个周期,而对二次谐波的影响是 1/2 个周期的相移。

-----------------------------------图 6.2 X轴平移产生相移------------------------------------------------------

f (x) 的频谱用复数Fourier 级数

y(x) = \sum_{k=-\infty}^{+\infty}c_k e^{ikx} --------------------------------------------------------------------------------------[6.15]

表示的时候,以上结论同样可以很容易地使用代数方法证明。

g(x) = y( xx’) 为 ( x ) 的平移函数,且在等式[6.15]中用 xx’ 代入 x ,得到 g(x) 的频谱

g(x) = \sum_{k=-\infty}^{+\infty}c_k e^{ik(x-x')}

=\sum_{k=-\infty}^{+\infty}(c_k e^{-ikx'})e^{ikx}------------------------------------------------------------------------------------[6.16]

因此,新的Fourier系数可以看成是原来系数的 e^{ikx'} 倍。但我们从第2章知道,用单位相量 e^{i\theta} 的乘法具有对已知相量按角 θ 旋转的效果,也就是说相量按θ 的量平移。注意到,平移的相量数直接与谐波数 k 和位移数(displacement)x’ 成正比。

虽然在代数上更麻烦,但该定理的笛卡尔形式可能会为学生提供一些见解。假如函数f (x)由Fourier级数

y(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_{k}cos(kx)+b_{k}sin(kx)] -----------------------------------------------------[6.17]

给出,且 g(x) 是从 f (x) 按 x’ 平移原点而获得

g(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_{k}cos(k(x-x'))+b_{k}sin(k(x-x'))]。------------------------------[6.18]

按照标准Fourier级数重写最后一个等式,于是就产生了一个新的Fourier系数

g(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_{k}'cos(kx)+b_{k}'sin(kx)]------------------------------------------------------[6.19]

我们应用等式[2.7]的三角恒等式

cos(α + δ ) = cos(α) cos(δ )- sin(α) sin(δ )

sin(α + δ ) = cos(α) sin(δ )+ sin(α) cos(δ ) 。--------------------------[2.7]

为了理解如何证明这个结论,考虑阶谐波项

a_k.cos(k(x-x'))+b_k.sin(k(x-x'))

= a_k \cdot [cos(kx) cos(kx')+sin(kx) sin(kx')]+b_k \cdot [sin(kx)cos(kx')-cos(kx)sin(kx')]

= [a_kcos(kx') -b_ksin(kx')]cos(kx) + [b_kcos(kx')+a_ksin(kx')]sin(kx)------------[6.20]

因此,新的Fourier系数是

a_k' =a_kcos(kx')-b_ksin(kx')

b_k' =b_kcos(kx')+a_ksin(kx') -------------------------------------------------------------------------[6.21]

这被识别为相量 (a_k,b_k) 的旋转版。与以上所求得的极坐标形式的解一致,旋转量是 kx

6.4.3 伸缩定理(Scaling theorem)

如果时间或空间参考系的尺度按因子 s 变化,则效果是反向缩放函数频谱的频率轴。假如函数f (x)由Fourier级数

y(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_k cos(2\pi kx/L)+b_k sin(2\pi kx/L)]------------------------------[6.22]

给出,这个结论就很容易在代数上加以证明。我们现在通过按伸缩因子伸缩x轴从 y(x) 创建新的函数 g(x) 。可以推断,我们仅需用量 sx 代替 x 即可产生函数g(x),即

g(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_k cos(2\pi ksx/L)+b_k sin(2\pi ksx/L)] --------------------------[6.23]

总之,这个等式指的是,为了计算 g(x),我们用常量 s 乘以自变量 x,并将乘积结果作为函数 y 的自变量提交给函数 y 。 这个结论表明,现在,每个谐波的新频率是旧频率的 s 倍。另一种说法是,频谱被拉伸了 1/s 倍。 图 6.3 显示了 s = 2 情况的图形示例。

-----------------------------------图 6.3 X轴缩放扩展频谱-----------------------------------------------------

如果从谐波数而不是物理频率的角度来考虑频谱,这个结果可能更容易理解。由于谐波数不依赖于区间长度 L,因此缩放 x 轴前后的谐波频谱将完全相同。然而,将谐波数转换为物理频率需要了解基本周期。如果观察周期被比例因子s压缩,则基频相应地变大,因此频谱将被因子s扩展。

6.4.4 微分定理(Differentiation theorem)

假如函数f (x)由Fourier级数

y(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_k cos(kx)+b_k sin(kx)] --------------------------------------------------[6.24]

给出,且新的函数 g(x)通过函数y(x)对 x 微分而得到,则 g(x) 的模型为

g(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[kb_{k} cos(kx)-ka_{k}sin(kx)] ----------------------------------------------[6.25]

这表明,新的系数 a_k 等于原来的系数 b_k  的 k 倍,新的系数 b_k 等于原来的系数 a_k 的 -k 倍。系数按谐波数缩放的原因是高次谐波的变化率更大因此导数必须更大。例如,图 6.1中的函数 y(x)具有Fourier系数 b_1=2 ,b_2=1 。根据这个微分定理,y(x)的导数应当有Fourier系数 a_1=2 ,a_2=-2 。可通过直接微分 y(x) 得到 2cos(x) − 2 cos(2x) , 从而得到验证。

    以上结论可以解释为频谱在复平面上的旋转和伸缩。为了理解这一点,令函数f (x)由Fourier级数

y(x) = \sum_{k=-\infty}^{+\infty}c_k e^{ikx} -----------------------------------------------------------------------------------[6.26]

所表示,则新的函数由y(x)对 x 微分而得到,则g(x)的模型为

g(x) = \frac{dy(x)}{dx}

= \frac{d}{dx}(\sum_{k=-\infty}^{+\infty}c_k e^{ikx})

= \frac{d}{dx}(\sum_{k=-\infty}^{+\infty}ikc_k e^{ikx})

总之,微分一个函数的效果就是按90°旋转每个相量 c_k (因子为i)并按谐波数k伸缩Fourier系数。

6.4.5 积分定理(Integration theorem)

假如函数f (x)由Fourier级数

y(x) = \frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_k cos(kx)+b_k sin(kx)] --------------------------------------------------[6.28]

给出,且新的函数 g(x) 通过函数y(x)对 x 微分而得到,则 g(x) 的模型为

g(x) = \int_{-\pi}^xy(u)du

=\int_{-\pi}^{x}\{\frac{a_0}{2} + \sum_{k=1}^{+\infty}[a_k cos(ku)+b_k sin(ku)]\}du

=\int_{-\pi}^{x}\frac{a_0}{2}du + \int_{-\pi}^{x}\sum_{k=1}^{+\infty}[a_k cos(ku)du]+ \int_{-\pi}^{x}\sum_{k=1}^{+\infty}[b_k sin(ku)]du------------------[6.29]

等式[6.29]中的最后一步这样写是可行的,因为和的积分等于每个单独项的积分之和。计算这些项的积分,我们得到

g(x) = \frac{a_0}{2}u|_{-\pi}^{x}+\sum_{k=1}^{+\infty}[\frac{a_k}{k}sin(ku)|_{-\pi}^{x}]+ \sum_{k=1}^{+\infty}[\frac{-b_k}{k}cos(ku)|_{-\pi}^{x}]

=\frac{a_0\pi}{2}+\frac{a_0x}{2} +\sum_{k=1}^{+\infty}\{\frac{a_k}{k}[sin(kx)-sin(-k\pi)]\}+\sum_{k=1}^{+\infty}\{\frac{-b_k}{k}[cos(kx)-cos(-k\pi)]\}

=C+\frac{a_0x}{2} +\sum_{k=1}^{+\infty}\frac{a_k}{k}[sin(kx)]+\sum_{k=1}^{+\infty}\frac{-b_k}{k}[cos(kx)]------------------------------------[6.30]

等式 [6.30] 中的变量 C 是积分的一个常数,它吸收了cos()项和 a_0  项。注意,假如原来函数的均值不等于0 , 则积分后会出现一个线性项。因此,若非 a_0 = 0 ,否则这个结果不必一定是一个专属的Fourier级数。这个结论表明,新的系数 a_k 等于原来的系数 b_k 的 -1/k 倍,新的系数 bk 等于原来的系数  a_k  的 1/k 倍。系数与谐波数成反比的原因是正弦曲线下的面积随着频率变大而变小,因此积分变小。

以类似于上面第 4 节中所示的方式,等式 [6.30] 可以解释为复平面上的频谱旋转。因此,对一个函数积分的效果就是按90°旋转每个相量 c_k (因子为i )并按谐波数k伸缩Fourier系数。 

图 6.4 显示了使用积分定理的示例,其中对图 6.1 的方波进行积分以产生三角波。通过检查,我们发现,g(𝗑) 的均值为–π/2 。为了求得其它的Fourier系数,我们应用这个定理到上面等式[6.12]中求得的函数 (𝗑)的Fourier 系数

a_k = 0

b_k = \frac{4}{\pi k} ( k 为奇数)------------------------------------------------(6.11)

由于旧的 a 系数为零,因此新的 b 系数为零。新的 a 系数等于旧 b 系数的 -1/k 倍。 因此,我们得出结论,新函数 g(𝗑) 具有Fourier系数

a_0=-\frac{\pi}{2}

a_k=\frac{4}{\pi k^2}( k 为奇数)

b_k=0 ---------------------------------------------------------------------------------------------------------(6.31)

在这种情况下,g(𝗑) 的Fourier级数是

g(x) = -\frac{\pi}{2}-\frac{4}{\pi} \sum_{k=odd}^{}\frac{cos(kx)}{k^2} ------------------------------------------------------------------------(6.32)

------------------------------------------------图6.4 方波积分----------------------------------------------------------

6.4.6 非正弦基函数(Integration theorem)

三角函数 sin(kθ) 和 cos(kθ)的谐波级数的显著特征之一是它们在区间 [0, 2π] 上对于整数 k 是相互正交的,不仅作为 x 的连续函数,而且当以整数 D 个点均匀采样时也是如此。这种正交性是这些基函数的一个基本特征,它允许开发简单的方程来计算开发离散数据和连续函数的Fourier级数模型所需的Fourier系数。

尽管存在其他连续的、相互正交的函数族,但并不是所有的函数都具有在采样时保持正交的方便属性。来自光学的一个例子是 Zernike 圆多项式族,它定义在 (x,y)平面中单位半径的圆形域上。这些正交多项式在极坐标( ρ ,θ ) 中最简单地表示为

Z_n^m = Z_n^m R_n^m(\rho )M(m\theta) ----------------------------------------------------------------------------------(6.33)

其中,N是一个归一化常量 ,R 是一个以ρ表示的 N 阶多项式,而 M 是三角函数,当 m ≥ 0 时为 cos() ,当 m < 0 时为 sin(-) 。采样时,这些函数会失去正交性,因此必须使用其他方法(例如最小二乘拟合)来计算 Zernike 系数

内容来源:

<< Fourier Analysis for Beginners>> Larry N. Thibos

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

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

相关文章

【初识C语言】数组

【初识C语言】数组 一.一维数组1.什么是数组1.一维数组的创建和初始化1.数组如何创建2.数组如何初始化3.用sizeof来求数组的长度 2.一维数组的使用3.一维数组在内存中的存储方式 二. 二维数组1,什么是二维数组2.二维数组的创建3.二维数组的初始化4.二维数组的使用5.二维数组在内…

GD32F4x 加密(开启读保护功能)

参考链接1&#xff1a;&#xff08;设置读保护&#xff09; GD32F4x 如何开启读保护功能&#xff08;芯片加密&#xff09;&#xff1f;_EmbeddedOsprey的博客-CSDN博客 参考链接2&#xff1a;读取芯片ID进行加密 《嵌入式 – GD32开发实战指南》第19章 程序加密_gd32大小端…

A-4D战斗机姿态控制的模型预测控制方法(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 飞行器姿态控制通过复杂的动力学来描述&#xff0c;这使得该系统的控制算法的设计变得困难。除此之外&#xff0c;战斗机尤其被设…

[230531] 托福听力真题|TPO67配套词汇|10:23-11:23

目录 Con1 Lec1(ecology) Lec2(psychology) Con2 Lec3(art history) 重点复习巩固lecture 两篇Con都为简单等级 Con1 emergency n 紧急情况&#xff1b;突发情况 deal with 处理 dormitory n 宿舍 facility n 设备 supervisor n 监督…

ov2640子设备视频操作详细分析

ov2640子设备视频操作详细分析 文章目录 ov2640子设备视频操作详细分析ov2640_subdev_video_ops视频操作ov2640_s_stream开始流ov2640_g_fmt 获取格式ov2640_s_fmt设置格式ov2640_try_fmt尝试格式ov2640_cropcap裁剪能力ov2640_g_crop获取裁剪ov2640_enum_fmt枚举格式ov2640_g_…

MySql-高级(分库分表问题简析) 学习笔记

文章目录 1. 为什么要分库分表&#xff1f;2. 用过哪些分库分表中间件&#xff1f;不同的分库分表中间件都有什么优点和缺点&#xff1f;3. 你们具体是如何对数据库如何进行垂直拆分或水平拆分的&#xff1f;4. 分库分表时&#xff0c;数据迁移方案5. 如何设计可以动态扩容缩容…

kafka本地测试消息

一安装JDK 二zookeeper安装 Apache ZooKeeper conf下修改cfg文件名 为zoo.cfg 打开该文件编辑 配置环境变量 右击电脑--属性--高级系统设置--选择环境变量 新建系统变量 变量名&#xff1a;ZOOKEEPER_HOME 变量值为zookeeper的路径 然后编辑环境变量Path 新增%ZOOKEEPER…

关于信号包络检测

说明 最近在调研学习数字滤波的东西&#xff0c;看到关于信号包络检测这样一个知识点&#xff0c;感觉很有意思&#xff0c;于是想着简单捋清楚并写篇博文装载起来总结一下。本博文与车载毫米波雷达的信号和数据处理无关&#xff0c;所以本文不会放到车载毫米波雷达系列专题规划…

第十二章 Productions最佳实践 - 命名约定

文章目录 第十二章 Productions最佳实践 - 命名约定命名约定业务服务路由进程路由规则集业务操作数据转换 自定义架构类别 第十二章 Productions最佳实践 - 命名约定 命名约定 本主题解释命名约定的重要性并提供示例。 通常&#xff0c;将逐步开发产品&#xff0c;一次开发一…

CAD数据库下包含的表记录

AutoCAD数据库(AcDb)是一些存储在数据库中的对象的集合。 数据词典&#xff0c;符号表是存储数据库对象的容器&#xff08;Container Object&#xff09;&#xff0c;用于组织和管理数据库对象。这两种容器对象都有与之相关的符号名&#xff0c;用字符来表示。 符号表是固定的…

chatgpt赋能Python-python_ipython

Python和IPython&#xff1a;SEO编程最佳实践 Python 是一种高级动态编程语言&#xff0c;被许多人用于开发各种应用程序和脚本。它是一个易于学习和使用的语言&#xff0c;提供了一些流行的框架和库来减少开发时间。另一方面&#xff0c;IPython 是Python的交互式命令行界面和…

面试:Babel 的编译过程

Babel 是一个 JavaScript 编译器&#xff0c;是一个工具链&#xff0c;主要用于将采用 ECMAScript 2015 语法编写的代码转换为向后兼容的 JavaScript 语法&#xff0c;以便能够运行在当前和旧版本的浏览器或其他环境中。 Babel 本质上就是在操作 AST 来完成代码的转译。AST是抽…

Ubuntu GitLab服务器git-data中tmp_pack_xxx文件占满磁盘

Ubuntu GitLab服务器git-data中tmp_pack_xxx文件占满磁盘 目录 Ubuntu GitLab服务器git-data中tmp_pack_xxx文件占满磁盘一、问题发现二、查找原因三、解决方法 服务器版本&#xff1a; cat /proc/version&#xff1a;Linux version 4.15.0-142-generic (builddlgw01-amd64-039…

Spring Initializr方式构建Spring Boot项目

文章目录 一&#xff0c;创建Spring Boot项目二&#xff0c;创建控制器三&#xff0c;运行入口类四&#xff0c;访问Web页面五&#xff0c;修改访问映射路径六&#xff0c;利用控制器返回页面1、添加thymeleaf依赖2、准备图片作为静态资源3、创建样式表作为静态资源4、创建首页…

最强Mock 工具,没人反对吧?

背景 在开发过程中&#xff0c;由于后端与前端并行开发&#xff0c;或者前端需要等待后台开发&#xff0c;难以保证对接效率&#xff0c;同时即使用开发好的 API 对接&#xff0c;也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高&#xff0c;一不…

微软推出 Hierarchical Transformer 实现更高准确率的语音评测

对于语言学习者来说&#xff0c;练习发音并获得及时准确的反馈&#xff0c;是提高口语水平的重要环节。多年来&#xff0c;微软一直深耕基于 Azure 认知服务的语音功能&#xff0c;不断优化语音评测[1]功能的底层技术&#xff0c;从准确率、流畅度、完整性和语音语调等方面&…

Cadence+SPB16.2入门教程(下)

弹出Create Net Class对话框,如图4.21所示。输入名称DDR_DATA,点击OK关闭对话框。 建立DDR_ADDR的过程也一样,同时选中网络XM1ADDR0-XM1ADDR15,XM1CASN、XM1CKE0、XM1CSN0、XM1RASN、XM1WEN后右键Create->Net Class。其它就不重复了。 然后将上一步建立的两个电气规则D…

chatgpt赋能Python-python_ijust

简介 Python ijust&#xff0c;是一款非常优秀的Python代码编辑器&#xff0c;它支持多种语言编程、自动补全、代码高亮、代码片段库和多种主题等众多特性。Python ijust 可以在Windows、macOS、Linux上运行&#xff0c;而且界面简洁、易用。 主要功能 代码高亮&#xff1a;P…

【MySQL新手到通关】第三章 基本的SELECT语句

文章目录 1. SQL 概述1.1 SQL 背景知识 1.2 SQL 分类2. SQL语言的规则与规范2.1 基本规则2.2 注释2.3 数据导入指令 3. 基本的SELECT语句3.1 SELECT ... FROM3.2 列的别名3.3 去除重复行3.4 空值参与运算3.5 着重号 4. 显示表结构5. 基本的过滤数据 1. SQL 概述 1.1 SQL 背景知…

计讯物联打造医疗设备远程质检“新神器”TG453,引领医疗设备数字化浪潮

方案背景 基于物联网的普及与推广&#xff0c;物联网技术在医疗行业得到更广泛的应用。在医院的日常诊疗工作开展中&#xff0c;CT、呼吸机、监护仪、注射泵、核磁共振、DR系统、工频X光机等医疗设备稳定无故障地运行对于医院、患者而言具有重要影响。医疗设备在长期使用过程中…