当前位置: 首页 > news >正文

深入理解小波变换:信号处理的强大工具

引言

在科学与工程领域,信号处理一直是关键环节,傅里叶变换与小波变换作为重要的分析工具,在其中发挥着重要作用。本文将深入探讨小波变换,阐述其原理、优势以及与傅里叶变换的对比,并通过具体案例展示其应用价值。

在这里插入图片描述

一、傅里叶变换的局限性

傅里叶变换是一种经典的信号分析方法,能将时域信号转换为频域信号,让我们清晰了解信号包含的频率成分。在分析一段音乐信号时,傅里叶变换可揭示其中的各种音调(频率)。然而,傅里叶变换存在明显不足,它假设信号是由无限延伸的正弦波或余弦波组成,在将信号从时域转换到频域的过程中,完全丢失了时间信息。这意味着,使用傅里叶变换虽能知晓信号中有哪些频率,但无法确定这些频率在何时出现。比如在分析包含多个乐器演奏的音乐信号时,我们无法得知每种乐器声音在哪个时刻响起;在分析地震信号时,无法确定不同地震波(如 P 波和 S 波)出现的具体时刻,这在很多实际应用场景中是远远不够的。

二、小波变换的原理

(一)基本概念

小波变换的核心是通过对一个母小波函数进行伸缩和平移操作,生成一系列小波基函数。假设有一个满足特定条件的母小波函数 ψ ( t ) \psi(t) ψ(t),通过尺度参数 a a a和平移参数 b b b,可得到一族小波基函数 ψ a , b ( t ) = 1 a ψ ( t − b a ) \psi_{a,b}(t)=\frac{1}{\sqrt{a}}\psi(\frac{t - b}{a}) ψa,b(t)=a 1ψ(atb)尺度参数 a a a控制着小波函数的伸缩程度,大尺度对应信号的低频特征,就像大梳子能梳理出信号中比较慢、比较低沉的部分;小尺度对应信号的高频细节,类似小梳子能捕捉到信号中比较快、比较尖锐的部分。平移参数 b b b则用于在时间轴上移动小波函数,以匹配信号不同位置的特征。

(二)信号分解与重构

对于给定的信号 f ( t ) f(t) f(t),其小波变换 W f ( a , b ) W_{f}(a,b) Wf(a,b)定义为 W f ( a , b ) = ∫ − ∞ ∞ f ( t ) ψ a , b ∗ ( t ) d t W_{f}(a,b)=\int_{-\infty}^{\infty}f(t)\psi_{a,b}^*(t)dt Wf(a,b)=f(t)ψa,b(t)dt其中 ψ a , b ∗ ( t ) \psi_{a,b}^*(t) ψa,b(t) ψ a , b ( t ) \psi_{a,b}(t) ψa,b(t)的共轭函数。这个积分运算实际上是计算信号 f ( t ) f(t) f(t)与小波基函数 ψ a , b ( t ) \psi_{a,b}(t) ψa,b(t)的内积,得到的小波系数 W f ( a , b ) W_{f}(a,b) Wf(a,b)表示了信号 f ( t ) f(t) f(t)在尺度 a a a和平移 b b b下与小波基函数的相似程度。在实际应用中,不仅可以对信号进行分解,还能通过这些小波系数进行信号重构,将分解后的信号还原。

三、小波变换的优势

(一)时频局部化特性

与傅里叶变换不同,小波变换能同时在时间域和频率域对信号进行局部化分析。在分析音乐信号时,它能准确捕捉到像鼓点、吉他拨弦等瞬间出现的声音,并在时频域中精确定位,让我们清楚知道这些声音在何时出现以及对应的频率。在地震信号分析中,可清晰展示 P 波和 S 波在不同时刻的频率特征,有助于地震学家深入研究地震的传播过程。

(二)多分辨率分析

小波变换具有多分辨率特性,可将信号分解为不同尺度下的分量,从粗到细逐步分析信号的细节。以图像分析为例,大尺度下能把握图像的整体轮廓,如一幅风景图像中的山脉、河流等大致形状;小尺度下能关注到图像的细微纹理,如树叶的脉络、岩石的纹理等。这种多分辨率分析就如同用不同倍数的放大镜观察物体,从宏观到微观全面了解信号或图像的特征。

(三)基函数的灵活性

小波变换拥有多种不同类型的母小波函数,并且可以根据信号的特点进行选择和定制。对于具有明显非平稳、非线性特征的信号,小波变换能够通过选取合适的母小波函数,更好地匹配和表示这些信号。而傅里叶变换的基函数只有固定的正弦函数和余弦函数,形式较为单一,在处理这类复杂信号时往往力不从心。

(四)计算复杂度和效率

在处理一些长度较长、复杂度较高的信号时,傅里叶变换可能需要较高的计算成本和时间。而小波变换在处理具有局部特征和稀疏性的信号时,能够利用这些特性,采用快速算法,降低计算复杂度,提高计算效率。在处理大规模图像数据或长时间的生理信号时,小波变换的这一优势尤为明显。

四、小波变换的应用案例

(一)地震信号分析

如前文所述,在地震监测中,小波变换能够准确确定不同地震波出现的时刻和频率特征。通过对地震信号进行小波变换,地震学家可以更精确地判断地震的震级、震源深度以及地震波的传播路径等重要信息。在 2011 年日本东海岸发生的 9.0 级大地震中,科学家利用小波变换对地震信号进行分析,不仅快速确定了地震的基本参数,还通过对地震信号细节的分析,深入研究了地震的破裂过程和海啸的产生机制,为后续的灾害评估和预防提供了重要依据。

(二)图像压缩

在图像领域,小波变换被广泛应用于图像压缩。将图像进行小波变换后,图像的能量会集中在少数小波系数上。通过对这些系数进行量化和编码,可以实现高效的图像压缩。著名的 JPEG 2000 图像压缩标准就采用了小波变换技术,相比传统的 JPEG 压缩标准,JPEG 2000 在相同的压缩比下能够提供更好的图像质量,特别是在处理包含丰富纹理和细节的图像时,优势更加明显。例如,在对卫星遥感图像进行压缩时,JPEG 2000 能够在大幅减少数据量的同时,保留图像中的关键信息,如地形地貌、城市建筑等细节,方便数据的传输和存储。

(三)医学信号处理

在医学领域,小波变换常用于处理各种生理信号,如心电图(ECG)、脑电图(EEG)等。以心电图信号处理为例,医生需要从心电图中准确判断心脏的工作状态,识别出正常和异常的心跳模式。小波变换能够对心电图信号进行时频分析,突出信号中的特征点,如 P 波、QRS 波群等,帮助医生更准确地检测出心脏疾病。在实际临床应用中,通过小波变换对心电图信号进行预处理和特征提取,可以辅助医生快速诊断出心肌梗死、心律失常等疾病,提高诊断的准确性和效率。

(四)小波变换计算实例

下面以一维连续信号的小波变换为例,使用哈尔小波对一个简单的分段函数信号进行变换,并详细解释变换前后的情况。

1. 定义原始信号

假设我们有一个简单的一维连续信号 f ( t ) f(t) f(t),定义在区间 [ 0 , 4 ] [0, 4] [0,4] 上:
f ( t ) = { 2 , 0 ≤ t < 2 4 , 2 ≤ t < 4 f(t) = \begin{cases} 2, & 0\leq t < 2 \\ 4, & 2\leq t < 4 \end{cases} f(t)={2,4,0t<22t<4

2. 介绍哈尔小波

哈尔小波是一种最简单的小波函数,其尺度函数 φ ( t ) \varphi(t) φ(t) 和小波函数 ψ ( t ) \psi(t) ψ(t) 定义如下:

  • 尺度函数
    φ ( t ) = { 1 , 0 ≤ t < 1 0 , 其他 \varphi(t)= \begin{cases} 1, & 0\leq t < 1 \\ 0, & \text{其他} \end{cases} φ(t)={1,0,0t<1其他
  • 小波函数
    ψ ( t ) = { 1 , 0 ≤ t < 0.5 − 1 , 0.5 ≤ t < 1 0 , 其他 \psi(t)= \begin{cases} 1, & 0\leq t < 0.5 \\ -1, & 0.5\leq t < 1 \\ 0, & \text{其他} \end{cases} ψ(t)= 1,1,0,0t<0.50.5t<1其他
3. 连续小波变换公式

连续小波变换(CWT)的公式为:
W f ( a , b ) = 1 a ∫ − ∞ ∞ f ( t ) ψ ( t − b a ) d t W_f(a, b)=\frac{1}{\sqrt{a}}\int_{-\infty}^{\infty}f(t)\psi\left(\frac{t - b}{a}\right)dt Wf(a,b)=a 1f(t)ψ(atb)dt
其中, a a a 是尺度参数,控制小波的伸缩; b b b 是平移参数,控制小波的平移。

4. 具体计算示例

我们取几个特定的 ( a , b ) (a, b) (a,b) 值来计算小波变换结果。

情况一: a = 1 , b = 0 a = 1, b = 0 a=1,b=0

W f ( 1 , 0 ) = ∫ − ∞ ∞ f ( t ) ψ ( t ) d t = ∫ 0 1 f ( t ) ψ ( t ) d t W_f(1, 0)=\int_{-\infty}^{\infty}f(t)\psi(t)dt=\int_{0}^{1}f(t)\psi(t)dt Wf(1,0)=f(t)ψ(t)dt=01f(t)ψ(t)dt
因为在区间 [ 0 , 1 ] [0, 1] [0,1] 上, f ( t ) = 2 f(t) = 2 f(t)=2,所以:
W f ( 1 , 0 ) = ∫ 0 0.5 2 × 1 d t + ∫ 0.5 1 2 × ( − 1 ) d t = 2 × ( 0.5 − 0 ) − 2 × ( 1 − 0.5 ) = 1 − 1 = 0 W_f(1, 0)=\int_{0}^{0.5}2\times1dt+\int_{0.5}^{1}2\times(- 1)dt=2\times(0.5 - 0)-2\times(1 - 0.5)=1 - 1 = 0 Wf(1,0)=00.52×1dt+0.512×(1)dt=2×(0.50)2×(10.5)=11=0

情况二: a = 1 , b = 2 a = 1, b = 2 a=1,b=2

W f ( 1 , 2 ) = ∫ − ∞ ∞ f ( t ) ψ ( t − 2 ) d t = ∫ 2 3 f ( t ) ψ ( t − 2 ) d t W_f(1, 2)=\int_{-\infty}^{\infty}f(t)\psi(t - 2)dt=\int_{2}^{3}f(t)\psi(t - 2)dt Wf(1,2)=f(t)ψ(t2)dt=23f(t)ψ(t2)dt
因为在区间 [ 2 , 3 ] [2, 3] [2,3] 上, f ( t ) = 4 f(t) = 4 f(t)=4,所以:
W f ( 1 , 2 ) = ∫ 2 2.5 4 × 1 d t + ∫ 2.5 3 4 × ( − 1 ) d t = 4 × ( 2.5 − 2 ) − 4 × ( 3 − 2.5 ) = 2 − 2 = 0 W_f(1, 2)=\int_{2}^{2.5}4\times1dt+\int_{2.5}^{3}4\times(-1)dt=4\times(2.5 - 2)-4\times(3 - 2.5)=2 - 2 = 0 Wf(1,2)=22.54×1dt+2.534×(1)dt=4×(2.52)4×(32.5)=22=0

情况三: a = 2 , b = 0 a = 2, b = 0 a=2,b=0

此时 ψ ( t 2 ) \psi\left(\frac{t}{2}\right) ψ(2t) 为:
ψ ( t 2 ) = { 1 , 0 ≤ t < 1 − 1 , 1 ≤ t < 2 0 , 其他 \psi\left(\frac{t}{2}\right)= \begin{cases} 1, & 0\leq t < 1 \\ -1, & 1\leq t < 2 \\ 0, & \text{其他} \end{cases} ψ(2t)= 1,1,0,0t<11t<2其他

W f ( 2 , 0 ) = 1 2 ∫ − ∞ ∞ f ( t ) ψ ( t 2 ) d t = 1 2 ( ∫ 0 1 2 × 1 d t + ∫ 1 2 2 × ( − 1 ) d t ) = 0 W_f(2, 0)=\frac{1}{\sqrt{2}}\int_{-\infty}^{\infty}f(t)\psi\left(\frac{t}{2}\right)dt=\frac{1}{\sqrt{2}}\left(\int_{0}^{1}2\times1dt+\int_{1}^{2}2\times(-1)dt\right)=0 Wf(2,0)=2 1f(t)ψ(2t)dt=2 1(012×1dt+122×(1)dt)=0

情况四: a = 2 , b = 2 a = 2, b = 2 a=2,b=2

此时 ψ ( t − 2 2 ) \psi\left(\frac{t - 2}{2}\right) ψ(2t2) 为:
ψ ( t − 2 2 ) = { 1 , 2 ≤ t < 3 − 1 , 3 ≤ t < 4 0 , 其他 \psi\left(\frac{t - 2}{2}\right)= \begin{cases} 1, & 2\leq t < 3 \\ -1, & 3\leq t < 4 \\ 0, & \text{其他} \end{cases} ψ(2t2)= 1,1,0,2t<33t<4其他

W f ( 2 , 2 ) = 1 2 ∫ − ∞ ∞ f ( t ) ψ ( t − 2 2 ) d t = 1 2 ( ∫ 2 3 4 × 1 d t + ∫ 3 4 4 × ( − 1 ) d t ) = 0 W_f(2, 2)=\frac{1}{\sqrt{2}}\int_{-\infty}^{\infty}f(t)\psi\left(\frac{t - 2}{2}\right)dt=\frac{1}{\sqrt{2}}\left(\int_{2}^{3}4\times1dt+\int_{3}^{4}4\times(-1)dt\right)=0 Wf(2,2)=2 1f(t)ψ(2t2)dt=2 1(234×1dt+344×(1)dt)=0

5. 变换前后的解释

变换前(原始信号)

原始信号 f ( t ) f(t) f(t) 是一个分段常数函数,在区间 [ 0 , 2 ) [0, 2) [0,2) 上值为 2,在区间 [ 2 , 4 ) [2, 4) [2,4) 上值为 4。它描述了一个在不同时间段具有不同恒定值的现象。从时域角度看,我们可以直接观察到信号在不同区间的取值情况,但对于信号在不同尺度和位置上的变化特征并不容易直观分析。

变换后(小波变换结果)
  • 尺度参数 a a a 的意义:尺度参数 a a a 控制着小波函数的伸缩程度。较大的 a a a 值对应着较宽的小波,它可以检测信号中的低频成分,也就是信号的整体趋势;较小的 a a a 值对应着较窄的小波,它可以检测信号中的高频成分,也就是信号的局部变化。
  • 平移参数 b b b 的意义:平移参数 b b b 控制着小波函数在时间轴上的位置。通过改变 b b b,我们可以在不同的时间位置对信号进行分析。
  • 小波变换结果分析:在上述计算中,我们得到的小波变换结果大部分为 0。这是因为哈尔小波是一种非常简单的小波,对于这种分段常数信号,在特定的 ( a , b ) (a, b) (a,b) 组合下,信号与小波函数的乘积在积分区域内正负抵消。但如果信号存在突变或者局部变化,小波变换会在相应的 ( a , b ) (a, b) (a,b) 位置产生非零值,从而可以检测到信号的局部特征。

通过小波变换,我们将原始信号从时域转换到了尺度 - 平移域,能够更方便地分析信号在不同尺度和位置上的特征,这对于信号处理、图像分析、故障诊断等领域都具有重要意义。

五、总结

小波变换作为一种强大的信号处理工具,以其独特的时频局部化特性、多分辨率分析能力、灵活的基函数选择以及高效的计算性能,在众多领域展现出了巨大的优势。与傅里叶变换相比,小波变换能够更好地处理非平稳、非线性信号,为我们提供更丰富、更准确的信息。无论是在地震监测、图像压缩还是医学信号处理等领域,小波变换都发挥着不可或缺的作用,并且随着技术的不断发展,其应用前景将更加广阔。

相关文章:

深入理解小波变换:信号处理的强大工具

引言 在科学与工程领域&#xff0c;信号处理一直是关键环节&#xff0c;傅里叶变换与小波变换作为重要的分析工具&#xff0c;在其中发挥着重要作用。本文将深入探讨小波变换&#xff0c;阐述其原理、优势以及与傅里叶变换的对比&#xff0c;并通过具体案例展示其应用价值。 一…...

人机交互系统实验三 多通道用户界面

实验目的和要求 1)了解常见的多通道用户界面 2)查找资料&#xff0c;熟悉一种多通道用户界面并写出综述 实验环境 Windows10 实验内容与过程 (一) 实验内容: 要求上网查找资料&#xff0c;熟悉一种多通道用户界面并写出综述&#xff0c;可以是眼动跟踪、手势识别、 三维…...

Filter -> MaskFilter遮罩滤镜详解

MaskFilter 作用对象&#xff1a;MaskFilter 主要用于Paint的外观效果&#xff0c;给用Paint绘制的内容添加模糊或者浮雕效果应用效果&#xff1a; MaskFilter 处理位图的遮罩效果&#xff0c;影响绘制的边缘或整体形状主要用于模糊处理、浮雕效果等&#xff0c;通过影响绘制对…...

RK3568使用QT操作LED灯

文章目录 一、QT中操作硬件设备思路Linux 中的设备文件操作硬件设备的思路1. 打开设备文件2. 写入数据到设备3. 从设备读取数据4. 设备控制5. 异常处理在 Qt 中操作设备的典型步骤实际应用中的例子:控制 LED总结二、QT实战操作LED灯设备1. `mainwindow.h` 头文件2. `mainwindo…...

python学opencv|读取图像(五十七)使用cv2.bilateralFilter()函数实现图像像素双边滤波处理

【1】引言 前序学习过程中&#xff0c;已经掌握了对图像的基本滤波操作技巧&#xff0c;具体的图像滤波方式包括均值滤波、中值滤波和高斯滤波&#xff0c;相关文章链接有&#xff1a; python学opencv|读取图像&#xff08;五十四&#xff09;使用cv2.blur()函数实现图像像素…...

为何实现大语言模型的高效推理以及充分释放 AI 芯片的计算能力对于企业级落地应用来说,被认为具备显著的研究价值与重要意义?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ AI 芯片&#xff1a;为人工智能而生的 “大脑” AI 芯片&#xff0c;又称人工智能加速器或计算卡&#xff0c;是专为加速人工智能应用&#xff0c;特别是深度学习任务设计的专用集成电路&#xff08;A…...

Android 约束布局ConstraintLayout整体链式打包居中显示

Android 用约束布局ConstraintLayout实现将多个控件视作一个整体居中显示&#xff0c;使用 app:layout_constraintHorizontal_chainStyle"packed"实现 chain 除了链条方向有横向和竖向区分外&#xff0c; chain链条上的模式有 3种 spread - 元素将被展开&#…...

在C#中,Array,List,ArrayList,Dictionary,Hashtable,SortList,Stack的区别

Array Array你可以理解为是所有数组的大哥 普通数组 : 特点是长度固定, 只能存储相同类型的数据 static void Main(string[] args){//声明int[] ints;string[] strings;People[] peoples;//默认值 //int 类型是 0//string 类型是 nullint[] ints1 { 1, 2, 3 };string[] …...

微服务知识——微服务架构的演进过程

文章目录 初始架构&#xff1a;单机架构第一次演进&#xff1a;Tomcat与数据库分开部署第二次演进&#xff1a;引入本地缓存和分布式缓存第三次演进&#xff1a;引入反向代理实现负载均衡第四次演进&#xff1a;数据库读写分离第五次演进&#xff1a;数据库按业务分库第六次演进…...

Chrome 浏览器:互联网时代的浏览利器

Chrome 浏览器&#xff1a;互联网时代的浏览利器 引言 在互联网时代&#xff0c;浏览器已经成为我们日常生活中不可或缺的工具。作为全球最受欢迎的浏览器之一&#xff0c;Chrome 浏览器凭借其出色的性能、丰富的扩展程序和简洁的界面&#xff0c;赢得了广大用户的喜爱。本文…...

深入浅出 NRM:加速你的 npm 包管理之旅

文章目录 前言一、NRM 是什么&#xff1f;二、为什么需要 NRM&#xff1f;三、NRM 的优势四、NRM 的安装与使用4.1 安装 NRM4.2 查看可用的 npm 源4.3 切换 npm 源4.4 测试 npm 源速度4.5 添加自定义 npm 源4.6 删除 npm 源 五、NRM 的进阶使用六、总结 前言 作为一名 JavaScr…...

Linux——基础命令1

$&#xff1a;普通用户 #&#xff1a;超级用户 cd 切换目录 cd 目录 &#xff08;进入目录&#xff09; cd ../ &#xff08;返回上一级目录&#xff09; cd ~ &#xff08;切换到当前用户的家目录&#xff09; cd - &#xff08;返回上次目录&#xff09; pwd 输出当前目录…...

nuxt3中使用useFetch请求刷新不返回数据或返回html结构问题解决-完整nuxt3useFetchtch请求封装

前言 如果使用nuxt3写项目&#xff0c;可以查看nuxt3实战&#xff1a;完整的 nuxt3 vue3 项目创建与useFetch请求封装&#xff0c;此篇内容有详细步骤 但在此篇内容中useFetch请求在页面有多个请求的情况下&#xff0c;或者放在客户端渲染情境下是失败的&#xff0c;所以在此篇…...

Kubernetes 中 BGP 与二层网络的较量:究竟孰轻孰重?

如果你曾搭建过Kubernetes集群,就会知道网络配置是一个很容易让人深陷其中的领域。在负载均衡器、服务通告和IP管理之间,你要同时应对许多变动的因素。对于许多配置而言,使用二层(L2)网络就完全能满足需求。但边界网关协议(BGP)—— 支撑互联网运行的技术 —— 也逐渐出…...

C中静态库和动态库的使用

2.使用尖括号包括 如果要使用尖括号包括头文件,有两种方法 1.将头文件移动到标准头文件目录,linux为/usr/local/include.windows下为C:\MinGW\include 2.编译时指定头文件目录,gcc -I/头文件目录 … 编译时-I参数就是用于指定头文件目录 3.静态库 将文件编译为静态库,可以…...

Debian 安装 Nextcloud 使用 MariaDB 数据库 + Caddy + PHP-FPM

前言 之前通过 docker在ubuntu上安装Nextcloud&#xff0c;但是现在我使用PVE安装Debian虚拟机&#xff0c;不想通过docker安装了。下面开始折腾。 安装过程 步骤 1&#xff1a;更新系统并安装必要的软件 sudo apt update && sudo apt upgrade -y sudo apt install…...

【FPGA】 MIPS 12条整数指令 【3】

实现乘除 修改框架 EX&#xff1a;实现带符号乘除法和无符号乘除法 HiLo寄存器&#xff1a;用于存放乘法和除法的运算结果。Hi、Lo为32bit寄存器。电路描述与实现RegFile思想一致 仿真 代码 DataMem.v include "define.v"; module DataMem(input wire clk,input…...

Mac 部署Ollama + OpenWebUI完全指南

文章目录 &#x1f4bb; 环境说明&#x1f6e0;️ Ollama安装配置1. 安装[Ollama](https://github.com/ollama/ollama)2. 启动Ollama3. 模型存储位置4. 配置 Ollama &#x1f310; OpenWebUI部署1. 安装Docker2. 部署[OpenWebUI](https://www.openwebui.com/)&#xff08;可视化…...

蓝桥杯小白打卡第二天

789. 数的范围 题目描述 给定一个按照升序排列的长度为 n n n 的整数数组&#xff0c;以及 q q q 个查询。 对于每个查询&#xff0c;返回一个元素 k k k 的起始位置和终止位置&#xff08;位置从 0 0 0 开始计数&#xff09;。 如果数组中不存在该元素&#xff0c;则返…...

Docker Compose:容器编排的利器

Docker Compose:容器编排的利器 引言 随着容器技术的普及,Docker成为了当今最受欢迎的容器编排工具之一。Docker Compose作为Docker生态系统中的一部分,允许用户以声明式的方式定义和运行多容器Docker应用。本文将深入探讨Docker Compose的基本概念、工作原理、使用场景以…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...