乐于分享
好东西不私藏

【源码】互相关算法:从数学原理到FPGA工程实现的完整解析

【源码】互相关算法:从数学原理到FPGA工程实现的完整解析

源码资源:

1、【LVDS工程源码】

2、【CORDIC工程源码】

3、【源码]FIR + EMA零 DSP,适用于极低资源消耗

4、[源码]xilinx FPGA的高精度互相关时延估计 本章源码

引言

在信号处理领域,互相关(Cross-Correlation)是一个极为重要却又常被误解的概念。它既能用于信号同步、时延估计,也是雷达、声纳、超声流量计等高端装备的核心算法。然而,教科书上的公式与工程落地之间,往往隔着定点化、流水线、位宽管理等多座大山。

本文将从数学原理出发,逐步推演到频域快速实现,再到FPGA工程落地的关键技术细节,帮助读者建立对互相关算法的完整认知。

一、什么是互相关:数学定义与物理直觉

1.1 数学定义

对于两个连续实信号 x(t) 与 y(t),其互相关函数定义为:

R_xy(τ) = ∫ x(t) · y(t + τ) dt

其中 τ 称为时延变量。直观地理解,R_xy(τ) 衡量的是:把 y(t) 整体平移 τ 后,与 x(t) 在所有时刻的乘积之和。

对于离散信号 x[n] 与 y[n],互相关的离散形式为:

R_xy[m] = Σ x[n] · y[n + m]

1.2 与卷积的区别

互相关常被与卷积混淆。两者的差别仅在一个"翻转":

  • 卷积: y[n] = Σ x[k] · h[n-k]
  • 互相关: R_xy[m] = Σ x[n] · y[n+m]

也就是说,卷积需要对其中一个信号做时间反转,互相关则不需要。在深度学习的卷积神经网络中,所谓"卷积层"实际上做的也是互相关运算,而非严格的卷积。

1.3 物理意义

互相关函数的峰值位置揭示了两个信号之间的时间偏移。如果 y(t) = x(t - τ₀),即 y 是 x 延迟了 τ₀ 后的版本,那么 R_xy(τ) 在 τ = -τ₀ 处取得最大值。这就是互相关用于时延估计的理论基础。

二、互相关的时延估计应用

2.1 TDOA 问题

到达时间差(Time Difference of Arrival, TDOA)估计是互相关最经典的应用。假设两个传感器接收到的信号分别为:

x₁(t) = s(t) + n₁(t)x₂(t) = s(t - D) + n₂(t)

其中 D 是真实时延,n₁、n₂ 为不相关噪声。对 x₁ 与 x₂ 做互相关:

R_x₁x₂(τ) = E[x₁(t) · x₂(t + τ)]

由于信号 s 与噪声不相关,噪声之间也不相关,互相关函数在 τ = D 处会出现峰值。因此,搜索 R_x₁x₂(τ) 的峰值位置即可得到时延估计 D。

2.2 抗噪性能

互相关时延估计在加性高斯白噪声(AWGN)条件下被证明是最大似然(ML)意义下的最优估计。即使信噪比低至 0 dB,互相关仍能给出可靠的时延估计。这也是它在雷达、声纳等远距离探测场景中不可替代的原因。

2.3 分辨率极限

互相关时延估计的分辨率受限于采样周期 T_s。在离散实现中,时延估计的最小可分辨单位是 1 个采样周期。例如:

  • 采样率 50 MHz → 采样周期 20 ns → 时延分辨率 20 ns
  • 量化误差 ±10 ns(半采样周期)

如需亚采样级精度,可借助插值、广义互相关(GCC-PHAT)等高级方法,但工程复杂度显著上升。

三、频域快速实现:从 O(N²) 到 O(N log N)

3.1 直接时域计算的代价

按定义直接计算 N 点互相关需要 O(N²) 次乘加。对于 N = 4096,共需约 1600 万次乘法,在通用 MCU 上往往需要数十毫秒,远不能满足实时性要求。

3.2 Wiener-Khinchin 定理与频域互相关

根据维纳-辛钦定理,互相关与互功率谱密度构成傅里叶变换对:

R_xy[m] = IFFT( X(f) · conj(Y(f)) )

其中 X(f) = FFT(x[n]),Y(f) = FFT(y[n]),conj(·) 表示复数共轭。

这一公式将时域的 O(N²) 卷积转化为频域的 O(N log N) FFT 运算。对于 N = 4096:

  • 直接时域:约 1600 万次乘法
  • 频域方法:3 次 FFT/IFFT + 1 次复乘 ≈ 5 万次复数乘法

性能提升超过 300 倍。这是频域互相关算法在工程中占据主导地位的根本原因。

3.3 频域互相关的完整流程

键步骤:

  1. 对 x2[n] 做 FFT 得 X(f),取共轭得 conj(X(f))
  2. 对 x1[n] 做 FFT 得 x1(f)
  3. 计算 conj(X(f)) · x1(f),得到互功率谱
  4. 对互功率谱做 IFFT,得到时域互相关 R_xy[m]
  5. 搜索 R_xy[m] 的峰值位置,即时延估计

注意:对哪一路信号取共轭是约定问题,只需保证两路最终都参与共轭运算即可。

四、FPGA 工程实现的关键问题

4.1 定点化与位宽管理

FPGA 实现中,FFT IP 核通常采用定点运算。从输入到输出的位宽会随各级蝶形运算逐级扩展,需要精细的位宽管理以避免溢出或精度损失。以 4096 点 FFT 为例,典型位宽链路如下:

阶段
实部位宽
虚部位宽
说明
输入
16
0
纯实数输入
FFT 输出
27
27
Xilinx xfft 标准输出
复乘输出
55
55
27×27 复乘结果
舍入后
46
45
右移 9~10bit,带四舍五入
饱和后
34
34
送入 IFFT
IFFT 输出
45
45
互相关结果

关键处理技巧:

  • 舍入 (Rounding)
    :右移时根据符号位与低位进行四舍五入,而非直接截断,可降低 6 dB 量化噪声
  • 饱和 (Saturation)
    :检测高位是否溢出,溢出时钳位到正/负最大值,避免回绕失真

4.2 流水线与 AXI-Stream 握手

Xilinx FFT IP 采用 AXI-Stream 接口,需要正确管理 tvalid/tready/tlast/tuser 信号:

  • tvalid
    : 主机数据有效
  • tready
    : 从机接收就绪
  • tlast
    : 帧尾标记,告诉 IP 这是本帧最后一个数据
  • tuser
    : 用户信号,常用于承载采样点序号

时序要点:

  • 在 tlast 拉高的同时,IP 才能识别帧结束并启动变换
  • 输出端 tuser 用于同步采样序号,峰值搜索时需依据此信号定位
  • 流水线模式下,FFT IP 在接收输入的同时输出上一帧结果,需注意帧间隔离

4.3 多帧处理与帧计数

工程中常需要连续处理多帧信号。通过帧计数器(如 ifft_tlast_cnt)区分不同帧的互相关结果,实现单次配置多路输出。典型的三帧循环结构:

addr_cnt: 0 → 1 → 2 → 0 → 1 → 2 → ...

每帧对应一路独立的时延结果,通过预设的 TDOA 激励(input_time)分别配置。

4.4 峰值搜索区间限定

互相关函数在两端可能产生边界效应导致的伪峰。工程实现中,通常只在信号有效时延可能出现的区间内搜索峰值。例如,假设最大可能时延为 1023 个采样点,则搜索区间设为 0 ≤ n < 1024,既避免伪峰干扰,又减少比较次数。

4.5 取绝对值与峰值比较

IFFT 输出为复数,峰值搜索需基于模值或绝对值。在 FPGA 中,精确的平方根运算代价高昂,通常采用以下两种近似:

  1. 绝对值法
    :对实部取绝对值(忽略虚部),实现简单,适用于实信号互相关
  2. 近似模值
    :|Re| + |Im| 或 max(|Re|, |Im|) + min(|Re|, |Im|)/2,避免乘法

对于纯实数信号的互相关,IFFT 输出的虚部接近零,直接对实部取绝对值即可。

五、典型应用场景

5.1 超声波流量计

利用上下游超声波传感器的传播时间差测量流体流速。时延估计精度直接决定流量计量等级,纳秒级精度可支撑 0.5 级以上准确度。

5.2 局部放电定位

变电站设备局部放电产生的电磁波在多个传感器间存在时延。基于多路 TDOA,通过几何求解可定位放电源位置,定位精度可达分米级。

5.3 麦克风阵列声源定位

会议系统、智能音箱的远场语音拾音依赖麦克风阵列的 TDOA 估计。结合波束成形,可显著提升目标方向的信噪比。

5.4 结构健康监测

桥梁、大坝、压力容器等结构的裂纹声发射源定位。多通道声发射传感器采集信号,通过互相关估计各通道间时延,反演裂纹位置。

5.5 水下目标定位

水下声纳阵列通过多基元接收信号的时间差,采用球面交汇或双曲线交汇算法定位目标方位与距离。

5.6 地震波检测

地震台网多通道信号的震源定位与到时拾取。P 波、S 波到时差的精确测量是震源机制反演的关键输入。

六、性能优化与高级算法

6.1 广义互相关 (GCC)

广义互相关(Generalized Cross-Correlation)在互功率谱上施加预滤波加权,可进一步提升时延估计精度。常用加权方式:

  • PHAT 加权
    :相位变换,归一化幅度,适合混响环境
  • ROTH 加权
    :基于自谱归一化,抑制噪声大的频段
  • SCOT 加权
    :基于互谱平方根,折中处理

GCC-PHAT 在声源定位中应用最为广泛,可有效抑制混响带来的伪峰。

6.2 亚采样级精度

如需突破采样周期限制,可采用:

  • 抛物线插值
    :在峰值及其左右两点拟合抛物线,峰值位置即为亚采样级估计
  • 频域相位法
    :利用互功率谱相位的线性回归估计时延,理论精度可达 1/100 采样周期

但需注意,这些方法对噪声敏感,在低信噪比下性能反而可能退化。

6.3 并行与流水线

FPGA 实现可通过以下方式提升吞吐率:

  • 多通道 FFT 并行处理
  • 流水线深度优化(每拍处理一个采样点)
  • 多帧重叠处理,提升硬件利用率

七、工程实践中的常见陷阱

7.1 FFT 点数选择

FFT 点数 N 决定了互相关的可观测时延范围 [0, N-1]。若实际时延可能超过 N,会产生循环卷绕,导致峰值出现在错误位置。建议:

N ≥ 信号长度 + 最大可能时延

7.2 输入数据加窗

直接对截断信号做 FFT 会引入频谱泄漏。如对精度要求高,可在 FFT 前施加汉宁窗或汉明窗。但加窗会改变互相关幅值,需在峰值搜索时一并考虑。

7.3 定点溢出

多级蝶形运算后位宽快速增长。若饱和处理不当,大信号下会出现回绕失真,导致峰值出现在错误位置。建议:

  • 输入预留 3~4 bit 余量
  • 中间级采用截断而非饱和(精度损失更可控)
  • 输出级再做饱和处理

7.4 帧同步问题

多帧处理时,FFT 帧边界必须与 tlast 信号严格对齐。若 tlast 位置错误,IP 可能误判帧结束,导致后续所有结果错位。这是新手最常踩的坑。

7.5 噪声阈值

低信噪比下,噪声峰可能高于信号峰。建议在峰值搜索时设置绝对阈值,或采用峰值旁瓣比(PSR)作为判据,过滤明显异常的估计结果。

八、性能对比与选型建议

8.1 不同实现平台的性能对比

平台
4096点互相关耗时
时延估计精度
适用场景
STM32F4 (168MHz)
约 50 ms
1 us
低速、低成本
TI C2000 DSP
约 8 ms
100 ns
中速工业
FPGA (50 MHz)
约 0.6 ms
20 ns
高速实时
Zynq PS+PL
约 0.6 ms
20 ns
软硬协同

8.2 算法选型决策树

九、结语

互相关算法是信号处理领域的一颗"明珠",从雷达、声纳到流量计、定位系统,无处不在。掌握它的数学原理是入门,理解其频域快速实现是进阶,而能在 FPGA 上完成工程落地才是真正的高手。

本文从数学定义出发,逐步深入到频域实现与 FPGA 工程细节,希望为读者建立完整的知识体系。互相关算法的世界远不止于此,广义互相关、稀疏互相关、深度学习辅助的时延估计等方向,都值得进一步探索。

如果在实际工程中遇到具体问题,欢迎在评论区交流。

源码:[源码]xilinx FPGA的高精度互相关时延估计

✨ 如果本文对你有帮助

  • 点赞支持,让更多人看到
  • 收藏起来,随时查阅
  • 留言讨论,分享你的使用经验
  • 关注我们,获取更多嵌入式实战干货
  • 感谢阅读!我们下一篇文章见!

推荐合集阅读

👇


嵌入式-实用的FreeRTOS学习指南

人工智能合集

FPGA技术分享

latex教程

LVDS

FPGA+LINUX+人工智能


下载资料请扫码进小程序,正在内测中.......

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-10 18:07:00 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/920517.html
  2. 运行时间 : 0.236005s [ 吞吐率:4.24req/s ] 内存消耗:4,791.25kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a22097655541bfc1615588ae8fb23928
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 4.22 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.11 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001109s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001334s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000607s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000555s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001185s ]
  6. SELECT * FROM `set` [ RunTime:0.000481s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001228s ]
  8. SELECT * FROM `article` WHERE `id` = 920517 LIMIT 1 [ RunTime:0.000931s ]
  9. UPDATE `article` SET `lasttime` = 1786356420 WHERE `id` = 920517 [ RunTime:0.009353s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000488s ]
  11. SELECT * FROM `article` WHERE `id` < 920517 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000996s ]
  12. SELECT * FROM `article` WHERE `id` > 920517 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000920s ]
  13. SELECT * FROM `article` WHERE `id` < 920517 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001277s ]
  14. SELECT * FROM `article` WHERE `id` < 920517 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002349s ]
  15. SELECT * FROM `article` WHERE `id` < 920517 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005230s ]
0.242268s