- 博客(128)
- 资源 (33)
- 收藏
- 关注
原创 右移,补最高位是什么操作?
模的概念:从本质上说就是计算器在计算时产生溢出时的量,它的值在计算器中表示不出来,计算器只能表示出模的余数,如:表示范围为0~2。2.负数的原码就是在最高位写1;反码就是符号位为1,其余数字对原码取反;补码就是对反码的最后一位+1。-2 的原码为:1010,求补码时,符号位不变,其余位数取反并在反码后+1 ,得到补码为:1110。-2的补码为:16-2=14用二进制表示为:1110。1.正数的原码、反码、补码等于它二进制的本身。2.用模加上负值就得到负数补码。1.用原码求负数补码。
2023-09-04 00:23:52
285
1
原创 【Matlab】滤波器设计中的频率归一化
信号处理工具箱中,归一化频率为把幅频响应(或其他)曲线的横轴单位从Hz变为rad/sample。经常使用的频率是Nyquist频率,它被定义为采样频率的一半。:为归一化之后的横轴频率表示方式,单位为( pi*rad/sample):为没归一化横轴频率,单位为 Hz。:为采样率,单位为 Hz。
2022-12-21 17:03:49
5209
1
原创 【磨刀不误砍柴工】Simulink通过From Workspace 模块传入无限长数据进行回放
当传输频率过大时,通常采集的数据量非常大,通常超过excel最大列,故做数据回放并没使用from spreadsheet:上图中左边的是本文中用到的数据回放模块。下图是Model Setings:首先通过matlab脚本把数据通过txt文件存入Workspace脚本如下:clear all;clear data;sampleRate = 1/16000;data=load('data.txt');numSteps = length(data);if 0for i=..
2022-05-04 17:43:02
2671
原创 【磨刀不误砍柴工】由传递函数绘出频率响应图
用三阶低通IIR的传递函数来绘制频率响应图:H(z)=0.05634(1+z−1)(1−1.0166z−1+z−2)(1−0.683z−1)(1−1.4461z−1+0.7957z−2).H(z)=\frac{0.05634(1+z^{-1})(1-1.0166z^{-1}+z^{-2})} {(1-0.683z^{-1})(1-1.4461z^{-1}+0.7957z^{-2})}.H(z)=(1−0.683z−1)(1−1.4461z−1+0.7957z−2)0.05634
2022-04-21 18:29:17
1559
原创 【磨刀不误砍柴工】keil软件仿真评估代码运行时间
确定keil能支持哪些片子的软件仿真https://developer.arm.com/documentation/ka002225/1-0若是选择不支持的片子进行软件仿真,则会出现如下错误:错误*** error 65: access violation at address : no ‘read’ permission使用Keil Logic Analyzer绘制gpio引脚电平变化曲线。https://jingyan.baidu.com/article/19192ad803101ce53f5
2022-04-13 23:55:08
972
原创 【数学基础】德摩根定理
在命题逻辑和逻辑代数中,德·摩根定律是关于命题逻辑规律的一对法则,公式如下:非(P与Q)=(非P)或(非Q)A B‾=A‾+B‾非(P 与 Q) = (非 P) 或 (非 Q){\quad\quad\quad\quad\quad\quad\quad}\overline{A{\;}B}=\overline{A}+\overline{B}非(P与Q)=(非P)或(非Q)AB=A+B非(P或Q)=(非P)与(非Q)A+B‾=A‾ B‾非(P 或 Q) = (非 P) 与 (非 Q){\quad\qu
2021-12-27 15:04:58
16590
原创 【磨刀不误砍柴工】使用Jupyter Notebook工具进行大位宽数据计算并绘制可使用鼠标调节的数据图形
文章目录一、安装Jupyter Notebook二、开启Jupyter本地服务器三、新建python工程四、运行工程五、生成图片六、环境bug记录一、安装Jupyter Notebook从官网或者如下链接下载Anaconda安装包,Anaconda3-2021.11-Windows-x86_64.exe:https://www.aliyundrive.com/s/biHu4ebksPK安装Anaconda,全部按照推荐来即可。默认配置好环境变量。在cmd里把pip升级到最新版本。
2021-12-24 18:14:38
1379
原创 【磨刀不误砍柴工】(SCH-1217) Could not open “XXschematic“ for edit. Would you like to open it for read?问题。
问题如下图:说的是原理图被复制过来的ide给锁了,解决方法:到工程目录的schematic中找到sch.oa.cdslck.RHEL30.XXX-eda.21423和sch.oa.cdslck全部删掉即可正常。正常原理图,已无不能编辑警示。
2021-03-25 23:50:19
4413
3
原创 【磨刀不误砍柴工】IC617和VCS同时启动license 出现exec: /opt/cadence/SPECTRE181/tools.lnx86/bin/lmgrd: not found
问题报错描述:XXX@ubuntu:~/Desktop$ lmg_vcs/opt/cadence/SPECTRE181/bin/lmgrd[237]: exec: /opt/cadence/SPECTRE181/tools.lnx86/bin/lmgrd: not found由于lmg_vcs指向SPECTRE181而不是指向/synopsys/scl_11.9/amd64/bin路径。在.bashrc文件里把如下lmg_vcs指定路径:未指定出错配置:export LM_LICENSE_F
2021-03-25 16:17:16
821
4
原创 【磨刀不误砍柴工】安装 virtuoso IC617 遇到 version `CXXABI_1.3.8‘ not found 的解决方法
第一种报错情况:/opt/cadence/IC617/tools/dfII/bin/64bit/virtuoso: /opt/cadence/INCISIVE152/tools.lnx86/lib/64bit/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib/x86_64-linux-gnu/libGLU.so.1)/opt/cadence/IC617/tools/dfII/bin/64bit/virtuoso: /op
2021-03-25 15:36:31
1593
1
原创 MATLAB 加入相噪进行频谱分析
用实时编辑器,先定义时域图,如下图图一。再得到采样频谱,如图2。最后将平谱图的零频分量移动到数组中心,重新排列得到图三。clc% 时域图f = 10T = 1fs = 100n = T*fst = linspace(0,T,n)y = 2*cos(2*pi*f*t)figure(1)plot(t,y)xlabel('时间/s')ylabel('幅度')% 得到的是采样频率的频谱% 可以看到10Hz处有峰值,90Hz的峰值是-10Hz的峰值向右频谱搬移fs=100Hz得到
2020-12-05 14:51:24
3888
原创 设计数字锁相环DPLL
2020-11-11 数字锁相环DPLLDPLL的介绍锁相环是根据一个参考周期波形去同步一个周期波形的装置。本质上讲它是一个自动控制系统。就像汽车定速巡航,要维持那个速度一样。我们只需要理解为跟踪参考源频率和相位的装置即可。通过鉴相值去控制数控振荡器(NCO)的输出以便让最终的鉴相值趋于0。鉴相器:检测参考输入波形于本地产生的波形之间的相位差。其中Kd为鉴相器增益。f(θe)=Kd∗θe f(θe) = Kd * θe f(θe)=Kd∗θePI环路滤波器:环路滤波器决定Dpll的动态性能,同时
2020-11-12 12:47:39
6806
3
原创 frequency offset
频偏在一个指定频率下允许的偏差值,单位一般为PPM。其中,PPS为parts per million的缩写。对于单位为PPM时,计算公式:频偏(PPM)106=相对参考频率的偏移量(Hz)参考频率(Hz)\frac{频偏(PPM)}{10^6}=\frac{相对参考频率的偏移量(Hz)}{参考频率(Hz)}106频偏(PPM)=参考频率(Hz)相对参考频率的偏移量(Hz)当单位为PPB时,计算公式:频偏(PPM)109=相对参考频率的偏移量(Hz)参考频率(Hz)\frac{频偏(PPM)}{
2020-10-31 11:58:50
4650
原创 E:The package wps-office needs to be reinstalled, but I can‘t find an archive for it.
执行:sudo dpkg --remove --force-remove-reinstreq wps-office
2020-08-08 15:02:19
903
原创 Matlab 二阶Kalman
Second-Order-Kalman拿垂直速度来说事情。还是那次炸机日志。垂直速度和垂直高度Mission Planner中的数据如下:一、由速度来估算位置由速度建立模型得到高度,大概是下面这个样子,只有A阵没有B阵也没有噪声:写个获取数据函数:function h = GetVerticalVel()persistent VerticalVel k Initif isempty(Init) load VerticalVel k = 1; Init = 1;
2020-07-20 21:48:25
1215
原创 Matlab 一阶低通滤波/一阶IIR
LPF一阶低通滤波同样拿那个炸机气压计日志分析,可以更好对比新建变量,把高度存进去BaroAlt.mat写获取高度值函数写LPF函数function output = LPF(x)persistent lastx Initif isempty(Init) lastx = x; Init = 1;endalpha = 0.9;output = alpha*lastx + (1 - alpha)*x;lastx = output;写个调用脚本RunLPF.m
2020-07-18 23:26:59
2967
原创 Matlab 一阶Kalman
First-order Kalman一阶卡尔曼同样拿那个炸机的气压计来分析新建变量,把高度存进去https://gitlab.com/gkbytes/matlabfiltercoder/-/blob/master/DataBase/BaroAlt.mat写获取高度值函数function h = GetAlt()persistent BaroAlt % BaroAlt.matpersistent k Initif isempty(Init) load BaroAlt
2020-07-18 23:07:20
514
原创 Matlab 滑动窗口平均滤波
MAF滑动窗口平均滤波拿一个撞线炸机的气压计高度来分析下。新建气压高度变量:BaroAlt.mat写一个获取气压数据的函数:function h = GetAlt()persistent BaroAlt % BaroAlt.matpersistent k Initif isempty(Init) load BaroAlt k = 1; Init = 1;endh = BaroAlt(k);k = k + 1;写滑动窗口平均滤波函数:fu
2020-07-17 21:12:14
6033
原创 06_FreeRTOS队列(结构体队列)
06_FreeRTOS队列(结构体队列)如果要发送不同的数据类型,则必须使用结构体队列。xQueueHandle St_Queue_Handler;定义结构体:typedef struct { char *str; int counter; uint16_t large_value;} my_struct;创造队列: /***** create QUEUE *****/ osMessageQDef(Queue01, 1, my_struct); Queue01Handle
2020-07-08 22:41:39
1916
7
原创 05_FreeRTOS 队列(简单队列)
05_FreeRTOS 队列(简单队列)介绍如何使用Queue在任务之间进行通信。下面是队列如何工作的流程:队列是任务之间发送和接收数据的最简单方法。首先,我们将使用简单队列,其中队列中的所有元素都是相同的数据类型,然后我们将使用结构化队列,其中数据类型可以不同。简单队列在一个简单的队列中,所有元素都是同一类型。队列由其处理程序识别,因此我们首先需要为该队列创建一个处理程序:osMessageQId Queue01Handle;接下来,在main函数内部,我们将创建一个Queue,该队列可以
2020-07-08 22:41:29
892
原创 04_FreeRTOS 计数信号量
04_FreeRTOS 使用计数信号量本文将介绍:a. 使用CMSIS API ,介绍FreeRTOS中计数信号量b. 不使用CMSIS API,直接使用FreeRTOS函数简介计数信号量可用于控制对资源的访问。要获得对资源的控制,任务必须首先获得信号量。因此减少了信号量计数值。当计数值达到零时,将没有可用资源。当任务使用资源完成时,它将“give”信号量,从而增加信号量计数值。设置部分CubeMX中启用计数信号量:FreeRTOS中计数信号量3.1 使用CMSIS API
2020-07-08 22:41:19
293
原创 03_FreeRTOS 二进制信号量
03_FreeRTOS 使用二进制信号量本文介绍:二进制信号量的使用方法简介信号量Binary Semaphore之所以称为Binary信号量,是因为它存在(‘1’)或不存在(‘0’)。其中没有第三个条件。因此,任务要么具有信号量,要么根本没有。对于Task,我们可以创建一个条件,使其必须具有信号量才能执行自身。因此,如果Task没有信号量,则它别无选择,只能等待当前具有信号量的Task释放它。假设关键部分正在运行“低优先级任务”。高优先级任务可以在任何时间抢占低优先级任务。但是,如果低优先
2020-07-08 22:41:08
915
1
原创 02_FreeRTOS 任务管理
02_FreeRTOS 任务管理本文将介绍:a. 创建任务b. 任务执行c. 挂起任务和恢复任务d. 在一定状态停止任务一段时间附录:如何在STM32CubeIDE中加入printf打印解决STM32CubeIDE 用串口printf 进入hardfault配置STM32CubeIDE,把vTaskDelayUntil 设置为Enabled创建任务分三部:2.1 创建任务ID2.2 使用osThreadDef定义线程2.3 创建线程并将ID分配给任务处理程序。参照01
2020-07-08 22:40:53
437
原创 01_FreeRTOS 任务优先级
FreeRTOS 任务优先级RTOS即为操作系统。主要目的是使我们可以同时使用多个任务。本文将介绍:a. 使用CubeMX 设置的免费RTOS。b. 使用RTOS的好处。c. 在没有CubeMX情况下创建任务。d. 使用优先级来解决一些常见的问题设置CubeMX1.1 由于FreeRTOS v1大多数STM32设备都支持,故选择CMSIS_V1。1.2 转到Tasks and Queues, 注意Task name、priority和entry function即可。1.3 新建另外
2020-07-08 22:40:40
2409
1
原创 ubuntu18.04 [Errno 5] Input/output error 踩坑
Copter 是一个先进的开源自动导航装置系统,用于多旋翼、直升机和其他旋翼飞行器,它提供了从全手动到全自动多种飞行模式。作为更大的ArduPilot软件平台的一部分,它与各种地面控制站程序无缝地工作,用于设置飞行器,实时监控飞行器的飞行,并执行强有力的任务规划活动。它还受益于ArduPilot生态系统的其他部分,包括模拟器、日志分析工具和用于飞行器控制的高级API。ArduPilot已经是许多商...
2020-06-23 02:00:44
2170
原创 sudo rosdep init 出现 ERROR: cannot download default
https://blog.youkuaiyun.com/nanianwochengshui/article/details/105702188
2020-04-27 14:21:44
2099
2
转载 ubuntu 使用st-flash
Using STM32 discovery kits with open source toolsThis guide details the use of STMicroelectronics STM32 discovery kits in an open source environment.Installing a GNU toolchainAny toolchain supporti...
2020-04-18 15:27:51
3049
2
原创 ubuntu系统安装 修改设备树支持USB口
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2020-04-17 11:24:13
1523
原创 QGC开发 显示双GPS/RTK信息以及自定义页面(ubuntu)
一、QGC开发 显示双GPS/RTK信息1. 在sitl中进行仿真,虚拟出第二个GPS mavlink发送到地面站。如下图中,在mavlink_msg_gps2_raw.h中找到发送第二组gps/rtk数据函数mavlink_msg_gps2_raw_send()发送,由于第一组已经有在发送,故只加入第二组。发送代码如下: mavlink_msg_gps2_raw_send (...
2020-04-15 02:19:05
3158
4
原创 QGC开发 解析apm飞控新定义的mavlink消息(ubuntu)
1. 飞控中添加一条自定义mavlink包加一个遥控和mavlink摇杆切换状态显示,也就是远程操控时候下面两货的切换: 在VSCode中打开ArduCopter代码,打开子模块,如下编译器截图中操作即可:...
2020-04-13 22:06:27
2425
原创 ardupilot软件在环仿真与在线调试
只运行仿真命令:sudo sim_vehicle.py --map -v ArduCopter用VSCode Debug 用到的命令:sudo sim_vehicle.py -v ArduCopter -f quad --console --map -D
2020-03-11 18:39:08
1087
原创 ubuntu18.04 循环登陆
前言:ubuntu18.04 自动更新后,显卡驱动不兼容,导致开不了机。解决方法:卸载nvidia驱动sudo apt-get remove --purge nvidia-*sudo apt-get autoremovesudo apt-get install -f (可以不用)sudo reboot连网线输入:sudo ubuntu-drivers autoinstall...
2020-01-08 10:18:08
1799
原创 如何让auto或者guided模式下,无论航点距离多少都按航点设置航向。
// set heading used for spline and waypoint navigationvoid AC_WPNav::set_yaw_cd(float heading_cd){ _yaw = heading_cd; _flags.wp_yaw_set = true; if(_yaw < 0.01f){ _fla...
2019-12-30 00:38:48
565
1
原创 Avoidance Adjusted Climbrate
// 输入z轴位置控制P,且得到加速度z ,目标攀爬率和时间间隔。avoid.adjust_velocity_z(pos_control->get_pos_z_p().kP(), pos_control->get_accel_z(), target_rate, G_Dt);// adjust vertical climb rate so vehicle does not brea...
2019-11-30 12:55:39
239
GNSS 接收机锁相环最佳环路带宽的选取
2020-12-13
06_FreeRTOS_Structure_Queue.rar
2020-07-08
05_FreeRTOS_Simple_Queue.rar
2020-07-08
04_FreeRTOS_Counting_Semaphore.rar
2020-07-07
03_FreeRTOS_Bin_Semaphore.rar
2020-07-04
02_FreeRTOS_TaskMangement.rar
2020-07-03
01_FreeRTOS_TaskPriority.rar
2020-07-03
GitKraken-v6.5.1.rpm
2020-05-06
GitKraken-v6.5.1.deb
2020-05-06
driver.msi
2020-01-07
2016年无人机和机器人传感器市场报告
2018-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人