15、熵特征:概念、估计方法与金融应用

熵特征:概念、估计方法与金融应用

1. 动机

价格序列传递着关于供需力量的信息。在完美市场中,价格是不可预测的,因为每个观测值都传递了关于产品或服务的所有已知信息。而在非完美市场中,价格是基于部分信息形成的,一些参与者比其他参与者拥有更多信息,他们可以利用这种信息不对称获利。因此,估计价格序列的信息含量,并形成机器学习算法可以学习可能结果的特征是很有帮助的。例如,机器学习算法可能会发现,当价格包含的信息较少时,动量交易更有利可图;而当价格包含的信息较多时,均值回归交易更有利可图。

2. 香农熵

信息论之父克劳德·香农将熵定义为平稳数据源产生的(长消息上的)平均信息量。它是用唯一可解码的方式描述消息所需的每个字符的最小比特数。对于离散随机变量 $X$,其可能取值 $x \in A$,香农定义其熵为:
[H[X] \equiv - \sum_{x \in A} p[x] \log_2 p[x]]
其中,$0 \leq H[X] \leq \log_2 [\vert\vert A \vert\vert]$,$p[x]$ 是 $x$ 的概率,$\vert\vert A \vert\vert$ 是集合 $A$ 的大小。

熵可以解释为 $X$ 中信息内容的概率加权平均值,其中信息量以 $\log_2 \frac{1}{p[x]}$ 来衡量。低概率结果比高概率结果揭示更多信息,这就是以 $\log_2 \frac{1}{p[x]}$ 衡量信息的原因。

冗余度定义为:
[R[X] \equiv 1 - \frac{H[X]}{\log_2 [\vert\vert A \vert\vert]}]
其中,$0 \leq R[X] \leq 1$。

两个变量之间的互信息定义为联合概率密度与边际概率密度乘积的 Kullback - Leibler 散度:
[MI[X, Y] = E_{f[x,y]} \left[ \log \frac{f[x, y]}{f[x]f[y]} \right] = H[X] + H[Y] - H[X, Y]]
互信息总是非负的、对称的,当且仅当 $X$ 和 $Y$ 独立时等于零。对于正态分布的变量,互信息与熟悉的皮尔逊相关系数 $\rho$ 密切相关:
[MI[X, Y] = - \frac{1}{2} \log [1 - \rho^2]]

以下是一些熵估计器的资源:
- 在 R 中:http://cran.r-project.org/web/packages/entropy/entropy.pdf
- 在 Python 中:https://code.google.com/archive/p/pyentropy/

3. 插件(或最大似然)估计器

给定一个数据序列 $x_n^1$,我们可以形成该序列中所有长度为 $w < n$ 的单词的字典 $A_w$。对于任意长度为 $w$ 的单词 $y_w^1 \in A_w$,我们用 $\hat{p}_w[y_w^1]$ 表示该单词在 $x_n^1$ 中的经验概率。

假设数据是由平稳遍历过程生成的,根据大数定律,对于固定的 $w$ 和大的 $n$,经验分布 $\hat{p} w$ 将接近真实分布 $p_w$。在这种情况下,熵率(即每比特的平均熵)的自然估计器为:
[\hat{H}
{n,w} = - \frac{1}{w} \sum_{y_w^1 \in A_w} \hat{p}_w [y_w^1] \log_2 \hat{p}_w [y_w^1]]

由于经验分布也是真实分布的最大似然估计,这通常也被称为最大似然熵估计器。$w$ 的值应该足够大,以使 $\hat{H}_{n,w}$ 与真实熵 $H$ 足够接近。$n$ 的值需要比 $w$ 大得多,以便 $w$ 阶的经验分布接近真实分布。

以下是实现插件熵估计器的代码:

import time,numpy as np
#———————————————————————————————————————
def plugIn(msg,w):
    # Compute plug-in (ML) entropy rate
    pmf=pmf1(msg,w)
    out=-sum([pmf[i]*np.log2(pmf[i]) for i in pmf])/w
    return out,pmf
#———————————————————————————————————————
def pmf1(msg,w):
    # Compute the prob mass function for a one-dim discrete rv
    # len(msg)-w occurrences
    lib={}
    if not isinstance(msg,str):msg=''.join(map(str,msg))
    for i in xrange(w,len(msg)):
        msg_=msg[i-w:i]
        if msg_ not in lib:lib[msg_]=[i-w]
        else:lib[msg_]=lib[msg_]+[i-w]
    pmf=float(len(msg)-w)
    pmf={i:len(lib[i])/pmf for i in lib}
    return pmf

4. 莱姆佩尔 - 齐夫估计器

熵可以解释为复杂性的度量。复杂序列比规则(可预测)序列包含更多信息。莱姆佩尔 - 齐夫(LZ)算法可以有效地将消息分解为非冗余子串。我们可以根据莱姆佩尔 - 齐夫字典中的项数相对于消息长度来估计消息的压缩率。

4.1 LZ 压缩算法实现

def lempelZiv_lib(msg):
    i,lib=1,[msg[0]]
    while i<len(msg):
        for j in xrange(i,len(msg)):
            msg_=msg[i:j+1]
            if msg_ not in lib:
                lib.append(msg_)
                break
        i=j+1
    return lib

4.2 最长匹配长度计算

定义 $L_n^i$ 为 $i$ 之前的 $n$ 位中找到的最长匹配长度加 1:
[L_n^i = 1 + \max{l \vert \vert x_{i + l}^i = x_{j + l}^j \text{ 对于某些 } i - n \leq j \leq i - 1, l \in [0, n]}]

以下是计算最长匹配长度的代码:

def matchLength(msg,i,n):
    # Maximum matched length+1, with overlap.
    # i>=n & len(msg)>=i+n
    subS=''
    for l in xrange(n):
        msg1=msg[i:i+l+1]
        for j in xrange(i-n,i):
            msg0=msg[j:j+l+1]
            if msg1==msg0:
                subS=msg1
                break # search for higher l.
    return len(subS)+1,subS # matched length + 1

4.3 LZ 熵率估计

奥恩斯坦和韦斯证明了:
[\lim_{n \to \infty} \frac{L_n^i}{\log_2 [n]} = \frac{1}{H}]
康托伊安尼斯利用这个结果来估计香农熵率。他估计 $\frac{L_n^i}{\log_2 [n]}$ 的平均值,并使用该平均值的倒数来估计 $H$。

滑动窗口 LZ 估计器 $\hat{H} {n,k}$ 定义为:
[\hat{H}
{n,k} = \left[ \frac{1}{k} \sum_{i = 1}^{k} \frac{L_n^i}{\log_2 [n]} \right]^{-1}]
递增窗口 LZ 估计器 $\hat{H} n$ 定义为:
[\hat{H}_n = \left[ \frac{1}{n} \sum
{i = 2}^{n} \frac{L_i^i}{\log_2 [i]} \right]^{-1}]

4.4 改进的估计器

为了避免 Doeblin 条件,可以使用以下改进的估计器:
[\tilde{H} {n,k} = \frac{1}{k} \sum {i = 1}^{k} \frac{\log_2 [n]}{L_n^i}]
[\tilde{H} n = \frac{1}{n} \sum {i = 2}^{n} \frac{\log_2 [i]}{L_i^i}]

4.5 窗口大小的确定

在估计 $\tilde{H}_{n,k}$ 时,一个实际问题是如何确定窗口大小 $n$。一般认为 $k + n$ 应近似等于消息长度。考虑到 $L_n^i$ 的偏差为 $O[1 / \log_2 [n]]$,方差为 $O[1 / k]$,偏差/方差权衡在 $k \approx O[(\log_2 [n])^2]$ 左右达到平衡。

4.6 康托伊安尼斯方法实现

def konto(msg,window=None):
    '''
    * Kontoyiannis’ LZ entropy estimate, 2013 version (centered window).
    * Inverse of the avg length of the shortest non-redundant substring.
    * If non-redundant substrings are short, the text is highly entropic.
    * window==None for expanding window, in which case len(msg)%2==0
    * If the end of msg is more relevant, try konto(msg[::-1])
    '''
    out={'num':0,'sum':0,'subS':[]}
    if not isinstance(msg,str):msg=''.join(map(str,msg))
    if window is None:
        points=xrange(1,len(msg)/2+1)
    else:
        window=min(window,len(msg)/2)
        points=xrange(window,len(msg)-window+1)
    for i in points:
        if window is None:
            l,msg_=matchLength(msg,i,i)
            out['sum']+=np.log2(i+1)/l # to avoid Doeblin condition
        else:
            l,msg_=matchLength(msg,i,window)
            out['sum']+=np.log2(window+1)/l # to avoid Doeblin condition
        out['subS'].append(msg_)
        out['num']+=1
    out['h']=out['sum']/out['num']
    out['r']=1-out['h']/np.log2(len(msg)) # redundancy, 0<=r<=1
    return out
#———————————————————————————————————————
if __name__=='__main__':
    msg='101010'
    print konto(msg*2)
    print konto(msg+msg[::-1])

4.7 注意事项

  • 熵率是在极限情况下定义的,当消息较短时,可以多次重复相同的消息。
  • 由于匹配窗口必须对称,消息长度为偶数时最后一位才会被考虑用于匹配。对于奇数长度的消息,可以移除第一位。
  • 当消息末尾有不规则序列时,一些最终位会被忽略。当消息末尾特别重要时,可以分析反转消息的熵。

5. 编码方案

估计熵需要对消息进行编码,以下是几种常见的编码方案:

5.1 二进制编码

将连续变量离散化,例如,对于收益率流 $r_t$,当 $r_t > 0$ 时编码为 1,$r_t < 0$ 时编码为 0,移除 $r_t = 0$ 的情况。在价格条采样的收益率序列中,二进制编码自然出现,因为 $\vert r_t \vert$ 近似恒定。但当 $\vert r_t \vert$ 取值范围较广时,二进制编码会丢弃潜在有用信息。可以通过按从属随机过程采样价格来部分解决异方差问题,例如交易条和成交量条。

5.2 分位数编码

根据 $r_t$ 所属的分位数为其分配一个代码。分位数边界使用样本内时期(训练集)确定。这种方法在样本内和样本外都能使每个代码分配的观测值数量大致相同,平均来说会增加熵读数。

5.3 Sigma 编码

固定离散化步长 $\sigma$,将 $r_t$ 编码为:$r_t \in [\min {r}, \min {r} + \sigma)$ 时赋值为 0,$r_t \in [\min {r} + \sigma, \min {r} + 2\sigma)$ 时赋值为 1,依此类推。与分位数编码不同,每个代码覆盖 $r_t$ 范围的相同部分。由于代码分布不均匀,平均来说熵读数会比分位数编码小,但“罕见”代码的出现会导致熵读数飙升。

以下是编码方案的比较表格:
| 编码方案 | 特点 | 适用情况 | 熵读数特点 |
| ---- | ---- | ---- | ---- |
| 二进制编码 | 简单,按符号编码 | $\vert r_t \vert$ 近似恒定 | 可能丢弃信息 |
| 分位数编码 | 按分位数分配代码,样本内外分配均匀 | 一般情况 | 平均熵读数较高 |
| Sigma 编码 | 按固定步长编码,代码覆盖范围相同 | 价格流确定字典 | 平均熵读数较低,“罕见”代码有峰值 |

6. 高斯过程的熵

独立同分布正态随机过程的熵可以推导为:
[H = \frac{1}{2} \log [2 \pi e \sigma^2]]
对于标准正态分布,$H \approx 1.42$。

这个结果有两个用途:
- 可以用来基准测试熵估计器的性能。从标准正态分布中抽取样本,找到估计器、消息长度和编码的组合,使熵估计值 $\hat{H}$ 足够接近理论值 $H$。
- 可以通过 $H$ 与 $\sigma$ 的关系,得到熵隐含的波动率估计,前提是收益率确实来自正态分布。

mermaid 流程图展示高斯过程熵的应用:

graph LR
    A[抽取标准正态样本] --> B[选择估计器、消息长度和编码]
    B --> C[计算熵估计值 $\hat{H}$]
    C --> D{ $\hat{H}$ 是否接近理论值 $H$? }
    D -- 是 --> E[基准测试通过]
    D -- 否 --> B
    F[已知 $H$] --> G[计算熵隐含波动率 $\sigma_H$]

综上所述,我们介绍了熵的基本概念、估计方法和编码方案,以及高斯过程熵的应用。这些知识对于理解和分析金融市场中的信息含量和复杂性具有重要意义。在后续内容中,我们将探讨熵与广义均值的关系,以及熵在金融市场建模中的一些应用。

7. 熵与广义均值

考虑一组实数 $x = {x_i} {i = 1, \ldots, n}$ 和权重 $p = {p_i} {i = 1, \ldots, n}$,其中 $0 \leq p_i \leq 1$ 且 $\sum_{i = 1}^{n} p_i = 1$。广义加权均值定义为:
[M_q[x, p] = \left( \sum_{i = 1}^{n} p_i x_i^q \right)^{1/q}]
对于 $q < 0$,要求 $x_i > 0$。其他常见均值可以作为特殊情况得到:
- 最小值:$\lim_{q \to -\infty} M_q[x, p] = \min_i {x_i}$
- 调和均值:$M_{-1}[x, p] = \left( \sum_{i = 1}^{n} p_i x_i^{-1} \right)^{-1}$
- 几何均值:$\lim_{q \to 0} M_q[x, p] = e^{\sum_{i = 1}^{n} p_i \log [x_i]} = \prod_{i = 1}^{n} x_i^{p_i}$
- 算术均值:$M_1[x, {n^{-1}} {i = 1, \ldots, n}] = n^{-1} \sum {i = 1}^{n} x_i$
- 二次均值:$M_2[x, p] = \left( \sum_{i = 1}^{n} p_i x_i^2 \right)^{1/2}$
- 最大值:$\lim_{q \to +\infty} M_q[x, p] = \max_i {x_i}$

在信息理论中,当 $x = {p_i} {i = 1, \ldots, n}$ 时,有:
[M_q[p, p] = \left( \sum
{i = 1}^{n} p_i p_i^q \right)^{1/q}]
定义 $N_q[p] = \frac{1}{M_{q - 1}[p, p]}$,对于 $q > 1$,如果 $p_i$ 在 $k$ 个不同的索引上均匀分布,其他地方为 0,则 $N_q[p] = k$。这意味着 $N_q[p]$ 给出了 $p$ 中项目的有效数量或多样性。

通过 Jensen 不等式可以证明 $\frac{\partial M_q[p, p]}{\partial q} \geq 0$,因此 $\frac{\partial N_q[p]}{\partial q} \leq 0$。较小的 $q$ 值为分区元素分配更均匀的权重,相对更重视不太常见的元素,$\lim_{q \to 0} N_q[p]$ 就是非零 $p_i$ 的总数。

香农熵可以表示为:
[H[p] = \sum_{i = 1}^{n} -p_i \log [p_i] = - \log [\lim_{q \to 0} M_q[p]] = \log [\lim_{q \to 1} N_q[p]]]
这表明熵可以解释为列表 $p$ 中有效项目数量的对数,其中 $q \to 1$。

以下是不同均值与 $q$ 值关系的表格:
| 均值类型 | $q$ 值 | 表达式 |
| ---- | ---- | ---- |
| 最小值 | $q \to -\infty$ | $\min_i {x_i}$ |
| 调和均值 | $q = -1$ | $\left( \sum_{i = 1}^{n} p_i x_i^{-1} \right)^{-1}$ |
| 几何均值 | $q \to 0$ | $e^{\sum_{i = 1}^{n} p_i \log [x_i]}$ |
| 算术均值 | $q = 1$ | $n^{-1} \sum_{i = 1}^{n} x_i$ |
| 二次均值 | $q = 2$ | $\left( \sum_{i = 1}^{n} p_i x_i^2 \right)^{1/2}$ |
| 最大值 | $q \to +\infty$ | $\max_i {x_i}$ |

8. 熵在金融领域的应用

8.1 市场效率

当套利机制充分利用所有机会时,价格会立即反映所有可用信息,变得不可预测,市场是有效的。相反,当套利不完美时,价格包含不完整信息,会出现可预测的模式。熵可以衡量价格序列的冗余度,熵越高,冗余度越低,信息含量越大,市场效率越高。例如,泡沫通常出现在低熵(压缩)市场中。

8.2 最大熵生成

在可能的未来结果中,最大化熵的结果可能是最有利可图的,因为它最难以被频率统计模型预测。这种情况可能会触发止损,引发反馈机制,加剧价格波动。

8.3 投资组合集中度

对于一个 $N \times N$ 的协方差矩阵 $V$,计算其特征值分解 $VW = W\Lambda$,得到因子载荷向量 $f_{\omega} = W’\omega$,其中 $\omega$ 是分配向量,$\sum_{n = 1}^{N} \omega_n = 1$。每个主成分贡献的风险比例为:
[\theta_i = \frac{[f_{\omega}] i^2 \Lambda {i, i}}{\sum_{n = 1}^{N} [f_{\omega}] n^2 \Lambda {n, n}}]
其中 $\sum_{i = 1}^{N} \theta_i = 1$,且 $\theta_i \in [0, 1]$。投资组合集中度的熵启发式定义为:
[H = 1 - \frac{1}{N} e^{-\sum_{n = 1}^{N} \theta_n \log [\theta_n]}]

8.4 市场微观结构

Easley 等人的研究表明,在好坏消息概率相等的情况下,知情交易概率(PIN)可以表示为:
[PIN = \frac{\alpha \mu}{\alpha \mu + 2 \varepsilon}]
其中 $\mu$ 是知情交易者的到达率,$\varepsilon$ 是不知情交易者的到达率,$\alpha$ 是信息事件的概率。在成交量时钟下,PIN 可以简化为 VPIN:
[VPIN = \frac{\alpha \mu}{\alpha \mu + 2 \varepsilon} = \frac{\alpha \mu}{V} \approx \frac{1}{V} E[|2V_{B}^{\tau} - V|] = E[|2v_{B}^{\tau} - 1|]]
其中 $v_{B}^{\tau} = \frac{V_{B}^{\tau}}{V}$,$2v_{B}^{\tau} - 1$ 表示订单流不平衡 $OI_{\tau}$,$OI_{\tau} \in [-1, 1]$。

为了确定逆向选择的概率,需要确定订单流不平衡的不可预测性。可以通过以下步骤实现:
1. 给定一系列成交量条,确定每个条中分类为买入的成交量比例 $v_{B}^{\tau} \in [0, 1]$。
2. 计算 ${v_{B}^{\tau}}$ 的 $q$ 分位数,定义一组 $q$ 个不相交的子集 $K = {K_1, \ldots, K_q}$。
3. 将每个 $v_{B}^{\tau}$ 映射到其中一个不相交的子集,$f: v_{B}^{\tau} \to {1, \ldots, q}$。
4. 对 ${v_{B}^{\tau}}$ 进行量化,为每个值 $v_{B}^{\tau}$ 分配其所属子集的索引,得到量化消息 $X = [f[v_{B}^1], f[v_{B}^2], \ldots, f[v_{B}^N]]$。
5. 使用康托伊安尼斯的莱姆佩尔 - 齐夫算法估计熵 $H[X]$。
6. 计算累积分布函数 $F[H[X]]$,并将 ${F[H[X_{\tau}]]}_{\tau = 1, \ldots, N}$ 作为特征来预测逆向选择的概率。

mermaid 流程图展示市场微观结构中逆向选择概率的计算过程:

graph LR
    A[确定 $v_{B}^{\tau}$] --> B[计算 $q$ 分位数]
    B --> C[定义子集 $K$]
    C --> D[映射 $v_{B}^{\tau}$ 到子集]
    D --> E[量化得到消息 $X$]
    E --> F[估计熵 $H[X]$]
    F --> G[计算累积分布函数 $F[H[X]]$]
    G --> H[预测逆向选择概率]

9. 练习

9.1 练习 1

  • 对 E - mini S&P 500 期货形成美元条。
    1. 使用二进制方法对收益率序列进行量化。
    2. 使用分位数编码,使用 10 个字母对收益率序列进行量化。
    3. 使用 Sigma 编码,其中 $\sigma$ 是所有条收益率的标准差,对收益率序列进行量化。
    4. 使用插件方法计算三个编码序列的熵。
    5. 使用康托伊安尼斯方法,窗口大小为 100,计算三个编码序列的熵。

9.2 练习 2

  • 使用练习 1 中的条。
    1. 计算收益率序列 ${r_t}$。
    2. 按以下方式编码序列:如果 $r_t r_{t - 1} < 0$ 编码为 0,如果 $r_t r_{t - 1} \geq 0$ 编码为 1。
    3. 将序列划分为 1000 个不重叠的等大小子集(可能需要丢弃开头的一些观测值)。
    4. 使用插件方法计算 1000 个编码子集的熵。
    5. 使用康托伊安尼斯方法,窗口大小为 100,计算 1000 个编码子集的熵。
    6. 计算步骤 4 和步骤 5 结果的相关性。

9.3 练习 3

  • 从标准正态分布中抽取 1000 个观测值。
    1. 这个过程的真实熵是多少?
    2. 根据 8 个分位数对观测值进行标记。
    3. 使用插件方法估计熵。
    4. 使用康托伊安尼斯方法估计熵:
      • 使用窗口大小为 10。
      • 使用窗口大小为 100。

9.4 练习 4

  • 使用练习 3 中的抽取值 ${x_t}_{t = 1, \ldots, 1000}$。
    1. 计算 $y_t = \rho y_{t - 1} + x_t$,其中 $\rho = 0.5$,$y_0 = 0$。
    2. 根据 8 个分位数对 ${y_t}$ 观测值进行标记。
    3. 使用插件方法估计熵。
    4. 使用康托伊安尼斯方法估计熵:
      • 使用窗口大小为 10。
      • 使用窗口大小为 100。

9.5 练习 5

  • 假设一个包含 10 个持仓的投资组合,美元分配相等。
    1. 第 $i$ 个主成分贡献的总风险比例为 $\frac{1}{10}$,$i = 1, \ldots, 10$,投资组合的熵是多少?
    2. 第 $i$ 个主成分贡献的总风险比例为 $1 - \frac{i}{55}$,$i = 1, \ldots, 10$,投资组合的熵是多少?
    3. 第 $i$ 个主成分贡献的总风险比例为 $\alpha \frac{1}{10} + (1 - \alpha)(1 - \frac{i}{55})$,$i = 1, \ldots, 10$,$\alpha \in [0, 1]$,绘制投资组合熵作为 $\alpha$ 的函数。

通过这些练习,可以进一步加深对熵概念、估计方法和金融应用的理解和掌握。总之,熵在金融领域有着广泛的应用,从市场效率分析到投资组合管理,再到市场微观结构的研究,都可以借助熵的理论和方法来进行更深入的分析和决策。

【3D应力敏感度分析拓扑优化】【基于p-范数全局应力衡量的3D敏感度分析】基于伴随方法的有限元分析和p-范数应力敏感度分析(Matlab代码实现)内容概要:本文档介绍了基于伴随方法的有限元分析p-范数全局应力衡量的3D应力敏感度分析,并结合拓扑优化技术,提供了完整的Matlab代码实现方案。该方法通过有限元建模计算结构在载荷作用下的应力分布,采用p-范数对全局应力进行有效聚合,避免传统方法中应力约束过多的问题,进而利用伴随法高效求解设计变量对应力的敏感度,为结构优化提供关键梯度信息。整个流程涵盖了从有限元分析、应力评估到敏感度计算的核心环节,适用于复杂三维结构的轻量化高强度设计。; 适合人群:具备有限元分析基础、拓扑优化背景及Matlab编程能力的研究生、科研人员工程技术人员,尤其适合从事结构设计、力学仿真多学科优化的相关从业者; 使用场景及目标:①用于实现高精度三维结构的应力约束拓扑优化;②帮助理解伴随法在敏感度分析中的应用原理编程实现;③服务于科研复现、论文写作工程项目中的结构性能提升需求; 阅读建议:建议读者结合有限元理论优化算法知识,逐步调试Matlab代码,重点关注伴随方程的构建p-范数的数值处理技巧,以深入掌握方法本质并实现个性化拓展。
下载前必看:https://pan.quark.cn/s/9f13b242f4b9 Android 平板设备远程操控个人计算机的指南 Android 平板设备远程操控个人计算机的指南详细阐述了如何运用 Splashtop Remote 应用程序达成 Android 平板设备对个人计算机的远程操控。 该指南被划分为四个环节:首先,在个人计算机上获取并部署 Splashtop Remote 应用程序,并设定客户端密码;其次,在 Android 平板设备上获取并部署 Splashtop Remote 应用程序,并之建立连接至个人计算机的通道;再次,在 Splashtop Remote 应用程序中识别已部署个人计算机端软件的设备;最后,运用平板设备对个人计算机实施远程操控。 关键点1:Splashtop Remote 应用程序的部署配置* 在个人计算机上获取并部署 Splashtop Remote 应用程序,可通过官方网站或其他获取途径进行下载。 * 部署结束后,必须输入客户端密码,该密码在平板控制计算机时用作验证,密码长度至少为8个字符,且需包含字母数字。 * 在配置选项中,能够设定是否在设备启动时自动运行客户端,以及进行互联网搜索设置。 关键点2:Splashtop Remote 应用程序的 Android 版本获取部署* 在 Android 平板设备上获取并部署 Splashtop Remote 应用程序,可通过 Google Play Store 或其他获取途径进行下载。 * 部署结束后,必须输入客户端密码,该密码用于连接至个人计算机端软件。 关键点3:运用 Splashtop Remote 远程操控个人计算机* 在 Splashtop Remote 应用程序中识别...
先看效果: https://pan.quark.cn/s/7baef05d1d08 在信息技术范畴内,语音识别是一项核心的技术,它赋予计算机或设备解析和处理人类语音输入的能力。 本研究项目运用了MFCC(Mel Frequency Cepstral Coefficients)VQ(Vector Quantization)算法,借助VC++6.0的MFC(Microsoft Foundation Classes)库,开发出一个图形用户界面(GUI),从而达成基础的语音识别功能。 接下来将具体分析这些技术及其应用。 **MFCC特征提取**MFCC是语音信号处理中的一个标准方法,用于将复杂的语音波形转换成一组便于处理的数据参数。 MFCC模拟人类听觉系统对声音频率的感知模式,通过梅尔滤波器组对声音频谱进行分段处理,进而计算每个滤波器组的倒谱系数。 该过程包含以下环节:1. **预加重**:旨在削弱人声的低频响应部分,同时增强高频成分的强度。 2. **分帧和窗函数**:将语音信号分割成多个短时帧,并应用窗函数以降低帧帧之间的相互干扰。 3. **梅尔尺度滤波**:采用梅尔滤波器组对每一帧进行剖析,获取梅尔频率谱。 4. **取对数**:鉴于人耳对声音强度的感知呈现非线性特征,因此对梅尔频率谱取对数操作以更好地符合人类听觉系统。 5. **离散余弦变换(DCT)**:对对数谱实施DCT运算,提取主要特征,通常选取前12-20个系数作为MFCC特征。 6. **动态特性**:为了捕捉语音的时域变化特征,还可计算MFCC特征的差分值和二阶差分值。 **VQ识别算法**VQ是一种数据压缩方法,在语音识别领域中常用于特征矢量的量化处理。 其基本理念是将高维度的MFCC特征向量映射到一个小型、预...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值