【傅里叶级数与傅里叶变换】数学推导——3、[Part4:傅里叶级数的复数形式] + [Part5:从傅里叶级数推导傅里叶变换] + 总结


文章内容来自DR_CAN关于傅里叶变换的视频,本篇文章提供了一些基础知识点,比如三角函数常用的导数、三角函数换算公式等。

文章全部链接:
基础知识点
Part1:三角函数系的正交性
Part2:T=2π的周期函数的傅里叶级数展开
Part3:周期为T=2L的函数展开
Part4:傅里叶级数的复数形式
Part5:从傅里叶级数推导傅里叶变换
总结


文章目录

  • Part4:傅里叶级数的复数形式
  • Part5:从傅里叶级数推导傅里叶变换
  • 总结


Part4:傅里叶级数的复数形式

前面的部分得到了对于周期为 T T T的函数,有 L = 2 T L = \frac{2}{T} L=T2其傅里叶级数的展开函数形式:

f ( t ) = a 0 2 + ∑ n = 1 ∞ ( a n c o s n ω t + b n s i n n ω t ) a 0 = 2 T ∫ 0 T f ( t ) d t a n = 2 T ∫ 0 T f ( t ) c o s n ω t d t b n = 2 T ∫ 0 T f ( t ) s i n n ω t d t \begin{align} f(t) & = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( a_n cos n \omega t + b_n sin n \omega t \right) \\ a_0 & = \frac{2}{T} \int_{0}^{T} f(t) dt \\ a_n & = \frac{2}{T} \int_{0}^{T} f(t) cos n \omega t dt \\ b_n & = \frac{2} {T} \int_{0}^{T} f(t) sin n \omega t dt \end{align} f(t)a0anbn=2a0+n=1(ancost+bnsinnωt)=T20Tf(t)dt=T20Tf(t)costdt=T20Tf(t)sinnωtdt

在了解傅里叶级数的复数形式之前,需要了解欧拉公式

e i θ = c o s θ + i s i n θ e^{i \theta} = cos \theta + i sin \theta eiθ=cosθ+isinθ

由欧拉公式可以得到:

c o s θ = e i θ + e − i θ 2 s i n θ = − i 2 ( e i θ − e − i θ ) \begin{align} cos \theta = \frac{e^{i \theta } + e^{-i \theta}}{2} \\ sin \theta = - \frac{i}{2} (e^{i \theta } - e^{-i \theta}) \end{align} cosθ=2eiθ+eiθsinθ=2i(eiθeiθ)

计算 c o s θ cos \theta cosθ s i n θ sin \theta sinθ的方法,令 θ = − θ \theta = - \theta θ=θ,代入欧拉公式,组成一个方程组:
{ e i θ = c o s θ + i s i n θ e − i θ = c o s θ − i s i n θ \left\{\begin{matrix} e^{i \theta} = cos \theta + i sin \theta \\ e^{-i \theta} = cos \theta - i sin \theta \end{matrix}\right. {eiθ=cosθ+isinθeiθ=cosθisinθ
两式相加得到 c o s θ cos \theta cosθ,两式相减得到 s i n θ sin \theta sinθ


将复数形式得到的 c o s θ cos \theta cosθ s i n θ sin \theta sinθ代入傅里叶级数展开函数,有:

f ( t ) = a 0 2 + ∑ n = 1 ∞ ( a n 2 ( e i n ω t + e − i n ω t ) − i b n 2 ( e i n ω t − e − i n ω t ) ) = a 0 2 + ∑ n = 1 ∞ ( a n − i b n 2 e i n ω t + a n + i b n 2 e − i n ω t ) = a 0 2 + ∑ n = 1 ∞ a n − i b n 2 e i n ω t + ∑ n = 1 ∞ a n + i b n 2 e − i n ω t \begin{align} f(t) & = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( \frac{a_n}{2} (e^{in \omega t} + e^{-i n \omega t}) - \frac{i b_n} {2} (e^{i n \omega t} - e^{-i n \omega t}) \right) \\ & = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( \frac{a_n - i b_n}{2} e^{in \omega t} + \frac{a _n + i b_n}{2} e^{-i n \omega t}\right) \\ & = \frac{a_0}{2} + \sum_{n=1}^{\infty} \frac{a_n - i b_n}{2} e^{in \omega t} + \sum_{n=1}^{\infty} \frac{a _n + i b_n}{2} e^{-i n \omega t} \end{align} f(t)=2a0+n=1(2an(einωt+einωt)2ibn(einωteinωt))=2a0+n=1(2anibneinωt+2an+ibneinωt)=2a0+n=12anibneinωt+n=12an+ibneinωt

对上式第三项,令 n = − n n=-n n=n,转换为:

f ( t ) = ∑ n = 0 0 a 0 2 e i n ω t + ∑ n = 1 ∞ a n − i b n 2 e i n ω t + ∑ n = − ∞ − 1 a − n + i b − n 2 e i n ω t f(t) = \sum_{n=0}^{0} \frac{a_0}{2} e^{i n \omega t} + \sum_{n=1}^{\infty} \frac{a_n - i b_n}{2} e^{in \omega t} + \sum_{n=- \infty}^{-1} \frac{a _{-n} + i b_{-n} } {2} e^{i n \omega t} f(t)=n=002a0einωt+n=12anibneinωt+n=12an+ibneinωt

可以发现在区间 ( − ∞ , ∞ ) (- \infty, \infty) (,)之间有共同项 e i n ω t e^{i n \omega t} einωt,令共同项的系数为 C n C_n Cn,那么就得到:

f ( t ) = ∑ − ∞ ∞ C n e i n ω t C n = { a 0 2 , n = 0 1 2 ( a n − i b n ) , n = 1 , 2 , 3 , . . . 1 2 ( a − n + i b − n ) , n = − 1 , − 2 , − 3 , . . . f(t) = \sum_{- \infty}^{\infty} C_n e^{in \omega t} \\ C_n = \left\{\begin{matrix} \frac{a_0}{2}, & n=0 \\ \frac{1}{2}\left( a_n - i b_n \right), & n= 1, 2,3,... \\ \frac{1}{2} \left ( a_{-n} + i b_{-n} \right), & n = -1, -2, -3, ... \end{matrix}\right. f(t)=CneinωtCn= 2a0,21(anibn)21(an+ibn)n=0n=1,2,3,...n=1,2,3,...

a 0 a_0 a0 a n a_n an b n b_n bn代入到 C n C_n Cn

f ( t ) = a 0 2 + ∑ n = 1 ∞ ( a n c o s n ω t + b n s i n n ω t ) a 0 = 2 T ∫ 0 T f ( t ) d t a n = 2 T ∫ 0 T f ( t ) c o s n ω t d t b n = 2 T ∫ 0 T f ( t ) s i n n ω t d t \begin{align} f(t) & = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( a_n cos n \omega t + b_n sin n \omega t \right) \\ a_0 & = \frac{2}{T} \int_{0}^{T} f(t) dt \\ a_n & = \frac{2}{T} \int_{0}^{T} f(t) cos n \omega t dt \\ b_n & = \frac{2} {T} \int_{0}^{T} f(t) sin n \omega t dt \end{align} f(t)a0anbn=2a0+n=1(ancost+bnsinnωt)=T20Tf(t)dt=T20Tf(t)costdt=T20Tf(t)sinnωtdt

n = 0 n=0 n=0时,

C n = a 0 2 = 1 2 ⋅ 2 T ∫ 0 T f ( t ) d t = 1 T ∫ 0 T f ( t ) d t C_n = \frac{a_0}{2} = \frac{1}{2} \cdot \frac{2}{T} \int_{0}^{T} f(t)dt = \frac{1}{T} \int_{0}^{T} f(t) dt Cn=2a0=21T20Tf(t)dt=T10Tf(t)dt

n > 0 , n ∈ Z n>0, n \in Z n>0,nZ时,

C n = 1 2 [ 2 T ∫ 0 T f ( t ) c o s n ω t d t − i 2 T ∫ 0 T f ( t ) s i n n ω t d t ] = 1 T ∫ 0 T f ( t ) ( c o s n ω t − s i n n ω t ) d t c o s n ω t − s i n n ω t = c o s ( − n ω t ) + s i n ( − n ω t ) = e − i n ω t C n = 1 T ∫ 0 T f ( t ) e − i n ω t d t C_n = \frac{1}{2}\left[ \frac{2}{T} \int_{0}^{T} f(t) cos n \omega t dt - i \frac{2} {T} \int_{0}^{T} f(t) sin n \omega t dt \right] \\ = \frac{1}{T} \int_{0}^{T} f(t) \left ( cos n \omega t - sin n \omega t \right) dt \\ cos n \omega t - sin n \omega t = cos (- n \omega t) + sin (- n \omega t) = e^{- i n \omega t} \\ C_n = \frac{1}{T} \int_{0}^{T} f(t) e^{- i n \omega t} dt Cn=21[T20Tf(t)costdtiT20Tf(t)sinnωtdt]=T10Tf(t)(costsinnωt)dtcostsinnωt=cos(t)+sin(t)=einωtCn=T10Tf(t)einωtdt

n < 0 , n ∈ Z n<0, n \in Z n<0,nZ时,

C n = 1 2 ( a − n + i b − n ) = 1 2 [ 2 T ∫ 0 T f ( t ) c o s ( − n ω t ) d t + i ⋅ 2 T ∫ 0 T f ( t ) s i n ( − n ω t ) d t ] = 1 T ∫ 0 T f ( t ) [ c o s ( − n ω t ) + s i n ( − n ω t ) ] d t = 1 T ∫ 0 T f ( t ) e − i n ω t C_n = \frac{1}{2} \left ( a_{-n} + i b_{-n} \right) \\ = \frac{1}{2} \left[ \frac{2}{T} \int_{0}^{T} f(t) cos \left( - n \omega t \right) dt + i \cdot \frac{2}{T} \int_{0}^{T} f(t) sin (- n \omega t) dt \right] \\ = \frac{1}{T}\int_{0}^{T} f(t) \left[ cos (- n \omega t) + sin (- n \omega t) \right] dt \\ = \frac{1}{T} \int_{0}^{T} f(t) e^{- i n \omega t} Cn=21(an+ibn)=21[T20Tf(t)cos(t)dt+iT20Tf(t)sin(t)dt]=T10Tf(t)[cos(t)+sin(t)]dt=T10Tf(t)einωt

n = 0 n=0 n=0时,

C n = 1 T ∫ 0 T f ( t ) d t = 1 T ∫ 0 T f ( t ) e − i n ω t d t C_n = \frac{1}{T} \int_{0}^{T} f(t) dt = \frac{1}{T} \int_{0}^{T} f(t) e^{- i n \omega t} dt Cn=T10Tf(t)dt=T10Tf(t)einωtdt

从上面可以看出来,在 ( − ∞ , ∞ ) (- \infty , \infty) (,)区间内, C n C_n Cn可以统一到一个形式: C n = 1 T ∫ 0 T f ( t ) e − i n ω t d t C_n = \frac{1}{T} \int_{0}^{T} f(t) e ^{- i n \omega t}dt Cn=T10Tf(t)einωtdt


总结,对于一个周期为 T T T的函数 f ( t ) = f ( t + T ) f(t) = f(t+T) f(t)=f(t+T),其复数形式的傅里叶展开函数为:
f ( t ) = ∑ − ∞ ∞ C n e i n ω t C n = 1 T ∫ 0 T f ( t ) e − i n ω t d t f(t) = \sum_{- \infty}^{\infty} C_n e^{i n \omega t} \\ C_n = \frac{1}{T} \int_{0}^{T} f(t) e^{- i n \omega t}dt f(t)=CneinωtCn=T10Tf(t)einωtdt


Part5:从傅里叶级数推导傅里叶变换

前面得到了周期函数复数形式的傅里叶展开函数,令 ω 0 = 2 π T \omega _0 = \frac{2 \pi}{T} ω0=T2π ω 0 \omega_0 ω0被称为基频率。

f T ( t ) = ∑ − ∞ ∞ C n e i n ω 0 t C n = 1 T ∫ − T 2 T 2 f T ( t ) e − i n ω 0 t d t 其中 n ∈ Z \begin{align} & f_T(t) = \sum_{- \infty}^{\infty} C_n e^{i n \omega_0 t} \\ & C_n = \frac{1}{T} \int_{- \frac{T}{2}}^{\frac{T}{2}} f_T(t) e^{- i n \omega_0 t}dt \\ & 其中n \in Z \end{align} fT(t)=Cneinω0tCn=T12T2TfT(t)einω0tdt其中nZ

对于一个周期函数,假设其图示如下,横坐标为 t t t,纵坐标为对应的值,这是在时域空间上的图。

在这里插入图片描述

如果采用如下图所示的坐标系,以 n ω 0 n \omega_0 nω0 x x x坐标,实轴和虚轴分别为 z z z y y y坐标,这是在频域空间上的图,也称为频谱图。可能其分布如下(如下值是随机绘制的,不对应上图,假设存在这样的频谱图)。

在这里插入图片描述

令两个频率之间的距离为 Δ ω \Delta \omega Δω,那么 Δ ω = ( n + 1 ) ω 0 − n ω 0 = ω 0 = 2 π T \Delta \omega = (n+1) \omega_0 - n \omega_0 = \omega_0 = \frac{2 \pi}{T} Δω=(n+1)ω0nω0=ω0=T2π,可以得到 1 T = Δ ω 2 π \frac{1}{T} = \frac{\Delta \omega}{2 \pi} T1=2πΔω

当周期 T T T趋近于 ∞ \infty 时,周期函数就变为了非周期函数 lim ⁡ T → ∞ f T ( t ) = f ( t ) \lim_{T \to \infty} f_T(t) = f(t) limTfT(t)=f(t) Δ ω \Delta \omega Δω就变成了0,从而离散函数变为了连续函数。

C n C_n Cn 1 T \frac{1}{T} T1代入到傅里叶级数展开函数:

f T ( t ) = ∑ − ∞ ∞ Δ ω 2 π ∫ − T 2 T 2 f T ( t ) e − i n ω 0 t d t e i n ω 0 t f_T(t) = \sum_{- \infty}^{\infty} \frac{\Delta \omega}{2 \pi} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t) e^{-i n \omega_0 t} dt e^{i n \omega_0 t} fT(t)=2πΔω2T2TfT(t)einω0tdteinω0t

T → ∞ T \to \infty T时,令 n ω 0 = ω n \omega_0 = \omega nω0=ω ∫ − T 2 T 2 d t → ∫ − ∞ ∞ d t \int_{- \frac{T}{2}}^{\frac{T}{2}} dt \to \int_{- \infty}^{\infty} dt 2T2Tdtdt ∑ − ∞ ∞ Δ ω → ∫ − ∞ ∞ d ω \sum_{- \infty}^{\infty} \Delta \omega \to \int_{- \infty}^{\infty} d \omega Δωdω。代入到上面的式子:

lim ⁡ T → ∞ f T ( t ) = f ( t ) = 1 2 π ∫ − ∞ ∞ ( ∫ − ∞ ∞ f ( t ) e − i ω t d t ) e i ω t d ω \lim_{T \to \infty} f_T(t) = f(t) = \frac{1}{2 \pi} \int_{- \infty}^{\infty} \left( \int_{- \infty}^{\infty} f(t) e^{- i \omega t} dt \right) e^{i \omega t} d \omega TlimfT(t)=f(t)=2π1(f(t)etdt)etdω

中间括号括起来的部分就是傅里叶变换函数 F ( ω ) = ∫ − ∞ ∞ f ( t ) e − i ω t d t F(\omega) = \int_{- \infty}^{\infty} f(t) e^{- i \omega t} dt F(ω)=f(t)etdt,而 f ( t ) = 1 2 π ∫ − ∞ ∞ f ( T ) e i ω t d ω f(t) = \frac{1}{2 \pi} \int_{- \infty}^{\infty} f(T) e^{i \omega t} d \omega f(t)=2π1f(T)etdω是傅里叶变换的逆变换。


总结

在Part1中,认识到三角函数系的正交性,有:

∫ − π π s i n n x c o s m x = 0 ∫ − π π c o s n x s i n m x = 0 ∫ − π π c o s n x c o s m x = { 0 , m ≠ n 2 π , m = n = 0 π , m = n ≠ 0 ∫ − π π s i n n x c o s m x = { 0 , m ≠ n 或 m = n = 0 π , m = n ≠ 0 \begin{align} & \int_{-\pi}^{\pi} sin n x cos m x = 0 \\ & \int_{- \pi}^{\pi}cos n x sin m x = 0 \\ & \int_{- \pi}^{\pi} cos n x cos m x = \left\{ \begin{matrix} 0 , & m \ne n \\ 2 \pi , & m = n =0 \\ \pi , & m = n \ne 0 \end{matrix} \right. \\ & \int_{- \pi}^{\pi} sin n x cos m x = \left\{ \begin{matrix} 0, & m \ne n 或 m = n =0 \\ \pi , & m = n \ne 0 \end{matrix} \right. \end{align} ππsinnxcosmx=0ππcosnxsinmx=0ππcosnxcosmx= 0,2π,π,m=nm=n=0m=n=0ππsinnxcosmx={0,π,m=nm=n=0m=n=0

在Part2中,推导了 T = 2 π T = 2 \pi T=2π的周期函数的傅里叶级数展开为:

f ( x ) = a 0 2 + ∑ n = 1 ∞ ( a n c o s n x + b n s i n n x ) f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty}\left( a_n cos nx + b_n sin nx \right) f(x)=2a0+n=1(ancosnx+bnsinnx)

计算 a 0 a_0 a0,对 f ( x ) f(x) f(x)在区间 [ − π , π ] [-\pi, \pi] [π,π]之间积分,得到 a 0 = 1 π ∫ − π π f ( x ) d x a_0 = \frac{1}{\pi} \int_{-\pi}^{\pi}f(x)dx a0=π1ππf(x)dx
计算 a n a_n an,等式两边同乘以 c o s m x cos mx cosmx,然后计算在 [ − π , π ] [- \pi, \pi] [π,π]之间的积分,得到 a n = 1 π ∫ − π π f ( x ) c o s n x d x a_n = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) cos nx dx an=π1ππf(x)cosnxdx

计算 b n b_n bn,等式两边同乘以 s i n m x sin mx sinmx,然后计算在 [ − π , π ] [-\pi, \pi] [π,π]之间的积分,得到 b n = 1 π ∫ − π π f ( x ) s i n n x d x b_n = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) sin nx dx bn=π1ππf(x)sinnxdx

在Part3中,推导了 T = 2 L T=2L T=2L的周期函数的傅里叶级数展开为,令 x = π L t → t = L π x x = \frac{\pi}{L}t \to t = \frac{L}{\pi}x x=Lπtt=πLx,将 x x x代入Part2中的公式,得到:

f ( t ) = a 0 2 + ∑ n = 1 ∞ ( a n c o s n π L t + b n s i n n π L t ) a 0 = 1 L ∫ − L L f ( t ) d t a n = 1 L ∫ − L L f ( t ) c o s n π L t d t b n = 1 L ∫ − L L f ( t ) s i n n π L d t \begin{align} & f(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left(a_n cos \frac{n \pi}{L}t + b_n sin \frac{n \pi}{L}t \right) \\ & a_0 = \frac{1}{L} \int_{-L}^{L} f(t) dt \\ & a_n = \frac{1}{L} \int_{-L}^{L} f(t) cos \frac{n \pi}{L}t dt \\ & b_n = \frac{1}{L} \int_{-L}^{L} f(t) sin \frac{n \pi}{L}dt \end{align} f(t)=2a0+n=1(ancosLt+bnsinLt)a0=L1LLf(t)dtan=L1LLf(t)cosLtdtbn=L1LLf(t)sinLdt

在Part4中,使用欧拉公式,用复指数的形式得到周期为 T T T的周期函数的傅里叶级数展开,该形式使得函数看起来更简洁,经过一系列变换,用 C n C_n Cn替代了上面复杂的系数,令 ω 0 = 2 π T \omega _0 = \frac{2 \pi}{T} ω0=T2π

f ( t ) = ∑ − ∞ ∞ C n e i n ω 0 t C n = 1 T ∫ 0 T f ( t ) e − i n ω 0 t d t f(t) = \sum_{- \infty}^{\infty} C_n e^{i n \omega_0 t} \\ C_n = \frac{1}{T} \int_{0}^{T} f(t) e^{-i n \omega_0 t}dt f(t)=Cneinω0tCn=T10Tf(t)einω0tdt

在Part5中,从傅里叶级数展开函数推导出傅里叶变换及反变换函数。当周期 T T T趋近于 ∞ \infty 时,周期函数会变为非周期函数,此时从离散数据变为了连续数据,令 ω = n ω 0 \omega = n \omega_0 ω=nω0;又有 ∑ − ∞ ∞ ω 0 → ∫ − ∞ ∞ d ω \sum_{- \infty}^{\infty} \omega_0 \to \int_{-\infty}^{\infty}d \omega ω0dω ∫ 0 T d t → ∫ − ∞ ∞ d t \int_{0}^{T} dt \to \int_{- \infty}^{\infty} dt 0Tdtdt,就得到非周期函数的傅里叶级数展开函数为:

f ( t ) = 1 2 π ∫ − ∞ ∞ ( ∫ − ∞ ∞ f ( t ) e − i ω t d t ) e i ω t d ω f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} \left ( \int_{- \infty}^{\infty} f(t)e ^{- i \omega t} dt \right) e^{i \omega t } d \omega f(t)=2π1(f(t)etdt)etdω

中间括号部分就是傅里叶变换函数$F(\omega) = \int_{- \infty}^{\infty} f(t) e^{-i \omega t} dt ,而 ,而 ,而f(t) = \frac{1}{2 \pi} \int_{- \infty}^{\infty}F(\omega) e^{i \omega t} d \omega$是傅里叶变换的逆变换。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SOLIDWORKS 2023中装配体配合的正确使用方法 硕迪科技

-SOLIDWORKS 装配体打开时是由不同的阶段和性能检查组成的。如果在创建装配体时未应用基本的配合方法&#xff0c;问题会随着时间的推移而累积&#xff0c;并且在使用时会出现明显的速度减慢。 如果您的装配体运行速度很慢&#xff0c;则很可能是在创建配合时出现了不良操作的症…

Nacos和GateWay路由转发NotFoundException: 503 SERVICE_UNAVAILABLE “Unable to find

问题再现&#xff1a; 2023-08-15 16:51:16,151 DEBUG [reactor-http-nio-2][CompositeLog.java:147] - [dc73b32c-1] Encoding [{timestampTue Aug 15 16:51:16 CST 2023, path/content/course/list, status503, errorService Unavai (truncated)...] 2023-08-15 16:51:16,17…

Vue的鼠标键盘事件

Vue的鼠标键盘事件 原生 鼠标事件(将v-on简写为) click // 点击 dblclick // 双击 mousedown // 按下 mousemove // 移动 mouseleave // 离开 mouseout // 移出 mouseenter // 进入 mouseover // 鼠标悬浮mousedown.left 键盘事件 keydown //键盘按下时触发 keypress …

SpringBoot3集成ElasticSearch

标签&#xff1a;ElasticSearch8.Kibana8&#xff1b; 一、简介 Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎&#xff0c;适用于各种数据类型&#xff0c;数字、文本、地理位置、结构化数据、非结构化数据&#xff1b; 在实际的工作中&#xff0c;历经过Ela…

Azure存储账户

存储账户的概念 Azure存储账户是Azure提供的一种云存储解决方案&#xff0c;用于存储和访问各种类型的数据&#xff0c;包括文件、磁盘、队列、表格和Blob&#xff08;二进制大对象&#xff09;数据。存储账户可以基于访问模式和冗余需求来选择不同的类型&#xff0c;以满足应…

【【Verilog典型电路设计之FIFO设计】】

典型电路设计之FIFO设计 FIFO (First In First Out&#xff09;是一种先进先出的数据缓存器&#xff0c;通常用于接口电路的数据缓存。与普通存储器的区别是没有外部读写地址线&#xff0c;可以使用两个时钟分别进行写和读操作。FIFO只能顺序写入数据和顺序读出数据&#xff0…

Python “贪吃蛇”游戏,在不断改进中学习pygame编程

目录 前言 改进过程一 增加提示信息 原版帮助摘要 pygame.draw pygame.font class Rect class Surface 改进过程二 增加显示得分 改进过程三 增加背景景乐 增加提示音效 音乐切换 静音切换 mixer.music.play 注意事项 原版帮助摘要 pygame.mixer pygame.mix…

OSPF在广播类型的网络拓扑中DR和BDR的选举

指定路由器&#xff08;DR&#xff09;&#xff1a; 一个网段上的其他路由器都和指定路由器&#xff08;DR&#xff09;构成邻接关系&#xff0c;而不是它们互相之间构成邻接关系。 备份指定路由器&#xff08;BDR&#xff09;&#xff1a; 当DR出现问题&#xff0c;由BDR接…

如何通过MAT排查生产环境服务内存溢出

前言 前段时间&#xff0c;运维反馈生产环境翻译服务某个节点触发内存告警了。运维在重启节点之前&#xff0c;生成了dump快照&#xff0c;这里介绍下如何使用MAT内存分析工具来排查服务内存高占用问题。 MAT简介 MAT是Memory Analyzer的简称&#xff0c;它是一款功能强大的…

微信小程序卡片横向滚动竖图

滚动并不是使用swiper&#xff0c;该方式使用的是scroll-view实现 Swiper局限性太多了&#xff0c;对竖图并不合适 从左往右滚动图片示例 wxml代码&#xff1a; <view class"img-x" style"margin-top: 10px;"><view style"margin: 20rpx;…

【办公自动化】使用Python批量生成PPT版荣誉证书

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

PyMuPDF`库实现PDF旋转功能

本文介绍了一个简单的Python应用程序&#xff0c;用于将PDF文件转换为旋转90度的PDF文件。主要用于csdn网站中导出的博客pdf是横向的&#xff0c;看起来不是很方便&#xff0c;才想到用python编制一个将pdf从横向转为纵向的功能。 功能 该PDF转换工具具有以下功能&#xff1a…

国产之光:讯飞星火最新大模型V2.0

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

【linux基础(四)】对Linux权限的理解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到开通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux权限 1. 前言2. shell命…

iPhone 15受益:骁龙8 Gen 3可能缺席部分安卓旗舰机

明年一批领先的安卓手机的性能可能与今年的机型非常相似。硅成本的上涨可能是原因。 你可以想象&#xff0c;2024年许多最好的手机都会在Snapdragon 8 Gen 3上运行&#xff0c;这是高通公司针对移动设备的顶级芯片系统的更新&#xff0c;尚未宣布。然而&#xff0c;来自中国的…

python+django+mysql项目实践四(信息修改+用户登陆)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 用户信息修改 修改用户信息需要显示原内容,进行修改 通过url传递编号 urls views 修改内容需要用数据库的更新,用update进行更新,用filter进行选择 输入参数多nid,传递要修…

448. 找到所有数组中消失的数字

自己思路代码&#xff1a; class Solution { public:vector<int> findDisappearedNumbers(vector<int>& nums) {int n nums.size();int hashTable[100010] {0};int i 0;for(i 0; i < nums.size(); i){hashTable[nums[i]];}vector<int> ans;for(i…

leetcode 415.字符串相加

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;https://leetcode.cn/problems/add-strings/description/ ps&#xff1a; 从两个字符串的末尾开始遍历&#xff0c;依次相加&#xff0c;若大于等于 10 则使用一个变量记录进位&#xff0c;遍历的时候若两个字符串其中一…

IDEA两种方法修改生成的jar包名字

方法一&#xff1a; 直接修改pom文件中的如下部分 <artifactId>excelreport</artifactId> <version>0.0.1-SNAPSHOT</version> <name>excelreport</name> <description>excelreport</description> 修改完成后&#xff0c;点…

时尚易用的健康手表,时刻关注身体状况,dido E56S Max体验

智能手表的功能大多只限于显示时间和记录运动数据、睡眠质量等简单的任务&#xff0c;除了漂亮的表盘&#xff0c;其他实质性的提升并不多&#xff0c;而对于重视健康的朋友来说&#xff0c;更需要的是一块能够时刻监测血氧、血压、血糖等身体数据的智能手表。 现在我用的这块d…