信号与系统(Python) 学习笔记 (5) 离散傅里叶 Discrete Fourier

C++实现离散傅里叶变换:从数学公式到频谱分析实战 离散傅里叶变换是信号处理领域的核心数学工具,它将时域信号转换为频域表示,揭示了信号的频率成分。其原理基于复指数函数的正交性,通过计算信号与不同频率基函数的内积来分解频谱。在工程实践中,DFT为音频处理、图像分析和通信系统提供了关键的频域分析能力。本文以C++为工具,详细展示了如何将DFT的数学公式转化为可执行的代码,并探讨了其在频谱分析中的具体应用。通过实现基础DFT函数和逆变换,读者可以深入理解复数运算、算法复杂度等关键概念,并掌握验证代码正确性的方法。项目进一步涉及幅度谱计算和性能优化方向,为学习更高效 阅读详情

5. 离散傅里叶 Discrete Fourier

5.1. 傅里叶变换特性

变换
Transform
时域时域特性
Time Domain
频域频域特性
Frequency Domain
傅里叶变换
(FT)
Fourier Transform
FT1连续
非周期
x ( t ) = 1 2 π ∫ − ∞ ∞ X ( j ω ) e j ω t d ω \displaystyle x({\color{red}t}) = \frac{1}{2\pi}\int^{\infty}_{-\infty}X(j\omega)e^{j\omega {\color{red}t}}d\omega x(t)=2π1​∫−∞∞​X(jω)ejωtdω
FT2连续
非周期
X ( j ω ) = ∫ − ∞ ∞ x ( t ) e − j ω t d t \displaystyle X({\color{red}j\omega}) = \int^{\infty}_{-\infty}x(t)e^{{\color{red}-j\omega} t}dt X(jω)=∫−∞∞​x(t)e−jωtdt
傅里叶级数
(FS)
Fourier Series
FS1连续
周期
x ~ ( t ) = ∑ k = − ∞ ∞ X ( j k Ω ) e j k Ω t \displaystyle \tilde{x}({\color{red}t}) = \sum^{\infty}_{k = -\infty} X(jk\Omega)e^{jk\Omega {\color{red}t}} x~(t)=k=−∞∑∞​X(jkΩ)ejkΩt
FS2离散
非周期
X ( j k Ω ) = 1 T ∫ 0 T x ~ ( t ) e − j k Ω t d t \displaystyle X( {\color{red}jk\Omega}) = \frac{1}{T} \int^{T}_{0} \tilde{x}(t) e^{{\color{red}-jk\Omega} t} dt X(jkΩ)=T1​∫0T​x~(t)e−jkΩtdt
离散时间傅里叶变换
(DTFT)
Discrete Time Fourier Transform
DTFT1离散
非周期
x [ n ] = 1 2 π ∫ − π π X ( j ω ) e j ω n d ω \displaystyle x[{\color{red}n}] = \frac{1}{2\pi}\int^{\pi}_{-\pi}X(j\omega)e^{j\omega {\color{red}n}}d\omega x[n]=2π1​∫−ππ​X(jω)ejωndω
DTFT2连续
周期
X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n \displaystyle X(e^{ {\color{red}j\omega}}) = \sum^{\infty}_{n=-\infty} x[n] e^{{\color{red}-j\omega} n} X(ejω)=n=−∞∑∞​x[n]e−jωn
离散傅里叶级数
(DFS)
Discrete Fourier Series
DFS1离散
周期
x ~ [ n ] = ∑ k = 0 N − 1 X ~ [ k ] e j 2 π N k n \displaystyle \tilde{x}[{\color{red}n}] = \sum^{N-1}_{k=0} \tilde{X}[k]e^{j\frac{2\pi}{N}k{\color{red}n}} x~[n]=k=0∑N−1​X~[k]ejN2π​kn
− ∞ < n < + ∞ -\infty < {\color{red}n}< +\infty −∞<n<+∞
DFS2离散
周期
X ~ [ k ] = 1 N ∑ n = 0 N − 1 x ~ [ n ] e − j 2 π N k n \displaystyle \tilde{X}[{\color{red}k}] = \frac{1}{N}\sum^{N-1}_{n=0} \tilde{x}[n]e^{ {\color{red}-}j\frac{2\pi}{N}{\color{red}k}n} X~[k]=N1​n=0∑N−1​x~[n]e−jN2π​kn
− ∞ < k < + ∞ -\infty < {\color{red}k}< +\infty −∞<k<+∞
离散傅里叶变换
(DFT)
Discrete Fourier Transform
DFT1离散
非周期
x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] e j 2 π N k n \displaystyle x[{\color{red}n}] = \frac{1}{N} \sum^{N-1}_{k=0} X[k]e^{j\frac{2\pi}{N}k{\color{red}n}} x[n]=N1​k=0∑N−1​X[k]ejN2π​kn 0 < n < N − 1 0 < {\color{red}n}< N-1 0<n<N−1
DFT2离散
非周期
X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π N k n \displaystyle X[{\color{red}k}] = \sum^{N-1}_{n=0} x[n]e^{ {\color{red}-}j\frac{2\pi}{N}{\color{red}k}n} X[k]=n=0∑N−1​x[n]e−jN2π​kn 0 < k < N − 1 0 < {\color{red}k}< N-1 0<k<N−1
  • 说明:
    • 除离散傅里叶变换外,若某个信号在时域(或频域)内是周期的,则经变换 (或反变换)后其变换结果在频域(或时域)内是离散的;若信号在时域(或频域)内是离散的,则其变换(或反变换)结果在频域(或时域)内是周期的。
    • 周期性和离散性呈现出对偶关系。
    • 离散傅里叶变换则提供了一种在时域和频域内均是离散的信号变换方法。

5.2. 傅里叶变换中连续到离散的演化

5.2.1 演化 离散时间傅里叶变换(DTFT)

F ( j ω ) = ∫ − ∞ ∞ f ( t ) e − j ω t d t F(j\omega) = \int^{\infty}_{-\infty} f(t) e^{-j\omega t} dt F(jω)=∫−∞∞​f(t)e−jωtdt

  • 傅里叶变换式中,不论在时域还是在频域,信号都是连续的。

  • 但以计算机为代表的数字处理系统只能存储和处理有限长度的离散数字信号,且无法直接进行连续积分运算。

  • 所以需要对信号离散化。

  • 由采样定理知,序列可以看作在满足采样定理的条件下对连续信号进行采样得到,则有:
    X ( j ω ) = ∑ n = − ∞ ∞ x [ n ⋅ Δ t ] e − j ω n Δ t Δ t X(j\omega) = \displaystyle \sum^{\infty}_{n=-\infty} x\big[ n\cdot \Delta t\big] e^{-j\omega n \Delta t} \Delta t X(jω)=n=−∞∑∞​x[n⋅Δt]e−jωnΔtΔt

  • 离散时间傅里叶变换(DTFT-Discrete-time Fourier Transform), 将时域间隔单位归一化后 Δ t = 1 \Delta t = 1 Δt=1 ,得到 :
    X ( j ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n X(j\omega) = \displaystyle \sum^{\infty}_{n=-\infty} x\big[ n\big] e^{-j\omega n} X(jω)=n=−∞∑∞​x[n]e−jωn

    • 上式是将连续傅里叶变换中的时域信号进行离散化后得到
  • 分析:DTFT仍未达到便于数字系统处理的目的:

    1. 时域序列的长度仍然是无限长的
    2. 信号在频域仍然是连续的

5.2.2. 演化 离散傅里叶变换(DFT)

  • 对DTFT而言,其频域变换结果是以 2 π 2\pi 2π为周期的连续周期函数
  • 为此,对时限信号在频域内以 2 π / N 2\pi/N 2π/N 为间隔对 DFTF 的变换结果进行频域取样
    X [ k ] = ∑ n = 0 N − 1 x [ n ] e − h 2 π N n k ,   k = 0 , ⋯   , N − 1 X[k] = \displaystyle \sum^{N-1}_{n=0} x[n] e^{-h\frac{2\pi}{N}nk} , \, k =0,\cdots , N-1 X[k]=n=0∑N−1​x[n]e−hN2π​nk,k=0,⋯,N−1
  • 上式在频域内也是离散且有限的,这非常适合于计算机等数字信号处理系统来进行处理。
  • 该式实际上给出的是非周期离散序列的 离散傅里叶变换 (DFT- Discrete Fourier Transform)。

5.2.3. 演化 离散傅里叶级数(DFS)

  • 对周期为 T T T 的连续信号 x ( t ) x(t) x(t) 而言,其傅里叶级数为
    X ( j k Ω ) = 1 T ∫ 0 T x ~ ( t ) e − j k Ω t d t \displaystyle X(jk\Omega) = \frac{1}{T}\int^{T}_{0}\tilde{x}(t) e^{-jk\Omega t}dt X(jkΩ)=T1​∫0T​x~(t)e−jkΩtdt

  • 其中 Ω = 2 π T \Omega = \frac{2\pi}{T} Ω=T2π​ , 它也是频域中两条相邻谱线的间隔。

  • 若要将周期信号在时域内进行离散化,只需以恰当的采样率进行采样,即可得到对应的周期序列。

  • 离散傅里叶级数(DFS- Discrete Fourier Series):

    • 对周期为 N N N 的周期离散序列 x ( n ) x(n) x(n) 而言,时域积分演变为离散求和
      X ~ ( j k Ω ) = 1 N ∑ n = 0 N − 1 x ~ ( n ) e − j k Ω n \displaystyle \tilde{X}(jk\Omega) = \frac{1}{N}\sum^{N-1}_{n=0} \tilde{x}(n)e^{-jk\Omega n} X~(jkΩ)=N1​n=0∑N−1​x~(n)e−jkΩn
  • 若离散周期序列 x ~ ( n ) \tilde{x}(n) x~(n) 的一个周期取出来,记作 x ( n ) x(n) x(n)

    • 且将DFS变换结果中的一个周期取出来,记作 X ( j k Ω ) X(jk\Omega) X(jkΩ) , 则:
      X ~ ( j k Ω ) = 1 N ∑ n = 0 N − 1 x ~ ( n ) e − j 2 π N k n \displaystyle \tilde{X}(jk\Omega) = \frac{1}{N}\sum^{N-1}_{n=0} \tilde{x}(n)e^{ -j\frac{2\pi}{N}kn} X~(jkΩ)=N1​n=0∑N−1​x~(n)e−jN2π​kn
    • 上式本质上与离散傅里叶变换(DFT)相同。由此可见,离散傅里叶变换(DFT)可以从DTFT延伸而来,也可以认为是从DFS演变得到。
  • 需要说明的是,在常见的信号处理应用中,离散傅里叶变换(DFT)占据主导地位。

5.3. 离散傅里叶变换(DFT)

  • 定义:

    • :对于一个长度为 N N N 的离散信号 x [ n ] ( n = 0 , ⋯   , K , ⋯   , N − 1 ) x[n] _{(n = 0,\cdots,K,\cdots, N-1)} x[n](n=0,⋯,K,⋯,N−1)​ 其离散傅里叶变换(DFT)为
      X [ k ] = ∑ n = 0 N − 1 x [ n ] W N n k ,    ( k = 0 , ⋯   , K , ⋯   , N − 1 ) X[k] = \displaystyle \sum^{N-1}_{n=0} x[n] W^{nk}_{N}, \;(k= 0,\cdots,K,\cdots, N-1) X[k]=n=0∑N−1​x[n]WNnk​,(k=0,⋯,K,⋯,N−1)
    • 其中 W N = e − j 2 π N W_N = e^{-j\frac{2\pi}{N}} WN​=e−jN2π​
  • 可验证: w k = [ 1 ,    W N − k ,    W N − 2 k ,    ⋯   ,    K ,    ⋯   ,    W N − ( N − 1 ) k ] T w^k = \big[ 1 ,\; W_N^{-k} ,\; W_N^{-2k},\; \cdots ,\; K ,\; \cdots ,\; W_N^{-(N-1)k} \big]^T wk=[1,WN−k​,WN−2k​,⋯,K,⋯,WN−(N−1)k​]T 构成 N N N 维复数空间 C N C^N CN 中的一组 正交基, 也是 DFT 的基数。

  • 由于 ∥ w ( k ) ∥ 2 = N \lVert w^{(k)} \rVert^2 = N ∥w(k)∥2=N , 为了使其成为正交规范基,可以通过 1 N \frac{1}{\sqrt{N}} N ​1​ 的缩放因子而使其规范化。

  • 由离散傅里叶变换的公式可知,信号在经过变换后的长度不变,但是由于 DFT 的基是复数,所以通常变换系数也为复数,因此可以从幅度和相位两个方面来分析 DFT 的特性。

  • 离散傅里叶反变换: 若 X [ k ] ( k = 0 , ⋯   , K , ⋯   , N − 1 ) X[k]_{(k=0,\cdots,K,\cdots, N-1)} X[k](k=0,⋯,K,⋯,N−1)​ 长度为 N N N 的离散傅里叶变换系数序列,则称:
    x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] W N − n k ,    ( n = 0 , ⋯   , K , ⋯   , N − 1 ) \displaystyle x[n] = \frac{1}{N} \sum^{N-1}_{k=0} X[k] W_N^{-nk}, \; (n=0,\cdots,K,\cdots, N-1) x[n]=N1​k=0∑N−1​X[k]WN−nk​,(n=0,⋯,K,⋯,N−1)

    • 为 X [ k ] X[k] X[k] 的离散傅里叶反变换(IDFT)
  • 离散傅里叶变换的物理意义:

    • 离散傅里叶反变换是将一个有限信号 x [ n ] x[n] x[n] 表示成了 N N N 个离散正弦分量的加和,每个正弦分量的振幅和初始相位由系数 X [ k ] X[k] X[k] 给出。
    • 更直观地,可以将离散傅里叶反换描述为:
      1. 设计一组包含 N N N 个复正弦分量信号发生器;
      2. 将其中第 k k k 个正弦量发生器的频率设置为 2 π k N \displaystyle \frac{2\pi k}{N} N2πk​
      3. 将其中第 k k k 个正弦量发生器的振幅设置为 ∣ X [ k ] ∣ N \displaystyle \frac{\lvert X[k]\rvert}{N} N∣X[k]∣​
      4. 将其中第 k k k 个正弦量发生器的相位设置为 ∠ X [ k ] \angle X[k] ∠X[k]
      5. 同时启动发生器,将它们的输出相加。按照先后顺序,前 N N N 个输出值为 x [ n ] ,    n = 0 , ⋯   , K , ⋯   , N − 1 x[n], \; n=0,\cdots , K, \cdots, N-1 x[n],n=0,⋯,K,⋯,N−1

5.3.1. Python 分析两个信号离散傅里叶变换结果的差异

  • 试分析两个信号离散傅里叶变换结果的差异
    x 1 [ n ] = cos ⁡ ( π 8 n ) ,    n = 0 , ⋯   , 63 x 2 [ n ] = cos ⁡ ( π 8 n + π 3 ) ,    n = 0 , ⋯   , 63 \begin{aligned}x_1[n] & = \cos\Big(\frac{\pi}{8} n\Big), \; & n= 0, \cdots, 63 \\ x_2[n] & = \cos\Big(\frac{\pi}{8} n + \frac{\pi}{3}\Big), \; & n= 0, \cdots, 63\end{aligned} x1​[n]x2​[n]​=cos(8π​n),=cos(8π​n+3π​),​n=0,⋯,63n=0,⋯,63​
    # 导入 需要的 library 库  
    import numpy as np # 科学计算
    import matplotlib.pyplot as plt # 画图工具
    import scipy.signal as sg # 导入 scipy 的 signal 库 重命名为 sg
n = np.linspace(0,63,64)
x_1 = np.cos(np.pi/8*n)
x_2 = np.cos(np.pi/8*n+np.pi/3)
plt.figure(figsize=(9,4))
plt.title(r'$x_1[n] = \cos(\frac{\pi}{8} n); n= 0, \cdots, 63$')
plt.stem(n, x_1, '-',label='x_1', markerfmt='C3o',  use_line_collection=True)
plt.show()

output7

plt.figure(figsize=(9,4))
plt.title(r'$x_2[n] = \cos(\frac{\pi}{8} n + \frac{\pi}{3}); n= 0, \cdots, 63$')
plt.stem(n, x_2, '-',label='x_1', markerfmt='C3o',  use_line_collection=True)
plt.show()

output8

K = np.linspace(0,63,64)
W_64 = np.exp(-1j * 2*np.pi / 64)
X1 = np.array([np.sum(x_1*np.power(W_64,n*k)) for k in K])
X2 = np.array([np.sum(x_2*np.power(W_64,n*k)) for k in K])
plt.figure(figsize=(9,4))
plt.rcParams['font.sans-serif']=['SimHei']
plt.title(r'$x_1[n]$幅度')
plt.stem(n, X1.real, '-',label='x_1', markerfmt='C3o',  use_line_collection=True)
plt.show()

output10

plt.figure(figsize=(9,4))
plt.rcParams['font.sans-serif']=['SimHei']
plt.title(r'$x_2[n]$幅度')
plt.stem(n, X2.real, '-',label='x_2', markerfmt='C3o',  use_line_collection=True)
plt.show()

output11

plt.figure(figsize=(9,4))
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.title(r'$x_1[n]$相位')
plt.stem(n, X1.imag/180*np.pi, '-',label='x_1', markerfmt='C3o',  use_line_collection=True)
plt.ylim((-np.pi,np.pi))
plt.show()

output12

plt.figure(figsize=(9,4))
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.title(r'$x_2[n]$相位')
plt.stem(n, X2.imag/180*np.pi, '-',label='x_2', markerfmt='C3o',  use_line_collection=True)
plt.ylim((-np.pi,np.pi))
plt.show()

output13

  • 从上述图可以看出,两个信号的幅频特性相同,但相频特性有明显差异,这与时域表达式中两信号具有相同的角频率但初相不同的结果是一致的。

To TOP 至目录

离散傅里叶变换(DFT)核心原理与工程实践:从信号分解到频谱分析 在数字信号处理领域,将时域信号转换到频域进行分析是一项基础且关键的技术。其核心原理在于,任何复杂的波形都可以分解为一系列不同频率、相位和幅度的基本正弦波(或余弦波)的叠加。这种分解依赖于正交基函数的概念,通过计算信号与各频率基函数的内积(即投影),可以精确量化每个频率成分的贡献,从而得到信号的频谱。这项技术的核心价值在于,它使得我们能够“看见”信号的频率构成,为滤波、特征提取、压缩和识别等操作提供了可能。其应用场景极为广泛,涵盖了音频处理(如降噪与音乐可视化)、通信系统、医学成像(如MRI)以及振动分析等诸 阅读详情

相关推荐

NIST随机性测试实战指南:从理论到报告的完整解析

本文详细解析了NIST随机性测试的完整流程,从理论到实践再到报告撰写。通过15项核心测试的实战案例,帮助读者掌握如何检测随机数序列中的规律性和缺陷,确保密码学和信息安全系统的可靠性。特别适合金融安全审计和硬件随机数发生器开发人员参考。

weixin_33860528的博客 312

python实现离散傅里叶变换

傅里叶变换,DFT

mmf827950280的博客 3106

OpenCV-Python实战(29)——基于视觉显著性的自动多目标跟踪系统

本节我们探索了一种标记视觉场景中潜在有趣物体的方法,即使这些物体的形状和数量都是未知的。我们利用傅里叶分析研究了自然图像统计特性,并实现了一种提取自然场景中视觉显著区域的方法。此外,我们将显著性检测器的输出与跟踪算法相结合,在一个足球比赛视频序列中跟踪了多个形状和数量未知的物体。我们还介绍了 OpenCV 中其他更复杂的跟踪算法,可以用它们替代应用程序中的均值漂移跟踪,甚至创建自己的应用程序。当然,也可以用之前学过的技术(如特征匹配或光流法)来替换均值漂移跟踪器。

盼小辉丶的博客 1507

opencv-python傅里叶变换以及逆变换

本文主要介绍了傅里叶变换在机器视觉方面上的原理以及应用实例

weixin_52564375的博客 5208

去条纹算法 —— 兼容自然图像与荧光图像的频域滤波方法(FFT)

基于FFT(快速傅里叶变换)的去条纹算法是一种常用的图像处理方法,适用于去除图像中的周期性条纹噪声。这种算法在自然图像和荧光图像中都有广泛应用,特别是在荧光显微镜图像中,条纹噪声(如干涉条纹或扫描线噪声)较为常见。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 2052

【信息科学与工程】【物理/化学科学和工程技术】知识体系01 力学基础2 力学模型01

机器人控制的力学模型

weixin_49199313的博客 1252

python实现洗牌算法_Algorithms - 离散概率值(discrete) 和 重置\洗牌(shuffle) 算法 及 代码...

离散概率值(discrete) 和 重置\洗牌(shuffle) 算法 及 代码本文地址:http://blog.youkuaiyun.com/caroline_wendy/article/details/17120687离散概率值, 是根据离散分布的概率(归一化), 计算出一个随机的值, 概率越大, 离散值出现的可能性就越大;原理: 随机生成一个0-1的值,顺次累加概率值, 大于等于随机值输出, 由于...

weixin_39732249的博客 315

【信息科学与工程学】【制造工程】第三十六篇 机械工程与自动化101

本系统通过多模型集成、知识增强、主动学习和持续优化等关键技术,实现了高效、高质量的自动化文本语料标注。系统采用模块化设计,支持灵活扩展,能够处理不同类型的文本数据,适应多样的标注需求。

weixin_49199313的博客 969

概率统计Python计算:自定义离散型分布

假定有自定义的分布数据(X, P),其中X表示随机变量XXX的取值序列,P表示对应XXX的每个取值的概率序列。scipy.stats包为我们提供了一个rv_discrete类,可以用数据(X, P)创建自定义的离散型随机变量的分布。例如设XXX~(12100.150.550.3)\begin{pmatrix}1&2&10\\0.15&0.55&0.3\end{pmatrix}(10.15​20.55​100.3​),我们用下列代码生成一个以序列X={1, 2, 10},P={

u012958850的博客 2670

【信息科学与工程学】【研发体系】第十篇 半导体电路设计 126 光学光刻、计算光刻 第一部分

用于全芯片修正的快速三维掩模近似模型(边界层模型、薄掩模近似改进)。:用于模型校准的测试图形设计(包含各种宽度、间距、方向的图形);扫描电镜、光学散射仪等量测数据的处理与模型拟合;模型误差的分解与追踪;:反演光刻技术的数学框架与求解算法(梯度法、像素翻转、水平集法);基于模型的OPC中边缘放置误差片段的智能移动策略;热点检测与分类的深度学习模型;:交替型、衰减型、无铬型等不同类型PSM的原理、制造与应用;光刻胶模型与显影模型的建立与校准。扫描电镜、散射仪等量测数据的处理与模型拟合;:厚掩模的电磁场仿真;

weixin_49199313的博客 1047

【信息科学与工程学】计算机科学与自动化——第三百零五篇 数据中心 Scale-Up、Scale-Out、Scale-Across 20

GPU 训练中的各种算子融合技巧、梯度压缩与稀疏通信的高级变体、混合专家模型的负载均衡与通信优化、长序列模型的注意力机制优化、模型量化与蒸馏的联合优化、分布式训练中的容错与恢复、以及一些新兴硬件特性的建模(如 HBM3、GDDR7、CXL 3.0 内存语义、PCIe Gen6 PAM4 信令等)。每条仍然包含四个方程式子节。

weixin_49199313的博客 348

python 离散 知识点

2019/11/25: itemgetter 函数: python 里面的字典。。itemgetter(1)是获取key部分的 sorted(words.iteritems(), key=itemgetter(1), reverse=True)[:N] 是按key大小排列字典 - 语法 sorted 语法: sorted(iterable, cmp=None, key=None, reverse=...

qq_43541507的博客 650

使用python实现离散时间傅里叶变换的方法

主要介绍了使用python实现离散时间傅里叶变换的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)

离散二维傅立叶变换(Discrete Fourier Transformation)

qq_42662568的博客 850

车道线检测1.0(Python+Opencv基础版)

车道线检测是指在道路上自动检测和识别车道线的过程。车道线是道路上的标记,用于指示车辆行驶的方向和位置。 通过对车道线进行检测和识别,自动驾驶和智能驾驶系统可以实现车辆的自动导航、车道保持、车道偏离警告等功能。

Dream_orz的博客 4264

AI原生应用在UGC内容审核中的实战经验

AI原生应用(AI-Native Application)——以机器学习模型为核心驱动力,深度整合数据、算法、工程架构的完整系统——为破解这一三角难题提供了全新范式。全链路数据驱动:从数据采集、模型训练到决策优化,形成闭环自治系统,无需人工规则干预多模态深度理解:同时处理文本、图像、音频、视频等多类型内容,理解语义而非简单匹配特征自适应进化能力:通过人机协同反馈持续学习新型违规模式,模型周级迭代成为常态审核效率提升300%:单条视频审核耗时从2.3秒降至0.7秒。

AI算力网络与通信的博客 1149

我整理了一份 DCA:Discrete Computer Arithmetic,给计算机用的“离散算术”

《离散计算机算术(DCA):面向有限计算的整理稿》提出了一套专注于计算机可执行数学的表达体系。该框架强调数学对象在计算机中的有限表示,包括整数、有限图、矩阵等,旨在建立边界清晰、可形式化验证的实现方案。文档将DCA分为43个部分,涵盖从基础算术到形式化验证等多个领域,并指出RISC-V、seL4等现有技术已在实践类似理念。作者通过统一离散化视角整合分散的研究线索,强调连续数学可作为外部参考,但实现层必须处理有限对象。该开源项目旨在促进可验证、可落地的计算机数学表达方式发展。

2611_95631403的博客 634

Cadence Sigrity PowerDC实战:如何用PCB电热混合仿真解决散热难题(附详细配置步骤)

本文详细介绍了如何利用Cadence Sigrity PowerDC进行PCB电热混合仿真,以解决高功率密度设计中的散热难题。文章通过解析电热耦合原理,并附上详细的配置步骤与实战技巧,指导硬件工程师同步优化电气性能与热管理,从而在设计源头提升产品可靠性与效率。

weixin_29292535的博客 198

【图像处理】小波变换(Wavelet Transform,WT)

小波变换是一种重要的图像多尺度分析工具,能够有效分离图像的时频信息。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 6036

银河麒麟系统V10 sp1,安装wine 9.0

银河麒麟系统V10 sp1 x86_64,安装wine 9.0

daqinzl的专栏 1万+

保姆级教程:在Ubuntu 20.04上从零搞定ROS Noetic和RealSense驱动,为无人机开发铺路

本文提供了一份详细的Ubuntu 20.04环境下ROS Noetic和RealSense驱动安装指南,专为无人机开发环境搭建设计。从系统配置、ROS安装到RealSense驱动集成,涵盖所有关键步骤和常见问题解决方案,帮助开发者快速搭建自主空中机器人开发平台。

weixin_30329623的博客 65

具身智能领域常见机器人平台与数据格式

特性HDF5存储后端TFRecordHDF5流式加载❌跨平台✅ (OXE 统一)✅ (硬件无关)❌视频支持图片序列✅ MP4 视频图片序列标准化 schema✅ 严格✅ 灵活❌ 无标准主要用户HuggingFace 社区早期研究项目压缩TFRecord 压缩gzip。

2303_77547168的博客 454

NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案

本文主要介绍了NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案,希望能对使用jupyter notebook的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

【编写环境一】遇到常见python函数处理方式

1.python实现两个一维列表合并成一个二维列表 >>> list1 = [1,2,3,4,4] >>> list2 = [2,3,4,5,2] >>> z = list(zip(list1,list2)) >>> z [(1, 2), (2, 3), (3, 4), (4, 5), (4, 2)] >>> z[1][1] 3 >>> z[0][1] 2 >>> z[2] (3

丨汀、的博客 2909

海思芯片OpenHarmony系统移植:Sensor传感器模块HDF驱动配置HCS文件详解

海思系列芯片的传感器模块通过HDF(Hardware Driver Foundation)驱动框架进行管理和配置。传感器HCS(HDF Configuration Source)配置文件定义了各类传感器的硬件参数、总线配置、寄存器序列等信息,为传感器驱动提供必要的初始化和运行参数。海思系列芯片适配OpenHarmony的传感器HDF配置HCS文件是传感器驱动开发的关键部分,通过合理配置可以实现各种传感器设备的驱动支持。

m0_67505153的博客 209

UE5 Niagara基础知识讲解

在UE5版本中,Niagara粒子系统引入了许多可添加的模块,分别用于控制发射器的生成和更新、粒子的生成和更新以及渲染效果。本文采用虚幻5.2.1版本,以图文方式对Niagara基础知识进行讲解。

一碗清深的博客 2470
上一篇: Python 二分法取两组有序数列中位数
下一篇: 回文子串 Python 普通解 和 Manacher(马拉车) 算法分析
Varalpha
博客等级 码龄7年 353粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值