1.7 离散频率

news2024/9/27 17:23:33

1.7 离散频率

离散时间和采样率

模拟到数字转换器 (ADC) 对连续时间信号进行采样以生成离散时间样本。对于数字信号处理器来说,该信号仅存储在内存中作为一系列数字。因此,采样率 F S F_S FS 的知识是数字域中信号处理的关键。

对于时间而言,可以轻松确定存储在内存中的此类信号的周期或频率。例如,图 1.44 中的正弦波的周期 T T T 很明显是 10 个样本,而采样时间 T S = 1 F S T_S = \frac{1}{F_S} TS=FS1 可用于以秒为单位找到其周期。

image

图 1.44:离散时间正弦波

  • 对于采样率 F S = 10 F_S = 10 FS=10 Hz, T S = 0.1 T_S = 0.1 TS=0.1 秒,因此
    T = 10  samples period × 0.1  seconds/sample = 1  second T = \frac{10 \text{ samples}}{\text{period}} \times 0.1 \text{ seconds/sample} = 1 \text{ second} T=period10 samples×0.1 seconds/sample=1 second
    其频率为 F = 1 T = 1 F = \frac{1}{T} = 1 F=T1=1 Hz。
  • 对于采样率 F S = 500 F_S = 500 FS=500 Hz, T S = 0.002 T_S = 0.002 TS=0.002 秒,因此
    T = 10  samples period × 0.002  seconds/sample = 0.02  seconds T = \frac{10 \text{ samples}}{\text{period}} \times 0.002 \text{ seconds/sample} = 0.02 \text{ seconds} T=period10 samples×0.002 seconds/sample=0.02 seconds
    其频率为 F = 1 T = 50 F = \frac{1}{T} = 50 F=T1=50 Hz。
    如前所述,这两种正弦波的样本都将存储在内存中,离散域内没有区别。
离散频率和采样率

假设以采样率 F S = 1 T S F_S = \frac{1}{T_S} FS=TS1 采集了总共 N N N 个样本,这样就在时间上跨越了 N T S N T_S NTS 秒的持续时间。因此,这些 N N N 个样本所能表示的最低频率是由一个完整周期的正弦波完成的——而不再表示小于此间隔 N T S N T_S NTS 秒的任何其他周期。于是,其频率为 1 ( N T S ) \frac{1}{(N T_S)} (NTS)1 Hz,并表示为:

$$I \rightarrow V_I[n] = \cos 2\pi \frac{1}{N T_S} \cdot t = \cos 2\pi \frac{1}{N} \cdot \frac{1}{T_S} \cdot n$$$$Q \uparrow V_Q[n] = \sin 2\pi \frac{1}{N T_S} \cdot t = \sin 2\pi \frac{1}{N} \cdot \frac{1}{T_S} \cdot n$$

image

图 1.45:两个离散时间正弦波的 Q 部分

  • 其中一个有 N N N 个样本,离散频率为 1 N \frac{1}{N} N1
  • 另一个频率为 2 N \frac{2}{N} N2

因此, 1 N \frac{1}{N} N1 是该正弦波的离散频率,其 Q 部分如图 1.45 所示。

现在考虑以下方程:

$$\frac{1}{N T_S} = \frac{F_S}{N} = F_S \cdot \frac{1}{N}$$

并观察以下内容:

  • 实际频率为 F S ( 1 N ) F_S \left( \frac{1}{N} \right) FS(N1),但离散频率为 1 N \frac{1}{N} N1
  • 由这种离散设置中可以表示的最低频率决定的频率分辨率为 F S N \frac{F_S}{N} NFS
  • 视为 F S ⋅ 1 N F_S \cdot \frac{1}{N} FSN1 时,我们可以得到更多的离散频率样本,这些样本是 1 N \frac{1}{N} N1 的整数倍。
$$0, \frac{1}{N}, \frac{2}{N}, \cdots$$

因此,所有这些复数正弦波的频率都是基频 1 N \frac{1}{N} N1 的整数倍。图 1.45 背景中画有虚线的 Q 组件的 2 N \frac{2}{N} N2 的示例显示,在这些 N N N 个样本中有两个周期,这意味着每个 N N N 样本有 2 个周期,或每个样本有 2 N \frac{2}{N} N2 个周期。

进一步扩展这个概念,复数正弦波的离散频率为 k N \frac{k}{N} Nk,在 N N N 个样本的间隔内完成 k k k 个周期(或每个样本 k / N k/N k/N 个周期)。

正交性

我们称频率为 1 N \frac{1}{N} N1 2 N \frac{2}{N} N2 的正弦波分别为 A 和 B。正如我们现在看到的那样,它们是相互正交的。正交性意味着在零移处的相关性为零。换句话说,它们样本对样本积的总和为零。对于一个实数正弦波来说,

$$\sum_{n=0}^{N-1} \sin \left( 2\pi \frac{1}{N} n \right) \cdot \sin \left( 2\pi \frac{2}{N} n \right) = 0 \tag{1.46}$$

这一点可以从图 1.45 中得到验证。注意 B 在 N N N 个样本中有 2 个周期。在第一个周期中,B 的样本与 A 的负样本相乘。

其第二个周期中,相同的乘积与正号的 A A A 样本具有完全相同的幅度。通过这种方式,这个和为零。

从图 1.45 中画的两个样本的圆可以看出这一点。验证正弦波 A A A 的相应样本具有相反的符号。由于 DSP 的原始工作原理是复数正弦波而不是实数正弦波,因此我们现在在该上下文中分析正交性。

由于第二个信号的共轭,结果的 I I I 项为 I ⋅ I + Q ⋅ Q I \cdot I + Q \cdot Q II+QQ,而 Q Q Q 项的结果为 Q ⋅ I − I ⋅ Q Q \cdot I - I \cdot Q QIIQ。对于两个离散频率为 k / N k/N k/N k ′ / N k'/N k/N 的复数正弦波,滞后 0 处的相关性是:

$$I \rightarrow \sum_{n=0}^{N-1} \left[\cos\frac{2\pi k}{N}n \cdot \cos\frac{2\pi k'}{N}n + \sin\frac{2\pi k}{N}n \cdot \sin\frac{2\pi k'}{N}n \right]$$$$Q \uparrow \sum_{n=0}^{N-1} \left[\sin\frac{2\pi k}{N}n \cdot \cos\frac{2\pi k'}{N}n - \cos\frac{2\pi k}{N}n \cdot \sin\frac{2\pi k'}{N}n \right]$$

使用等式 cos ⁡ A cos ⁡ B + sin ⁡ A sin ⁡ B = cos ⁡ ( A − B ) \cos A \cos B + \sin A \sin B = \cos(A - B) cosAcosB+sinAsinB=cos(AB) sin ⁡ A cos ⁡ B − cos ⁡ A sin ⁡ B = sin ⁡ ( A − B ) \sin A \cos B - \cos A \sin B = \sin(A - B) sinAcosBcosAsinB=sin(AB)

$$I \rightarrow \sum_{n=0}^{N-1} \cos \frac{2\pi (k-k')}{N} n = \begin{cases} N & k=k' \\ 0 & k\neq k' \end{cases}$$$$Q \uparrow \sum_{n=0}^{N-1} \sin \frac{2\pi (k-k')}{N} n = 0$$

我们利用了样本和的事实, cos ⁡ ( ⋅ ) \cos(\cdot) cos() sin ⁡ ( ⋅ ) \sin(\cdot) sin() N N N 样本内具有整数个周期,因此为零。此外,当 k = k ′ k = k' k=k 时, cos ⁡ ( 0 ) = 1 \cos(0) = 1 cos(0)=1。这个概念在图 1.46 中进行了说明。

我们已经证明了以下结果:

“所有具有频率为基本频率 F s ( 1 / N ) F_s(1/N) Fs(1/N) 整数倍的复数正弦波彼此正交。”

离散频率轴

对于具有 N N N 个离散时间域样本,是否存在无限的复数正弦波彼此正交?答案是否定的,我们认为它们的数量仅为 N N N。为了验证这一点,让我们探索一个离散频率 N / N = 1 N/N = 1 N/N=1 的选项。

$$\sin\frac{2\pi N}{N}n = \sin 2\pi n = 0$$

image

图 1.46:在 N N N 个样本中,离散频率为 k / N k/N k/N 的复数正弦波与任何其他离散频率为 k ′ ≠ k k' \neq k k=k 的复数正弦波正交。

因此,离散频率为 0 的复数正弦波与离散频率为 1 的复数正弦波相同。对于下一个候选者 ( N + 1 ) / N (N+1)/N (N+1)/N,使用 sin ⁡ ( A + B ) = sin ⁡ A cos ⁡ B + cos ⁡ A sin ⁡ B \sin(A+B) = \sin A \cos B + \cos A \sin B sin(A+B)=sinAcosB+cosAsinB

$$\sin\left(2\pi\frac{N+1}{N}n\right) = \sin\left(2\pi n \cos 2\pi \frac{1}{N}n\right) + \cos\left(2\pi n \sin 2\pi \frac{1}{N}n\right) = \sin\left(2\pi \frac{1}{N}n\right)$$

因为 sin ⁡ ( 2 π n ) = 0 \sin(2\pi n) = 0 sin(2πn)=0 cos ⁡ ( 2 π n ) = 1 \cos(2\pi n) = 1 cos(2πn)=1。我们得出结论,从 0 到 N − 1 N-1 N1(或者 − N / 2 -N/2 N/2 N / 2 − 1 N/2 - 1 N/21,正如我们将很快看到的那样)只有 N N N 个不同的频率。接下来,它们只会重复自己。

在离散时间域中有 N N N 个样本时,离散频率域中也有 N N N 个样本!这些 N N N 个样本代表了复数正弦波的离散频率,这些频率是一个基本频率 1 / N 1/N 1/N 的整数倍,因此它们彼此正交。

从上面找到的 N N N 个离散频率中,我们可以构造一个离散频率轴,其成员如下:

$$0, \frac{1}{N}, \dots, \frac{N-1}{N}$$

它们完全相同:

$$-1, -1+\frac{1}{N}, \dots, -\frac{1}{N}$$

由于它们的周期性。然而,由于采样定理,我们选择了以 0 为中心的坐标轴。第 1.5 节中的公式 (1.36) 表明,在对信号进行采样后,连续频率 F F F 的唯一范围是:

− 0.5 F s ≤ F < + 0.5 F s -0.5F_s \leq F < +0.5F_s 0.5FsF<+0.5Fs

$$-0.5 \leq \frac{F}{F_s} < +0.5 \tag{1.48}$$

由于存在 N N N 个离散频率, − 0.5 ≤ F F s < + 0.5 -0.5 \leq \frac{F}{F_s} < +0.5 0.5FsF<+0.5 被分成 N N N 个相等的区间(假设 N N N 是偶数),通过在以下时刻采样得到:

$$-0.5, -0.5+\frac{1}{N}, \dots, -\frac{1}{N}, 0, \frac{1}{N}, \dots, +0.5-\frac{1}{N} \tag{1.49}$$

以获得离散频率轴。显然,离散频率分辨率是 1 / N 1/N 1/N。因此,离散频率基本上是基带中在 N N N 个等间隔频率点上采样的频谱内容(术语 +0.5 是由于坐标轴的周期性,实际上是 -0.5)。

公式 (1.49) 也可以写成:

$$-\frac{N/2}{N}, -\frac{N/2-1}{N}, \dots, -\frac{1}{N}, 0, \frac{1}{N}, \dots, \frac{N/2-1}{N} \tag{1.50}$$

因此,离散频率轴的索引 k k k 给出为 [ − N / 2 , N / 2 − 1 ] [-N/2, N/2-1] [N/2,N/21],或:

$$k = -\frac{N}{2}, -\frac{N}{2}+1, \dots, -1, 0, 1, \dots, \frac{N}{2}-1$$$$\frac{k}{N} = -0.5, -0.5+\frac{1}{N}, \dots, 0, \frac{1}{N}, \dots, +0.5-\frac{1}{N}$$

这是在图 1.47 中绘制的。将上述公式与公式 (1.48) 进行比较,我们得出了离散频率 k / N k/N k/N 与连续频率 F F F 之间的关系为:

$$\frac{k}{N} = \frac{F}{F_s} \tag{1.51}$$

公式 (1.51) 中离散频率 k / N k/N k/N 的单位是:

$$\text{周期/秒} \div \text{样本/秒} = \text{周期/样本}$$

注释 1.8 离散频率轴

公式 (1.51) 是数字信号处理中两个最基本的关系之一,另一个是采样定理公式 (1.37)。这些是连续和离散世界之间的两个接口。

在频率域中,作为存储在处理器存储器中的一系列数字。

如果对连续和离散频率域有疑问,请参考公式 (1.51)!

image

图 1.47:在频域中对轴进行采样

如果已知离散频率 k N \frac{k}{N} Nk 和采样率 F S F_S FS,则实际连续频率可以通过公式 (1.51) 计算:

$$F = F_S \cdot \frac{k}{N}$$

例如,设 F S = 3 F_S = 3 FS=3 kHz 且 N = 32 N = 32 N=32

  • k = 0 k = 0 k=0 时, F = 3000 ⋅ 0 32 = 0 F = 3000 \cdot \frac{0}{32} = 0 F=3000320=0 Hz
  • k = 1 k = 1 k=1 时, F = 3000 ⋅ 1 32 = 93.75 F = 3000 \cdot \frac{1}{32} = 93.75 F=3000321=93.75 Hz
  • k = 2 k = 2 k=2 时, F = 3000 ⋅ 2 32 = 187.5 F = 3000 \cdot \frac{2}{32} = 187.5 F=3000322=187.5 Hz

因此,每个 k k k 都称为频率桶(frequency bin) ,而值 N N N 决定了输入样本的数量和离散频率域的分辨率。理解公式 (1.37) 和公式 (1.51) 将使进一步的概念更容易掌握。

总之,唯一离散频率 k N \frac{k}{N} Nk 的范围是:

$$-0.5 \leq \frac{k}{N} < +0.5 \tag{1.52}$$

这一组复数正弦波在图 1.48 中绘制,突出显示了离散频率索引 k k k 的旋转方向。负 k k k 的索引表示顺时针旋转方向,而正 k k k 的索引表示逆时针旋转方向。请注意,当 k N \frac{k}{N} Nk 从 -0.5 增加到 0 时,离散时间信号的振荡频率减小;而当 k N \frac{k}{N} Nk 从 0 增加到 +0.5 时,振荡频率增加。记住, k N = − 0.5 \frac{k}{N} = -0.5 Nk=0.5 k N = + 0.5 \frac{k}{N} = +0.5 Nk=+0.5 是相同的。

image

图 1.48:绘制的复数正弦波,用于突出显示左侧的离散频率轴 k k k

有些人更习惯于使用二维图形而不是三维图形。因此,这组包含 I 和 Q 分量的复数正弦波在图 1.49 中显示,设 N = 8 N = 8 N=8

以下是该图中的一些关键观察:

  • 对于 k = 0 k = 0 k=0,I 正弦波为 1,因为 cos ⁡ 0 = 1 \cos 0 = 1 cos0=1,而 Q 正弦波为 0,因为 sin ⁡ 0 = 0 \sin 0 = 0 sin0=0
  • k = 1 k = 1 k=1 类似,I 和 Q 波形 cos ⁡ 2 π ⋅ 1 N \cos 2\pi \cdot \frac{1}{N} cos2πN1 sin ⁡ 2 π ⋅ 1 N \sin 2\pi \cdot \frac{1}{N} sin2πN1 N = 8 N = 8 N=8 个样本内完成一个完整的周期,每个具有离散频率 k N \frac{k}{N} Nk 的复数正弦波在 N 个样本的区间内跨越 k 个完整周期。
  • 对于负值的 k k k,I 正弦波保持不变,而 Q 正弦波则改变符号。在复数正弦波的上下文中,这与顺时针旋转的负频率定义相符。
  • 最后,要理解离散频率“周期/样本”的单位含义,请考虑图中 k = 2 k = 2 k=2 的情况。注意对于 N = 8 N = 8 N=8,离散频率等于 k N = 2 8 = 1 4 \frac{k}{N} = \frac{2}{8} = \frac{1}{4} Nk=82=41 周期/样本。请注意,这个正弦波在从一个样本到下一个样本之间完成了四分之一的周期,因此频率为 1/4 周期/样本。

image

图 1.49:N = 8 个复正弦波,其频率在离散频率轴上形成“刻度”

示例 1.4

考虑一个信号

$$s(t) = 2\cos(2\pi 1000t) + 7\sin(2\pi 3000t) + 3\cos(2\pi 6000t)$$

很明显,该信号中存在的连续频率为 F 1 = 1 kHz F_1 = 1 \text{kHz} F1=1kHz F 2 = 3 kHz F_2 = 3 \text{kHz} F2=3kHz F 3 = 6 kHz F_3 = 6 \text{kHz} F3=6kHz。由于最大频率为 6 kHz,采样定理给出奈奎斯特率为 2 × 6 kHz = 12 kHz 2 \times 6 \text{kHz} = 12 \text{kHz} 2×6kHz=12kHz

现在假设该信号以 F s = 5 kHz F_s = 5 \text{kHz} Fs=5kHz 采样,则折叠频率为 0.5 F s = 2.5 kHz 0.5F_s = 2.5 \text{kHz} 0.5Fs=2.5kHz。以等间隔 t = n T s t = nT_s t=nTs 对信号进行采样,得到

$$s[n] = s(t) |_{t=nT_s} = s \left(\frac{n}{F_s}\right) = 2\cos 2\pi \frac{1}{5} n + 7\sin 2\pi \frac{3}{5} n + 3\cos 2\pi \frac{6}{5} n = 2\cos 2\pi \frac{1}{5} n + 7\sin 2\pi \left(1 - \frac{2}{5}\right) n + 3\cos 2\pi \left(1 + \frac{1}{5}\right) n$$

其中的调整是为了将所有离散频率限制在 − 0.5 -0.5 0.5 到 0.5 之间。接下来,

$$s[n] = 2\cos 2\pi \frac{1}{5} n + 7\sin 2\pi \left(-\frac{2}{5}\right) n + 3\cos 2\pi \left(\frac{1}{5}\right) n = 5\cos 2\pi \frac{1}{5} n - 7\sin 2\pi \frac{2}{5} n$$

如果将该信号在连续时间域中重建,则存在的频率为 k / N = 1 / 5 k/N = 1/5 k/N=1/5 k / N = − 2 / 5 k/N = -2/5 k/N=2/5。从等式(1.51)可以看出,它们作为连续频率出现在 F 1 = 5 × 1 / 5 = 1 kHz F_1 = 5 \times 1/5 = 1 \text{kHz} F1=5×1/5=1kHz 5 × − 2 / 5 = − 2 kHz 5 \times -2/5 = -2 \text{kHz} 5×2/5=2kHz。由于只有 1 kHz 小于 0.5 F s 0.5F_s 0.5Fs 且在无混叠范围内,因此采样后仍存在。其他两个频率高于折叠频率,因此被混叠到 F 2 − F s = 3 − 5 = − 2 kHz F_2 - F_s = 3 - 5 = -2 \text{kHz} F2Fs=35=2kHz F 3 − F s = 6 − 5 = 1 kHz F_3 - F_s = 6 - 5 = 1 \text{kHz} F3Fs=65=1kHz

在此有两点补充说明:

  • 通过 IQ 标记法处理复数有几个优点。例如,它可以避免像 exp ⁡ ( j θ ) \exp(j\theta) exp(jθ) 这样的标准复数表达式,虽然要付出额外数学运算的代价。更重要的是,它描述了数学运算在实际电子电路中的实现方式。此外,它提醒我们相位在信号分析中同样重要。
  • 在本文中,每次我写涉及离散频率的表达式时,我都将其表示为 2 π k N n 2\pi \frac{k}{N}n 2πNkn 2 π ( k / N ) n 2\pi(k/N)n 2π(k/N)n,而不是大多数文本中使用的 2 π k n / N 2\pi kn/N 2πkn/N。前者清楚地表示了离散频率 k / N k/N k/N 的存在,类似于 2 π F t 2\pi Ft 2πFt 中的变量 F F F,而后者容易丢失这种意义。

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

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

相关文章

光敏电阻传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.光敏电阻传感器介绍 2.原理图 三、程序设计 main.c文件 ldr.h文件 ldr.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器&#xff0c;又称为光…

计网_整体概念逻辑简单过一遍

1. 简述四层TCP/IP 网络模型 由于 OSI 模型实在太复杂&#xff0c;提出的也只是概念理论上的分层&#xff0c;并没有提供具体的实现方案。 事实上&#xff0c;我们比较常见&#xff0c;也比较实用的是四层模型&#xff0c;即 TCP/IP 网络模型&#xff0c; 1.1 应用层 在四…

萤石云 C++ SDK使用指南

今天继续指南系列&#xff0c;给出了萤石云QtDemo配置使用以及sdk开发中常见问题的指南 SDK下载 一、demo使用配置 1、demo环境配置 Demo 所使用Qt SDK版本&#xff1a;Qt4.8.5 Demo两种开发模式&#xff1a; 下载Qt Creator for Windows&#xff0c;使用Qt Creator作为I…

计算机毕业设计选题推荐-办公管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【方法】如何编辑“只读方式”下的Word文档?

以“只读方式”打开的Word文档&#xff0c;怎样才能正常编辑呢&#xff1f;Word文档有两种“只读方式”&#xff0c;我们分别来看看如何编辑。 方式一&#xff1a;无密码的只读方式 当Word文档设置了无密码的“只读方式”&#xff0c;打开文档后会看到提示“是否以只读方式打开…

设计与实现基于Java的零工市场系统

零工市场&#xff0c;也被称为临时工市场或自由职业市场&#xff0c;为求职者和雇主提供了一个灵活的、按需匹配的工作机会平台。为了满足日益增长的零工经济需求&#xff0c;我们设计并实现了一个基于Java的零工市场系统&#xff0c;该系统具备用户管理、任务发布、任务申请、…

基于Python的音乐推荐系统的设计与实现---附源码92641

摘 要 基于Python大数据技术的音乐推荐系统设计与实现旨在利用大数据处理和分析技术&#xff0c;为用户提供个性化、精准的音乐推荐服务。该系统将结合用户行为数据、音乐特征和大规模数据集&#xff0c;采用机器学习和深度学习算法&#xff0c;实现智能化的音乐推荐功能。 系统…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-21读写I2C接口EEPROM实验

软件版本&#xff1a;VIVADO2021.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台&#xff1a;米联客-MLK-H3-CZ08-7100开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

B样条曲线法

1. B样条曲线法概述 1.1 B样条曲线法的定义与发展 B样条曲线法是一种基于控制点和节点向量的数学模型&#xff0c;用于几何建模和曲线设计。该方法由Paul de Casteljau和Pierre Bezier等人在20世纪60年代提出&#xff0c;并迅速发展成为一种广泛应用于计算机辅助设计&#xf…

Docker php文件本地包含--pearcmd.php利用

目录 前言 环境搭建 pearcmd.php巧妙利用 渗透 前言 docker包含日志文件&#xff0c;基本不可能&#xff0c;就以我自身的一个项目来说&#xff0c;在尝试包含日志文件时发现&#xff0c;客户将他的日志文件从定向到了设备文件&#xff0c;而php没有包含设备文件的权限 然…

【Python Web开发】Flask+HTML学习笔记

目录 Flask框架一、安装flask库二、运行一个网页三、库函数及变量 HTML标签语言一、基本格式二、标签2.1 块级标签2.1.1 标题2.1.2 div2.1.3 图片2.1.4 列表2.1.5 表格 2.2 行内标签2.2.1 span2.2.2 超链接2.2.3 输入 2.3 其他标签2.3.1 提交表单 Flask框架 一、安装flask库 …

Unity 3D学习资料集合

本文包含了unity3D 游戏开发相关的学习资料&#xff0c;包含了入门、进阶、性能优化、面试和书籍等学习资料&#xff0c;含金量非常高&#xff0c;在这里分享给大家&#xff0c;欢迎收藏。 学习社区 1.Unity3D开发者 Unity3D开发者论坛是一个专注于Unity引擎的开发者社区。在这…

国内AI工具分类大盘点,这些神器你都用过了吗?

AI爆发到现成已经快2年了&#xff0c;基本上我自己也使用了近2年的AI产品。国内、外的AI产品体验了很多。 从最初文本聊天类的gpt、new bing、文心一言、通义千问&#xff0c;到后面绘图类Midjourney、Stable Diffusion、文心一格、通义万相等等。 在这里来分享我自己使用的一…

游戏设计师:创造虚拟世界的艺术家

游戏设计师&#xff0c;这个听起来富有创造性和趣味的职业&#xff0c;正逐渐成为数字娱乐行业中备受瞩目和追捧的角色。他们是虚拟世界的建造者、体验的创造者和叙事的编织者。在电子游戏风靡全球的今天&#xff0c;游戏设计师的工作远不只是画画或编故事那么简单&#xff0c;…

如何设计接口测试用例?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口测试是一种软件测试方法&#xff0c;用于验证软件系统中不同组件或模块之间的接口是否正常工作&#xff0c;主要关注于接口的输入和输出&#xff0c;以及接…

Linux的远程登录教程(超详细)

我们在进行远程登录时要用的一种协议叫SSH&#xff0c;那什么叫SSH呢&#xff1f; SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于在不安全的网络中提供安全的远程登录和其他网络服务。它通过加密技术确保数据在传输过程中的机密性和完整性&#xff…

ESP32-IDF http请求崩溃问题分析与解决

文章目录 esp32s3 http请求崩溃问题代码讨论修正后不崩溃的代码esp32相关文章 ESP32S3板子, 一运行http请求百度网站的例子, 就会panic死机, 记录下出现及解决过程. esp32s3 http请求崩溃 一执行http请求的perform就会崩溃, 打印如图 ESP32-IDF 的http请求代码是根据官方dem…

DDK拧紧控制器AFC1500维修_无法通讯问题怎么解决

‌DDK拧紧控制器在工业装配领域以其高效、精准的性能受到众多企业的青睐。特别是在汽车制造、航空航天、重型机械和其他需要大量螺栓紧固的行业。 ‌工具小巧 拧紧力范围广泛‌ 联网功能强大 配备扭矩和角度传感器 多回路控制器 一、检查电源及插头‌&#xff1a;首先应检…

2024公立医院绩效考核进行中,契约锁电子签章助力电子病历评级

2024年公立医院绩效考核正在进行中&#xff0c;由国家卫健委最新印发的《国家二级公立医院绩效考核操作手册&#xff08;2024版&#xff09;》以及《国家三级公立医院绩效考核操作手册&#xff08;2024版&#xff09;》将“电子病历应用功能水平分析应逐步提高”列为新增考核指…

【相似度计算 / 2】

题目 代码 #include <bits/stdc.h> using namespace std; unordered_set<string> s1, s2; int cnt1, cnt2, cnt; int n, m; void process(string& x) {for(char& c : x){if(c > a) continue;else c a - A;} } int main() {cin >> n >> m;…