- 博客(44)
- 资源 (4)
- 收藏
- 关注
原创 卡尔曼滤波:从理论到应用的简介
卡尔曼滤波由鲁道夫·卡尔曼在1960年提出,是一种基于最小均方误差准则的最优估计方法。简单来说,卡尔曼滤波使用当前的系统状态和新的测量数据来更新状态估计,并将噪声最小化,从而提供更准确的状态估计。卡尔曼滤波的主要特点是它是递归的,这意味着它可以实时处理数据,不需要存储整个数据序列。在应用 Kalman 滤波器时,需要定义三个关键矩阵来控制价格的预测和更新过程。
2024-11-15 23:11:33
1452
原创 Hurst Exponent: 探索时间序列的自相似性与长记忆性
Hurst指数通常用符号H表示,其取值范围在0到1之间。H = 0.5:表示随机游走(或布朗运动),即时间序列没有长记忆性,未来的走势与过去的走势无关。H < 0.5:表示时间序列存在反持性(anti-persistence),即当前的上升趋势往往意味着未来将出现下降趋势。H > 0.5:表示时间序列存在持性(persistence),即当前的上升趋势往往意味着未来将继续上升。通过计算Hurst指数,可以判断时间序列是具有长记忆性的还是具有短期依赖性的,从而对未来走势进行更为精准的预测。
2024-11-14 11:26:15
1598
原创 ADF检验:时间序列平稳性检测
ADF检验是时间序列分析中广泛使用的平稳性检测工具。它通过在自回归模型中增加滞后项来提高对实际序列的适应性。ADF检验的主要优点在于能够有效检测单位根,消除自相关性;但其也有一定局限性,例如对小样本的敏感性,以及对误差项正态分布假设的依赖性。
2024-11-12 10:16:04
4975
原创 ACF 与 PACF:深入了解时间序列分析的关键工具
自相关函数(Autocorrelation Function, ACF)描述了时间序列与其自身滞后值之间的相似性。它是计算不同滞后期(Lag)下的序列值之间的相关性,以观察随时间延迟变化的依赖性。偏自相关函数(Partial Autocorrelation Function, PACF)是 ACF 的延伸,用来捕捉特定滞后值上的“纯”自相关,剔除了其他中间滞后值的影响。ACF和PACF是时间序列分析中极为重要的工具,它们帮助我们识别序列中的依赖关系和周期性,从而为模型选择提供依据。
2024-11-11 00:21:00
3241
原创 深入理解单位根:如何通过单位根检验分析序列的平稳性
在时间序列模型中,单位根的存在通常意味着序列具有随机趋势。比如,一个简单的 AR(1) 模型(自回归模型)可以写成:其中是均值为 0 的白噪声。如果参数,则该模型变为:这种形式的序列称为随机游走。它的一个特性是,随着时间的推移,序列的方差会不断增大,且均值不会稳定在某一值上。因此,单位根的存在表示序列的非平稳性。:序列平稳,均值和方差不随时间变化,适合平稳模型。:序列具有单位根,表现为随机趋势和随机游走,需要差分处理才能平稳。
2024-11-08 16:54:41
2002
原创 均值、期望、方差、标准差与协方差:基础概念解析
均值帮助我们了解数据的中心位置。期望是概率论中的一个重要概念,描述了随机变量的平均值。方差和标准差是衡量数据波动性的关键指标。协方差则揭示了两个变量之间的关系强度和方向。掌握这些概念,能够帮助我们更好地理解和分析数据,在实际应用中,如金融分析、机器学习和数据科学中,它们是不可或缺的工具。
2024-11-08 11:22:30
2841
原创 平稳性(Stationarity)的概念与应用
*平稳性(Stationarity)**指的是一个时间序列在统计性质上不随时间变化。均值不变:序列的期望值是常数,不随时间变化。方差不变:序列的波动幅度是固定的,方差不随时间变化。没有周期性特征:序列不具有可预测的周期性波动(如季节性、年周期等),即统计特性在时间上是独立的,不随时间呈现周期性变化。举例来说,下面三种时间序列都不是平稳的,其中图一的波定幅度不固定,从大变小;图二的均值不固定,一直上升;图三有明显的周期性正弦波特性。根据严格程度,平稳性可以分为。
2024-11-07 22:01:07
1531
原创 偏差与方差的基本概念
在机器学习中,是一个核心概念,帮助我们理解模型的误差来源以及如何调节模型复杂度以达到更好的泛化性能。在这篇博客中,我们将深入讨论什么是偏差和方差,以及如何平衡二者来构建出色的模型。
2024-11-03 23:58:25
958
1
原创 QT: QML可视化树(Visual Parent)简介
目的本文简介QML的可视化树(Visual Parent)概念。简介Item是QML中的基础控件,是QML中所有控件的父类。使用如下方式定义一个Item的对象。Item可以包含任何多个子对象,因此通过Item可以定义多层级的嵌套可视化树结构。import QtQuick 2.0Item { width: 100; height: 100 Rectangle { width: 50; height: 50; colo
2020-12-24 17:57:14
1434
原创 C++: 实战详解智能指针
目的本文简介C++ 11的智能指针,包括shared_ptr, unique_ptr与weak_ptr,并给出一些典型的使用场景。简介我推荐在一切可能的场合使用智能指针替代C/C++的裸指针。当使用智能指针变成一种习惯,它会从本质上影响程序思维:申请的要释放,打开的要关闭。问题考虑下面的代码场景,在极少情况下(fail1 / fail2)会导致资源(Resource)泄露。这里的资源不限于内存(memory),锁(lock)以及网络套接字(socket)等。Object *object = ne
2020-12-16 20:16:36
732
原创 C++:多线程的正确打开姿势
目的本例简介c++11中thread库如何创建与停止线程。实现如下的实例中,通过ThreadWrapper::start()方法启动线程,通过ThreadWrapper::stop()方法停止线程。线程的主体函数为Thread::run()方法。#include <iostream>#include <thread>#include <memory>#include <unistd.h>class ThreadWrapper {privat
2020-12-14 19:50:53
1031
原创 c++: 实战详解vector
目的本文从实际使用的角度出发,简介C++中vector的基本用法,如增,删,改,查等,并举例说明。增如下代码演示如何向vector中添加元素,其中:#include <iostream>#include <vector>#include <iostream>#include <vector>int main() { std::vector<int> ilist; ilist.push_back(1); i
2020-12-10 19:31:02
2069
原创 c++: 详解static_cast与dynamic_cast
目的本文简介C++中static_cast与dynamic_cast的使用场景,并介绍一些C++中的其他*cast。static_cast你应该在牵涉到自定义的C++ class类型转换中用到它。因为它会帮你做一些静态类型检查。如下的例子是一种可能的应用场景:#include <iostream>class Me { public: void print() { std::cout << "Hello" << std::endl;
2020-12-09 17:37:57
2238
1
原创 c++: 单例模式(Singleton)的最优写法
目的本例简介C++中单例模式的最优写法。实现基础写法下面的代码是C++单例的基础写法,在静态函数Singleton::getInstance()中定义了Singleton的静态变量对象,并返回此对象的引用。由于C++函数的静态变量唯一性,可以确保例子中s对象的唯一性,线程同步,以及静态对象间的依赖关系等问题。#include <iostream>class Singleton { public: static Singleton &getInstance() {
2020-12-08 20:01:16
14872
5
原创 QT: 使用QProcess启动进程并实时获取标准输出
目的本例介绍如何使用QProcess启动进程并实时获取启动进程的标准输出后显示。实现本例在QT的MainWindow 启动后会每个1秒在控制台打印ping的log,如下图所示#include "mainwindow.h"#include <QApplication>#include <QProcess>#include <QDebug>int main(int argc, char *argv[]) { QApplication a(argc
2020-12-07 18:48:22
10795
1
原创 QT: QML访问c++的对象属性
目的本文简介QML与C++ QObject 对象的属性(Property)、方法(Method)与信号(Signal)互操作[1],并举例说明。基于上一篇文章中介绍的QML对象与C++对象绑定后,QML可以更进一步的与C++对象的属性(Attribute)、方法(Method)与信号(Signal)进行互操作。属性如下的例子使用 Q_PROPERTY()宏定义 author属性(Property)的类型为(QString),以及auhor属性对应的 set(setAuthor)方法, get(aut
2020-12-03 15:32:13
884
原创 QT: QML调用c++代码
目的本文简述如何在qml中调用c++代码。通过qml调用c++主要有两种方法:使用qmlRegisterType()与setContextProperty()。下面依次介绍qmlRegisterType新建Qt工程后,编辑mainwindow.h如下。程序运行后,会调用 CallMe.hello()函数输出相关信息。#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QDebug&g
2020-12-02 15:31:35
1731
原创 QT: Hello QML
目的本文简述如何使用QWidget加载QML并显示Hello World。我用的QT版本为5.12。代码首先使用QTCreator新建 空的qt widget程序。Build System 选择qmake。取消勾选Generate form选项。在.pro文件中增加qt quick 的依赖库,包括qml quickwidgets widgets。为工程添加qml.qrc资源文件。首先右键工程,点击Add New…名称输入qml.qrc。再为qml.qr
2020-11-30 10:27:47
328
原创 Python: FFT的输入与输出分析
Python: FFT目的数据生成FFT分辨率总结引用目的本文简述如何使用numpy的fft lib进行快速傅里叶变换,以及对fft变换后结果的分析。由于水平有限,不当之处望指正。数据生成使用如下代码生成仿吉他C和弦声音片段,如下代码所示。import numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inlineimport librosaimport IPython.display as
2020-11-26 18:06:18
6521
原创 Python: 傅里叶级数
目标本文简述傅里叶级数(Fourier Series),并使用Python实现简单的傅里叶级数的展开。简介傅里叶级数用一句话概括为:任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示。如下图的周期函数f(t),可将其展开为:举例说明,如何将上图的方波分解为为多个sin(t)与cos(t)的组合呢?先看如下函数的图像:如果在f(t)中增加一项,则图像变为:再加一项试试:所以,当分解的多项式越来越多,到正无穷时,图像就变成方波了(当然这不可能)。对上述方波的傅里叶变
2020-09-03 12:25:49
7637
原创 Keras:我的第一个LSTM二分类网络模型
目标使用Keras训练一个简单的LSTM二分类网络模型,用于找到数列中是否包含3个连续递增或者递减的子数列。比如 [ 0.1, 0.2, 0.3, 0.5, 0.3, 0.2 ] 数列对应的标签为[ 0, 0, 1, 1 , 0, 1 ]。特诊设 [x1, x2, x3]中x3的特诊为: [ x3, x2, x2 > x1 ? 1 : 0 ]。即数列中的当前数据与前一个数据,以前前一个数据的状态(前一个数据递增状态为1,递减状态为0)。数据生成数据生成代码如下所示:import pand
2020-08-16 18:33:16
11190
1
原创 Keras: 搭建GPU训练环境
安装首先下载Anaconda安装包安装。https://repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe安装后在开始菜单使用Administrator方式打开Anaconda Powershell Prompt(点击右键->以管理员方式运行),输入如下命令安装keras-gpu。如果连接失败可能需要配置代理。conda install keras-gpu测试运行Anaconda的Jupyter Noteboo
2020-08-11 15:06:14
1152
2
原创 Onvif(一): Ubuntu18下使用gsoap开发Onvif设备发现服务端
目标本文讨论基于Gsoap在ubuntu18上开发支持Onvif协议的模拟摄像头端。Onvif简介ONVIF(开放式网络视频接口论坛)是一个全球性的开放式行业论坛,其目标是促进开发和使用基于物理IP的安全产品接口的全球开放标准。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(网络摄像头、NVR)完全互通。总结Onvif标准协议的内容主要包括如下几大部分:基于WS-Discovery的设备发现协议(服务端监听在组播地址 239.255.255.250:3702,支持T
2020-08-11 14:18:53
3657
1
原创 海思编译Openssl
下载从网站下载需要的OpenSSL版本:https://www.openssl.org/source/old/编译使用如下命令编译OpenSSL:tar xf openssl-1.1.0l.tar.gzcd openssl-1.1.0l./Configure linux-armv4 no-async --prefix=`pwd`/sslinsmake CC=arm-himix100-linux-gcc -jmake install...
2020-07-21 15:38:10
652
原创 阿里云免费SSL证书常用服务配置
证书申请从阿里云可以申请免费版本的单域名ssl证书,有效期一年。申请时选择 产品与服务 -> SSL证书 -> 购买证书,并勾选如下:证书下载证书申请并校验完成后,很快会收到域名申请成功的短信提示。再登录阿里云,下载Nginx版本证书。Ubuntu 18.04 Nginx配置解压Nginx版本的证书后,会包含.pem 与 .key两个文件,对服务器文件 /etc/nginx/sites-enabled/default 增加配置如下,配置完成后重启Nginx服务器即可。server
2020-07-20 09:55:06
432
原创 HTTP(S)服务:Header Only的轻量级C++ Http(S)服务
简介在Github上找到一个比较好用的c++轻量级的http(s)服务,只需要包含一个头文件,使用非常方便。项目的Github地址如下:https://github.com/yhirose/cpp-httplib服务项目的使用非常方便,声明Server对象,开启监听端口即可:Server svr;svr.listen("0.0.0.0", 1234);API使用如下代码声明一个Post服务,api返回值为“Hello"。svr.Post("/api/hello", [&](co
2020-06-21 23:35:02
663
原创 嵌入式:Ubuntu 18下搭建tftp服务器
安装使用如下命令安装tftp服务器,并查询运行状态:sudo apt install -y tftpd-hpasudo service tftpd-hpa status使用tftp服务器安装后,无需任何配置即可使用,只需要文件拷贝到如下目录即可:/var/lib/tftpboot/验证可以使用客户端工具验证tftp服务是否正常运行:sudo apt install tftpcxm@ubuntu:~/$ tftp localhosttftp> get vmlinuz.img
2020-06-10 13:36:22
335
原创 嵌入式: Ubuntu 18 下搭建nfs服务
安装sudo apt install nfs-kernel-server配置目录sudo mkdir -p /nfssudo chown nobody:nogroup -R /nfssudo gedit /etc/exports/etc/exports文件配置如下:/nfs *(rw,sync,no_subtree_check)配置完成后重启服务,关闭防火墙:sudo service nfs-kernel-server restartsudo ufw disable挂载嵌入
2020-06-10 11:08:11
262
原创 將海思平台相关的代码打包成静态库
目标对海思平台相关的功能抽象成接口,并打包成静态库文件有益于业务代码的跨平台复用,本文介绍我的做法.结构介绍将平台相关的接口如音频采集与视频采集抽象为libplatform, 对上层打包为libplatform.h与libplatform.a.首先在mpp/sample目录下,参考venc,创建platform文件夹,platform目录下的Makefile如下:include ../Makefile.paramSRCS := $(wildcard *.c)SRCS += $(wildcard
2020-06-03 21:00:30
1021
1
原创 FFmpeg:提高工作效率的常用命令总结
FFmpeg熟练使用FFmpeg的常用命令,可以验证音视频处理的中间数据转换过程是否正确。以下是平时使用的一些命令总结。视频MP4转H264H264转MP4,缩放MP4转H264,缩放,加时间戳jpg转YUV420Pffmpeg -i input.jpg -c:v rawvideo -pix_fmt yuv420p output.yuvYUV420P(800x600)转jpgffmpeg -pix_fmt yuv420p -s 800x600 -i input.yuv output.jp
2020-06-02 22:37:44
1531
原创 海思hi3518ev300 编译uclibc
uclibc编译当海思自带的uclibc库无法满足要求时,可以通过uclibc源码编译出满足要求的libc版本。如海思自带的uclibc库不支持LD_PRELOAD选项时,可以通过编译uclibc源码使其支持LD_PRELOAD选项。查看现有版本编译的uclibc版本最好和当前系统的libc版本匹配,这样移植后续应用程序也比较方便,可以通过如下命令查看当前板子上的uclibc版本,我的板子上uclibc版本是0.9.33.2。/nfs/h18e3 # ls /lib/ld*/lib/ld-uCli
2020-05-31 20:59:39
3023
原创 深度学习:如何找到优化模型的方向
如何找到优化深度学习模型的方向问题训练/开发/测试集偏差(Bias)与方差(Variance)偏差(Bias)方差(Variance)问题定位高偏差(Bias)的优化高方差(Variance)的优化问题当训练的模型精确度不高,如何寻找下一步模型的调优方向?通过对比训练集与开发(测试)集的准确率,可以确定模型的偏差(Bias)与方差(Variance)问题,给下一步模型的优化提供方向指导。训练/开发/测试集模型训练前通常将数据集划分为 训练集(Training set)、开发集(Dev set)与测
2020-05-23 12:36:34
2141
原创 Keras:我的第一个神经网络二分类模型
我的第一个Keras神经网络二分类模型目标网络结构实现数据模型验证小结目标使用Keras 训练一个简单的二分类模型,对下图中的点分类,其中训练特征为点的坐标(x, y),红色标签为0,蓝色标签为1。网络结构二分类神经网络模型结构如下,其中:输入层为点的坐标(x, y)。输出层为点的标签[0, 1], 激活函数为sigmoid。模型只包含一个隐藏层,隐藏层包含50个神经单元,激活函数为relu。实现数据使用sklearn.makemoons()函数生成1000个测试样本,并按照7:
2020-05-20 11:11:56
5496
原创 Python: Juypter 下绘制3D点图
Juypter 下绘制3D点图目标实现目标实现Juypter Notebook 下绘制3D图形并可以使用鼠标拖动变换视角。实现生成x, y, z 轴的数据为 [ 0 ~ 9 ]使用 ax.scatter3D()绘制点图,“c=z” 与cmap参数表示以z数据的值动态绘制渐变绿色。"%matplotlib notebook"开启Jupyter Notebook 的鼠标交互变换视角。import matplotlib.pyplot as pltfrom mpl_toolkits import
2020-05-17 22:31:58
2912
1
原创 visual studio code: Ubuntu下单步调试c++代码
visual studio code: 单步调试c++代码安装编辑调试安装Ubuntu安装Visual Studio Code 后,安装c/c++插件。编辑点击 File -> Open Folder, 打开任意空目录。点击 File -> New File, 按ctrl + s, 输入test.cpp,回车保存。输入如下代码测试,并点击printf语句左侧增加断点。调试按下F5,启动调试。在Environment中选择 “c++(GDB/LLDB)”。在Confi
2020-05-12 17:50:09
1448
1
原创 Python: 直方图绘制
目标python 使用matplotlib统计数组x中每个数字出现的次数。实现1. 生成数组 [ 1, 2, 2, 3, 3, 3 ... ]2. 绘制直方图,其中x轴为10个单位(bins=10),y轴为每个数字出现的次数。import matplotlib.pyplot as pltx = []for i in range(0, 10): for j in range(0, i + 1): x.append(i + 1) ..
2020-05-09 09:34:27
591
原创 WebRTC建立会话流程分析
WebRTC建立会话流程总结了解如何运行PeerConnection Demo后,熟悉运行流程可以做为深入学习WebRTC的切入点。本节重点解释客户端双方建立会话时交互的主要信令(控制会话的文本协议)和与信令相关的 WebRTC API。准备工作peerconnection_client 工程主要分为三个部分,main_wnd.h 是视图类,主要包括用户界面相关代码;conductor.h是控制器...
2018-02-21 20:30:46
9646
2
原创 Windows下 WebRTC Demo运行: PeerConnection
PeerConnection Demo简介在成功编译WebRTC源码之后,可以运行WebRTC自带的例子体验一对一音视频通信效果。使用src/out/Debug 目录下的peerconnection_client.exe 和 peerconnection_server.exe两个文件,最终运行的架构图如下图所示:局域网运行PeerConnection
2018-02-06 21:59:01
13671
7
原创 Windows 下 WebRTC 懒人编译
源码下载点击下载depot_tools + WebRTC源代码 + Visual Studio 2015 Community 安装工具。环境配置1. 系统使用 Windows 7 以上,推荐Windows 10。2. 系统区域(Control Panel -> Region)选择English (United States),否则编译出错。
2018-01-08 11:05:11
2262
原创 在WPF中使用SDL
实现目的 SDL是一个非常优秀的跨平台的开源 UI lib, 在视频,游戏等领域都有比较广泛的利用。 我为了开发一套Windows端的网路哦摄像头监控软件,因此选用了wpf和sdl的组合。其中sdl负责视频显示,wpf负责界面元素和业务逻辑的开发。实现原理嵌入Window 无论上层的框架如何变动,最后必定会调用CreateWindow()创建Window, 因
2014-10-28 08:02:24
2829
cygwin 交叉编译的 coturn 服务器可以在windows 下运行
2018-02-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人