音频进阶学习九——离散时间傅里叶变换DTFT

文章目录


前言

按照傅里叶发展的历史,本应该先介绍傅里叶级数,但是由于DTFT更通用,且DTFT是属于核心理论,而DFS是DTFT的一种特列,所以该系列文章中先介绍DTFT,也就是离散时间傅里叶变换。

|版本声明:山河君,未经博主允许,禁止转载


一、DTFT的解释

1.DTFT公式

看一下DTFT和CFT也就是连续傅里叶变换的对比:

  • DTFT
    X ( ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n X(\omega)=\sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n} X(ω)=n=x[n]ejωn
  • CFT
    F ( ω ) = ∫ − ∞ ∞ f ( t ) e − j ω t d t F(\omega)=\int^{\infty}_{-\infty}f(t)e^{-j\omega t}dt F(ω)=f(t)etdt

对比CFT,我们可以看到DTFT和CFT的差别在于,一个自变量是 n n n,一个自变量是 t t t,一个是非连续一个是连续。所以二者对比:

  • 连续信号:在CFT中,频率是连续变量,频谱 F ( ω ) F(\omega) F(ω)对应的是一个实数角频率 ω \omega ω,直接描述频率分量。
  • 离散信号: 在 DTFT ( 包括DFT) 中,由于信号是离散的,频谱的周期性引入了单位圆上的频率表示。对于 X ( ω ) X(\omega) X(ω)写作 X ( e j ω ) X(e^{j\omega}) X(e),所以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

2.DTFT右边释义

对于DTFT右边 ∑ n = − ∞ ∞ x [ n ] e − j ω n \sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n} n=x[n]ejωn我们来一步步分析这个公式的作用。

1) 复指数 e − j ω n e^{-j\omega n} ejωn

上一篇文章中,我们用欧拉公式将极坐标表示为复指数形式:
e j θ = cos ⁡ ( θ ) + j sin ⁡ ( θ ) e^{j\theta}=\cos(\theta)+j\sin(\theta) ejθ=cos(θ)+jsin(θ)
由此可以得到
e − j ω n = > cos ⁡ ( j ω n ) − j s i n ( ω n ) e^{-j\omega n}=>\cos(j\omega n)-jsin(\omega n) ejωn=>cos(jωn)jsin(ωn)

  • 实部: cos ⁡ ( j ω n ) \cos(j\omega n) cos(jωn)是以频率 ω \omega ω的余弦震荡
  • 虚部: s i n ( ω n ) sin(\omega n) sin(ωn)是以频率 ω \omega ω的正弦震荡

它表示的含义是随着 n n n的增长,以频率 ω \omega ω在一个单位圆上以顺时针方式进行周期震荡,如下图:

  • n n n代表时间 t t t [ 0 , 5 ] [0,5] [0,5]区间上的变换
  • Z Z Z的指向是极坐标
  • I m Im Im是虚部比变化
  • R e Re Re是实部变化
    在这里插入图片描述

2)序列与复指数相乘 x [ n ] ∗ e − j ω n x[n]*e^{-j\omega n} x[n]ejωn

复指数序列

在上一篇文章中,我们说 z = r ∗ e i θ z=r*e^{i\theta} z=reiθ表示了极坐标的旋转, r r r代表了模长,而 x [ n ] ∗ e − j ω n x[n]*e^{-j\omega n} x[n]ejωn x [ n ] x[n] x[n]可以是实数和虚数,所以对于 x [ n ] ∗ e − j ω n x[n]*e^{-j\omega n} x[n]ejωn值得注意的是,应该理解为对于 x [ n ] x[n] x[n]进行旋转 − ω n -\omega n ωn角度,而不是理解为模长。

而对于整个 x [ n ] x[n] x[n]的旋转,我们得到的是对于以某一个频率 ω \omega ω旋转了 − ω n -\omega n ωn角度的新的序列,这就叫做复指数序列。其中对于 e − j ω n e^{-j\omega n} ejωn我们看作是对于复指数序列的基函数。

复数的共轭

对于一个复数 z = a + b i z=a+bi z=a+bi,它的共轭复数为 z ‾ = a − b i \overline{z}=a-bi z=abi

  • 复数共轭的几何意义是以实轴为对称轴反射。
  • 共轭复数在许多计算中很重要,例如求复数的模: ∣ z ∣ = z ∗ z ‾ |z|=\sqrt{z*\overline{z}} z=zz ,展开来为:
    ( a + b i ) ∗ a ( − b i ) = a 2 − a b i + a b i − b 2 ∗ i 2 , ( i 2 = − 1 ) = > a 2 + b 2 (a+bi)*a(-bi)=a^2-abi+abi-b^2*i^2,\quad (i^2=-1)=>a^2+b^2 (a+bi)a(bi)=a2abi+abib2i2,(i2=1)=>a2+b2

复数空间的内积使用了共轭来确保以下性质:

  • 共轭对称性
    < f , g > = < g , f > ‾ <f,g>=\overline{<g,f>} <f,g>=<g,f>
  • 非负性
    < f , f > ≥ 0 <f,f> \geq 0 <f,f>≥0
正交

正交:在数学中,正交(orthogonality)通常用于描述两个向量或函数之间的一种关系,表示它们彼此垂直或互不相关。

  • 向量正交:在欧几里得空间中,两个向量 u , v u,v u,v 如果它们的内积为 0,则称它们是正交的,即: u ∗ v = 0 u*v=0 uv=0
  • 函数正交:两个函数 f ( x ) , g ( x ) f(x),g(x) f(x),g(x)在区间 [ a , b ] [a,b] [a,b]上内积为0,表示为函数正交,即: < f , g > = ∫ a b f ( x ) g ( x ) ∗ d x = 0 <f,g>=\int_a^bf(x)g(x)^*dx =0 <f,g>=abf(x)g(x)dx=0

正交意味着在平面上,角度为90°,例如 ( 1 , i ) , ( 1 , − i ) (1,i),(1,-i) (1,i),(1,i)
在这里插入图片描述

正交集

正交集是由一组两两正交的向量或函数组成的集合。在这种集合中,任意两个不同的元素的内积为 0。而对于复指数序列的基函数 e − j ω n e^{-j\omega n} ejωn则有:
< e − j ω l n , e − j ω m n > = ∑ n = 0 N − 1 e − j ω l n ∗ ( e − j ω m n ) ∗ ( e − j ω m n ) ∗ = e j ω m n , 由于复共轭 < e − j ω l n , e − j ω m n > = ∑ n = 0 N − 1 e − j ω l n ∗ e j ω m n = > ∑ n = 0 N − 1 e j ( ω m − ω l ) n <e^{-j\omega_l n}, e^{-j\omega_m n}>=\sum_{n=0}^{N-1}e^{-j\omega_l n}* (e^{-j\omega_m n})^*\\ (e^{-j\omega_m n})^*=e^{j\omega_m n},\quad 由于复共轭 \\ <e^{-j\omega_l n}, e^{-j\omega_m n}>=\sum_{n=0}^{N-1}e^{-j\omega_l n}*e^{j\omega_m n} =>\\ \sum_{n=0}^{N-1}e^{j(\omega_m-\omega_l)n} <ejωln,ejωmn>=n=0N1ejωln(ejωmn)(ejωmn)=ejωmn,由于复共轭<ejωln,ejωmn>=n=0N1ejωlnejωmn=>n=0N1ej(ωmωl)n
ω m ≠ ω l \omega_m\neq \omega_l ωm=ωl时, e j ( ω m − ω l ) n e^{j(\omega_m-\omega_l)n} ej(ωmωl)n表示的是一个周期性复数,几何上表示在复平面上绕原点画圆,如同上文中对于 e − j ω n e^{-j\omega n} ejωn解释的图像,所以对于累加和 ∑ n = 0 N − 1 e j ( ω m − ω l ) n \sum_{n=0}^{N-1}e^{j(\omega_m-\omega_l)n} n=0N1ej(ωmωl)n为0。

也就是说对于任意复指数序列的基函数,当 ω m ≠ ω l \omega_m\neq \omega_l ωm=ωl时,两者之间相互不影响,这也正是DTFT使用复指数来进行运算的原因!

3)复指数序列求和

DTFT右边对于复指数序列为什么要进行求和,即 ∑ n = − ∞ ∞ x [ n ] e − j ω n \sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n} n=x[n]ejωn

上面我们说了对于任意复指数序列的基函数,当 ω m ≠ ω l \omega_m\neq \omega_l ωm=ωl时,两者之间相互不影响。所以对于 x [ n ] ∗ e − j ω n x[n]*e^{-j\omega n} x[n]ejωn中,对于某一个 ω k \omega_k ωk x [ n ] ∗ e − j ω k n x[n]*e^{-j\omega_k n} x[n]ejωkn中,将不会包含其他频率的影响。

在欧几里得空间中,投影的定义是: 投影 = < v ∗ u > u 投影=<v*u>u 投影=<vu>u,其中

  • v v v 是要投影的向量
  • u u u是基向量
  • ⟨ v , u ⟩ ⟨v,u⟩ v,u 是内积,量化了 v v v u u u的相似程度

而对于复指数序列投影,则有:
< x [ n ] , e − j ω n > = ∑ n = − ∞ ∞ x [ n ] ∗ e − j ω n ‾ e − j ω n ‾ = e j ω n 共轭性 < x [ n ] , e − j ω n > = ∑ n = − ∞ ∞ x [ n ] e − j ω n <x[n],e^{-j\omega n}>=\sum_{n=-\infty}^{\infty}x[n]*\overline{e^{-j\omega n}} \\ \overline{e^{-j\omega n}} =e^{j\omega n} 共轭性\\ <x[n],e^{-j\omega n}> =\sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n} <x[n],ejωn>=n=x[n]ejωnejωn=ejωn共轭性<x[n],ejωn>=n=x[n]ejωn
其实就是DTFT函数,它的目的就是为了不同频率之间的影响。即如果 < x [ n ] , e − j ω k n > = ∑ n = − ∞ ∞ x [ n ] e − j ω k n = 0 <x[n],e^{-j\omega_k n}> =\sum_{n=-\infty}^{\infty}x[n]e^{-j\omega_k n}=0 <x[n],ejωkn>=n=x[n]ejωkn=0,那么序列 x [ n ] x[n] x[n]对于频率 ω k \omega_k ωk没有影响。

3.DTFT左边边释义

1)实部与虚部

上文中解释了DTFT函数的由来,即 ∑ n = − ∞ ∞ x [ n ] e − j ω n \sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n} n=x[n]ejωn可以看作是对信号进行“投影”,找出信号与每个频率基函数的匹配程度。那么如果
< x [ n ] , e − j ω k n > = ∑ n = − ∞ ∞ x [ n ] e − j ω k n ≠ 0 <x[n],e^{-j\omega_k n}> =\sum_{n=-\infty}^{\infty}x[n]e^{-j\omega_k n}\neq 0 <x[n],ejωkn>=n=x[n]ejωkn=0这个值我们表示为 X ( ω k ) X(\omega_k) X(ωk)有什么含义?或者说有什么作用?

我们知道对于欧拉公式:
e j θ = cos ⁡ ( θ ) + j sin ⁡ ( θ ) e^{j\theta}=\cos(\theta)+j\sin(\theta) ejθ=cos(θ)+jsin(θ)
它的实部表示了相位(两波之间的时间或空间偏移),虚部表示了幅度,那么对于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
其中复指数通过欧拉公式得到
e − j ω n = cos ⁡ ( ω n ) − j sin ⁡ ( ω n ) e^{-j\omega n}=\cos(\omega n)-j\sin(\omega n) ejωn=cos(ωn)jsin(ωn)
因此DTFT可以拆解为:
X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] ( cos ⁡ ( ω n ) − j sin ⁡ ( ω n ) ) X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] cos ⁡ ( ω n ) ⏟ R e ( X ( e j ω ) ) − ∑ n = − ∞ ∞ x [ n ] j sin ⁡ ( ω n ) ⏟ I e ( X ( e j ω ) ) X(e^{j\omega})=\sum_{n=-\infty}^{\infty}x[n](\cos(\omega n)-j\sin(\omega n)) \\ X(e^{j\omega})=\underbrace{\sum_{n=-\infty}^{\infty}x[n]\cos(\omega n)}_{Re(X(e^{j\omega}))}-\underbrace{\sum_{n=-\infty}^{\infty}x[n]j\sin(\omega n)}_{Ie(X(e^{j\omega}))} X(e)=n=x[n](cos(ωn)jsin(ωn))X(e)=Re(X(e)) n=x[n]cos(ωn)Ie(X(e)) n=x[n]jsin(ωn)

  • R e ( X ( e j ω ) Re(X(e^{j\omega}) Re(X(e)是实部
  • I m ( X ( e j ω ) Im(X(e^{j\omega}) Im(X(e)是虚部

2)幅度与相位

  • 幅度:幅度是频谱中每个频率分量的强度或大小,实部和虚部的模长,可以得出该频率分量的幅度。使用 ∣ X ( e j ω ) ∣ |X(e^{j\omega})| X(e)表示信号在频率 ω \omega ω处的能量强度或振幅
    ∣ X ( e j ω ) ∣ = R e ( X ( e j ω ) 2 + I m ( X ( e j ω ) 2 |X(e^{j\omega})|=\sqrt{Re(X(e^{j\omega})^2+Im(X(e^{j\omega})^2} X(e)=Re(X(e)2+Im(X(e)2
  • 相位:相位是频谱中每个频率分量相对于其他频率分量的相位偏移,通过实部和虚部的比值,可以计算相位。使用 arg ⁡ ( X ( e j ω ) ) 或 ∠ ( X ( e j ω ) ) \arg(X(e^{j\omega}))或\angle(X(e^{j\omega})) arg(X(e))(X(e))表示:
    ∠ ( X ( e j ω ) ) = tan ⁡ − 1 I m ( X ( e j ω ) R e ( X ( e j ω ) \angle(X(e^{j\omega}))=\tan^{-1}\frac{Im(X(e^{j\omega})}{Re(X(e^{j\omega})} (X(e))=tan1Re(X(e)Im(X(e)

二、IDTFT

1.逆离散时间的傅里叶变换

上文中我们使用的傅里叶变换将序列从时域转成了频域,那么从频域恢复到时域我们成为逆傅里叶变换,逆离散时间的傅里叶变换表示为IDTFT。
在这里插入图片描述
它的公式为:
x [ n ] = 1 2 π ∫ − π π X ( e j ω ) e j ω n d ω x[n]=\frac{1}{2\pi}\int_{-\pi}^{\pi}X(e^{j\omega})e^{j\omega n}d\omega x[n]=2π1ππX(e)ejωndω

2.IDTFT验证

我们将 X ( e j ω ) X(e^{j\omega}) X(e)代入到公式中:
x [ n ] = 1 2 π ∫ − π π ( ∑ k = − ∞ ∞ x [ k ] e − j ω k ) e j ω n d ω x[n]=\frac{1}{2\pi}\int_{-\pi}^{\pi}\big(\sum_{k=-\infty}^{\infty}x[k]e^{-j\omega k}\big)e^{j\omega n}d\omega x[n]=2π1ππ(k=x[k]ejωk)ejωndω
根据之前文章积分和求和的特性
x [ n ] = ∑ k = − ∞ ∞ x [ k ] ( 1 2 π ∫ − π π e − j ω ( n − k ) d w ) x[n]=\sum_{k=-\infty}^{\infty}x[k]\big(\frac{1}{2\pi}\int_{-\pi}^{\pi}e^{-j\omega (n-k)}dw\big) x[n]=k=x[k](2π1ππe(nk)dw)
先看积分项
1 2 π ∫ − π π e − j ω ( n − k ) d w \frac{1}{2\pi}\int_{-\pi}^{\pi}e^{-j\omega (n-k)}dw 2π1ππe(nk)dw

  • k = n k=n k=n时:
    1 2 π ∫ − π π e − j ω ( n − k ) d w = 1 2 π ∫ − π π 1 d w = 1 \frac{1}{2\pi}\int_{-\pi}^{\pi}e^{-j\omega (n-k)}dw=\frac{1}{2\pi}\int_{-\pi}^{\pi}1dw=1 2π1ππe(nk)dw=2π1ππ1dw=1
  • k ≠ n k\neq n k=n时,上文中说过,因为 e j ( ω m − ω l ) n e^{j(\omega_m-\omega_l)n} ej(ωmωl)n表示的是一个周期性复数,其积分结果为零:
    1 2 π ∫ − π π e − j ω ( n − k ) d w = 1 2 π ∗ 0 = 0 \frac{1}{2\pi}\int_{-\pi}^{\pi}e^{-j\omega (n-k)}dw=\frac{1}{2\pi}*0=0 2π1ππe(nk)dw=2π10=0

因此
1 2 π ∫ − π π e − j ω ( n − k ) d w = { 1 , n = k 0 , n ≠ k \frac{1}{2\pi}\int_{-\pi}^{\pi}e^{-j\omega (n-k)}dw=\begin{cases}1,\quad n=k \\ 0,\quad n\neq k\end{cases} 2π1ππe(nk)dw={1,n=k0,n=k
我们用单位脉冲 δ \delta δ表示0,1,所以可以得到
x [ n ] = ∑ k = − ∞ ∞ x [ k ] δ [ n − k ] x[n]=\sum_{k=-\infty}^{\infty}x[k]\delta[n-k] x[n]=k=x[k]δ[nk]
有没有看起来很熟悉,这不就是冲激分解,使用单位冲激序列表示的加权和


总结

本篇文章中,我们对于DTFT做了深入的了解,附带着介绍了一些使用的数学知识,同时得到了IDTFT的公式。受到篇幅限制,本章只对DTFT公式进行了展示,并没有深入了解DTFT存在的条件和性质,那么在下一篇文章中会进行进一步介绍DTFT相关性质和条件。

如果对您有所帮助,请帮忙点个赞吧!

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

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

相关文章

【保姆级】sql注入之堆叠注入

一、堆叠注入的原理 mysql数据库sql语句的默认结束符是以";"号结尾&#xff0c;在执行多条sql语句时就要使用结束符隔 开,而堆叠注入其实就是通过结束符来执行多条sql语句 比如我们在mysql的命令行界面执行一条查询语句,这时语句的结尾必须加上分号结束 select * fr…

我的桌面 1.9.75 | 个性化定制手机桌面,丰富的小组件和主题

我的桌面iScreen是一款万能桌面小组件APP&#xff0c;提供各种高颜值桌面主题与创意小组件自由组合。支持X面板、照片、待办清单、时钟、日历等实用有趣的小组件。拥有超过500种小组件供选择&#xff0c;包括灵动面板、滚动相册等&#xff0c;搭配300多种精美主题和高清壁纸&am…

汽车燃油软件标定测试

油箱测试 确定油箱的参数&#xff1a; 总容积&#xff0c;额定容积&#xff0c;不可用容积等。油泵测试&#xff08;静态&#xff09; 分为加油测试&#xff0c;减油测试&#xff0c;1L或者500ml增减&#xff1b; 分别测试油泵的阻值输出&#xff0c;类似&#xff1a; 油量 阻…

07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)

目录 1、综述2、sceneview.qualitySettings2.1、sceneview.qualitySettings.memoryLimit2.2、lodFactor2.3 additionalCacheMemory 3、结论 1、综述 先上重点&#xff0c;SceneView.qualitySettings为隐藏对象参数&#xff0c;该对象的memoryLimit和lodFactor等值&#xff0c;…

信息科技伦理与道德1:研究方法

1 问题描述 1.1 讨论&#xff1f; 请挑一项信息技术&#xff0c;谈一谈为什么认为他是道德的/不道德的&#xff0c;或者根据使用场景才能判断是否道德。判断的依据是什么&#xff08;自身的道德准则&#xff09;&#xff1f;为什么你觉得你的道德准则是合理的&#xff0c;其他…

交换机关于环路、接口绑定、链路聚合的相关知识

文章目录 1、对交换机SW-1进行配置&#xff0c;仅允许Host-1通过Ethernet0/0/1接口与Host-3和Host-4通信&#xff0c;Host-2无法与其他主机通信。2、关闭生成树协议&#xff0c;验证环路造成的影响3、关闭生成树协议通过链路聚合实现两条链路正常通信并提高链路可靠性。 内容包…

QEMU网络配置简介

本文简单介绍下qemu虚拟机网络的几种配置方式。 通过QEMU的支持&#xff0c;常见的可以实现以下4种网络形式&#xff1a; 基于网桥&#xff08;bridge&#xff09;的虚拟网络。基于NAT&#xff08;Network Addresss Translation&#xff09;的虚拟网络。QEMU内置的用户模式网…

(二)当人工智能是一个函数,函数形式怎么选择?ChatGPT的函数又是什么?

在上一篇文章中&#xff0c;我们通过二次函数的例子&#xff0c;讲解了如何训练人工智能。今天&#xff0c;让我们进一步探讨&#xff1a;面对不同的实际问题&#xff0c;应该如何选择合适的函数形式&#xff1f; 一、广告推荐系统中的函数选择 1. 业务目标 想象一下&#x…

CentOS — 目录管理

文章目录 一、目录结构二、切换目录三、查看目录四、创建目录五、复制目录六、剪切目录七、删除目录 目录也是一种文件。 蓝色目录&#xff0c;绿色可执行文件&#xff0c;红色压缩文件&#xff0c;浅蓝色链接文件&#xff0c;灰色其它文件&#xff0c; 点开头的是隐藏文件&…

2025加密风云:行业变革与未来趋势全景透视

引言 2024年是加密行业发展历程中的重要一年&#xff0c;诸多事件和趋势为未来的发展奠定了基础。随着全球政策环境的变化、技术的不断进步以及市场参与者的多样化&#xff0c;加密行业在2025年将迎来新的转型与挑战。这篇文章将从政策、技术、市场、应用以及社会影响等多个角…

什么是.net framework,什么是.net core,什么是.net5~8,版本对应关系

我不知道有多少人和我一样&#xff0c;没学习过.netCore&#xff0c;想要学习&#xff0c;但是版本号太多就蒙了&#xff0c;不知道学什么了&#xff0c;这里解释下各个版本的关系 我们一般开始学习微软的时候&#xff0c;都是开始学习的.netframework&#xff0c;常用的就是4…

tcpdump指南(1)

大家读完觉得有意义记得关注和点赞&#xff01;&#xff01;&#xff01; tcpdump是一种在网络上转储流量的网络工具。 这篇文章服务器作为一些常用命令的指南。如需完整指南&#xff0c; 请参阅手册页&#xff0c;或在 Linux 计算机上。man tcpdump 1 基本选项 帮助摘要&#…

如何利用 ClickHouse 实现高级分析:MySQL 到 ClickHouse 实时数据同步指南

在数据驱动的时代&#xff0c;企业必须依靠先进的数据分析能力来提升竞争力。随着数据量的激增和业务需求的复杂化&#xff0c;传统的关系型数据库已经无法满足高效处理和实时分析的需求。ClickHouse 作为一款高性能的列式数据库&#xff0c;凭借其卓越的查询性能和可扩展性&am…

UniApp | 从入门到精通:开启全平台开发的大门

UniApp | 从入门到精通:开启全平台开发的大门 一、前言二、Uniapp 基础入门2.1 什么是 Uniapp2.2 开发环境搭建三、Uniapp 核心语法与组件3.1 模板语法3.2 组件使用四、页面路由与导航4.1 路由配置4.2 导航方法五、数据请求与处理5.1 发起请求5.2 数据缓存六、样式与布局6.1 样…

MySQL8安装与卸载

1.下载mysql MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 2.解压mysql安装包 解压到自己定义的目录&#xff0c;这里解压就是安装&#xff0c;解压后的路径不要有空格和中文。 3.配置环境变量 配置环境变量可以方便电脑在任何的路径…

2025.01.02(数据库)

作业&#xff1a;实现以下功能&#xff1a; 1> 创建一个工人信息库&#xff0c;包含工号&#xff08;主键&#xff09;、姓名、年龄、薪资。 2> 添加三条工人信息&#xff08;可以完整信息&#xff0c;也可以非完整信息&#xff09; 3> 修改某一个工人的薪资&#…

df.groupby()方法使用表达式分组

# 索引值是否为偶数&#xff0c;分成两组 df.groupby(lambda x:x%20).sum() df.groupby(df.index%20).sum() # 同上这两个写法看似相似&#xff0c;确实都基于索引值来进行分组&#xff0c;但在实现方式上有细微的区别&#xff1a; df.groupby(lambda x: x % 2 0) 这种方式通过…

景区自助售卡机与定点酒店的合作双赢之策-景区酒店方案

一、景区与酒店合作资源优势 1. 提升游客体验&#xff1a;游客在规划旅行时&#xff0c;可以一次性解决住宿和景区游览的安排&#xff0c;减少预订环节的繁琐&#xff0c;提供更便捷、顺畅的旅行体验。 2. 增加游客停留时间&#xff1a;通过联合推广&#xff0c;吸引游客在景区…

RK3588+FPGA全国产异步LED显示屏控制卡/屏幕拼接解决方案

RK3588FPGA核心板采用Rockchip RK3588新一代旗舰 级八核64位处理器&#xff0c;支持8K视频编解码&#xff0c;多屏4K输出&#xff0c;可实现12屏联屏拼接、同显、异显&#xff0c;适配多种操作系统&#xff0c;广泛适用于展览展示、广告内容投放、新零售、商超等领域实现各种媒…

双指针算法详解

目录 一、双指针 二、双指针题目 1.移动零 解法&#xff1a; 代码&#xff1a; 2.复写零 ​编辑 解法&#xff1a; 代码&#xff1a; 边界情况处理: 3.快乐数 ​编辑 解法:快慢指针 代码&#xff1a; 4.盛水最多的容器 解法&#xff1a;&#xff08;对撞指针&#xff09;…