1.7 离散频率

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.mzph.cn/news/878320.shtml

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

相关文章

iPhone备忘录不小心删除了怎么办?

在日常使用iPhone的过程中&#xff0c;备忘录作为我们记录重要信息、灵感闪现和日常琐事的小帮手&#xff0c;其重要性不言而喻。然而&#xff0c;有时候因为操作失误或是不小心点击&#xff0c;我们可能会将珍贵的备忘录内容删除&#xff0c;这无疑会让人感到焦虑与不安。但请…

APP长文本内容编辑器功能实现方案

背景 CSDN APP 中原有编辑器页面为纯H5适配&#xff0c;整体用户交互体验差&#xff0c;如何优化APP端编辑器用户体验是我们团队需要思考的问题。下面我们以iOS为例展开讨论。 一、方案调研 我们分析了几款国内内容发布的APP&#xff0c;如知乎、今日头条、简书&#xff0c;…

华为海思招聘-芯片与器件设计工程师-数字芯片方向- 机试题——(共九套)(每套四十题)

华为海思招聘-芯片与器件设计工程师-数字芯片方向- 机试题-题目分享——共九套&#xff08;每套四十题&#xff09; 岗位——芯片与器件设计工程师 岗位意向——数字芯片 真题题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&am…

不再畏惧猫咪浮毛,希喂、安德迈、美的宠物空气净化器性能PK

夏天来了&#xff0c;宠物换毛季加上天气闷热&#xff0c;难消的异味和漫天乱飞的猫毛双重夹击&#xff0c;家里的空气质量直线下降。还是鼻炎患者的我感到非常不适&#xff0c;有股想把家里两只毛孩子逐出家门的冲动。每天不是梳毛就是在吸毛的路上&#xff0c;猫咪们还爱到处…

若依 Vue3的前后端分离系统管理 创建

RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0…

uniapp 封装uni.login 实现全局调用

封装utils app.vue中 使用globalData 注册 utils 页面中使用方法 定义app 调用方法

【Docker】个人笔记

文章目录 Docker三个基本概念镜像(Image)容器(Container)仓库(Repository) Docker命令基础命令查看版本信息显示详细信息从仓库拉取镜像列出本地存储的镜像删除一个或多个镜像列出所有运行中的容器运行一个新的容器停止一个运行中的容器启动一个已停止的容器重启一个容器删除一…

回归预测|基于卷积神经网络-鲸鱼优化-最小二乘支持向量机的数据回归预测Matlab程序 CNN-WOA-LSSVM

回归预测|基于卷积神经网络-鲸鱼优化-最小二乘支持向量机的数据回归预测Matlab程序 CNN-WOA-LSSVM 文章目录 一、基本原理1. 数据预处理2. 特征提取&#xff08;CNN&#xff09;3. 参数优化&#xff08;WOA&#xff09;4. 模型训练&#xff08;LSSVM&#xff09;5. 模型评估和优…

(最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)

&#xff08;最新&#xff09;华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—&#xff08;共12套&#xff09;&#xff08;每套四十题&#xff09; 岗位——硬件技术工程师 岗位意向——单板硬件开发 真题题目分享&#xff0c;完整版带答案(有答案和解析&#xff0…

单位的一位干部去世了,该单位领导参加他的追悼会致辞是这样写的?

单位的一位干部去世了&#xff0c;该单位领导参加他的追悼会致辞是这样写的&#xff1f; 这是一篇单位工会领导参加本单位一位普通干部追悼会的致词 &#xff08;范文点评&#xff09; 胡某晔同志追悼会悼词 各位来宾、各位亲友&#xff1a; 今天&#xff0c;我们怀着十分沉痛…

基于深度学习的单目标跟踪系统

基于深度学习的单目标跟踪&#xff0c;效果吊打传统算法&#xff0c;3060显卡上达到实时&#xff0c;代码python和c两个版本都有。 基于深度学习的单目标跟踪系统是一种先进的计算机视觉技术&#xff0c;它可以实现实时的、高精度的目标跟踪。与传统的基于特征匹配或模板匹配的…

【宝马中国-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

关于武汉芯景科技有限公司的实时时钟芯片XJ8337开发指南(兼容DS1337)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.时钟功能 2.闹钟功能&#xff08;两个闹钟&#xff09; 3.振荡器停止控制 4.频率输出&#xff08;1HZ、1.096KHZ、8.192KHZ、32.768KHZ&#xff09; 5.振荡器停止检测 6.闹钟中断标志 四、程序代…

#C++ 笔记三

七、异常处理 1.概念 异常是程序在执行期间产生的问题。 C异常是指在程序运行时发生的特殊情况&#xff0c;比如下标越界等。 异常提供了一种转移程序控制权的方式。 2.抛出异常 throw语句的操作数可以是任意表达式&#xff0c;表达式结果的类型决定了抛出异常的类型。 …

进程和线程(操作系统八股文part2)

一个操作系统的进程和线程部分的笔记&#xff0c;大部分来源于&#xff1a;小林coding和Javaguide&#xff0c;以及操作系统黑书。 进程和线程 什么是进程 运行中的程序叫进程**&#xff08;Process&#xff09;**。 进程是资源分配的最小单位&#xff0c;线程是执行的最小…

redis分布式是如何实现的(面试版)

需要结合项目中的业务进行回答&#xff0c;通常情况下&#xff0c;分布式锁使用的场景&#xff1a;集群情况下的定时任务、抢单、幂等性场景。 下面先来看一个抢卷场景&#xff1a; 以下情况会出现超卖情况&#xff1a; 因为线程会交替执行&#xff0c;所以线程查询优惠价的数…

Socket编程---UDP篇

目录 一. UDP协议 二. Socket编程 2.1 sockaddr家族 2.2 接口介绍 三. 服务端实现 四. 服务端调用实现 五. 客户端实现 六. 效果展示 一. UDP协议 何为UDP协议的含义&#xff0c;上篇粗略提及了一下TCP与UDP的区别&#xff1a; TCP&#xff1a; •…

SpringBoot集成kafka-消息转发@sendTo()注解

SpringBoot集成kafka-消息转发sendTo 1、消费者2、生产者3、实体类对象4、JSON工具类5、配置文件application.yml6、测试类7、测试 1、消费者 启动消费者进行消息监听&#xff0c;消费者A监听到生产者发送的消息使用sendTo()注解将消息转发给消费者B package com.power.consu…

Django+Vue二手交易平台的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质创作者&…

cesium 地形获取和生成

1.先从网上下载12.5m精度的地形,然后叠加无人机的地形数据 2.使用global mapper pro合并并导出完整的tiff 3.使用cesiumLab进行tiff的文件数据切片生成terrain格式的数据