红米AX6000路由器刷机流程记录
Redmi AX6000 参数
参数
数值
参数
数值
产品型号
RB06
天线数量
4
分类
千兆双频 AX6000
信号放大器
独立八路
电源规格
12V@2A
网络接口
千兆网口 ×4
处理器
MT7986A 四核 2.0GHz
空间流
2.4GHz 4×4 5GHz× 4×4
内存
512MB
无线速率
1148Mbps 4804Mbps
闪存
128MB
最大频宽
160MHz
无线协议
Wi-Fi 6
注:Redmi AX6000 没有 2.5G
网口,考虑之后攒钱换一个接口更多的路由器……
电源适配器:
型号
输入
输出
AD-0241200200CN-1
100-240V~50/60Hz 0.7A
12V@2A
官方固件解锁 SSH
系统版本: 1.0.67
稳定版
将路由器重置后,后台默认地址是
http://192.168.31.1,进入到后台后,获取 URL 中的
stok(session token
的缩写),然后用浏览器打开下面链接({token}
替换 ...
信号的多普勒展缩建模
在“狭义相对论”的物理学假设下,光速是恒定的,是任何物体运动速度的上限。因此,信号在发送时刻就已经确定了其传播方向与传播距离,与后续收发机的运动无关。
假设发送机从 时刻开始,每隔
时间间隔,离散地发送一次复信号。
时刻,接收机在距离发送机
的位置,并且以一定的速度
远离发送机运动。
感觉本文最初的假设,发送机在
时刻发送的信号,其传播距离仅与
有关,假设接收机在
时刻收到该信号,则 ,表示传输时延。
发送机在
时刻发送信号,此时二者的距离为 ,传输时延为 ,接收机收到信号的时刻为 ,以此类推,第 个复信号的传输时延为
接收机接收到第
个复信号的时刻为
接收机收到第 个复信号与第
个复信号的时间差为
而发送机发送第 个复信号与第
个复信号的时间差为 ,由此可以看出,经过多普勒的影响后,信号在接收端表现为
平移+展缩 的效果。
附录
平移+展缩 的 MATLAB 仿真程序:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 ...
平方根倒数计算
12345678910111213141516float Q_rsqrt( float number ){ long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; // evil floating point bit level hacking i = 0x5f3759df - ( i >> 1 ); // what the fuck? y = * ( float * ) &i; y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed return y;}
这是在《雷神之锤 III 竞技场》源代码 ...
频偏对相关峰高度的影响
在接收机的捕获模块中,以相关峰高度作为捕获性能的衡量指标,当接收信号的相位与本地码相位对齐时,相关运算的结果会出现较大的相关峰,但如果存在频偏,会导致相关峰高度下降。下面推导相关峰高度与频偏的关系:
设捕获模块的输入信号的一个符号为 ,它被扩展为 个码片,忽略随机时延,即与本地 PN
码相位对齐时,时域表达式为
式中,
表示本地参考信号,
表示离散的加性高斯白噪声,
表示频偏,
表示采样周期。
捕获的输入信号与本地参考信号的相关结果为
忽略噪声项
,带入上式中得
当 远小于采样率
时, 近似为
当 时,峰值位置
,零点位置对应
由此可以得出,相关峰随频偏的变化满足 函数,并且当频偏为 的整数倍时,相关峰高度为 ,MATLAB 仿真结果如图所示
在捕获模块频偏搜索的精度选择上,如果以 为步进设置频偏通道,在
的奇数倍时相关峰高度最低,为无频偏位置的 ,性能损失较大,如果以 为步进设置频偏通道,在
的奇数倍时相关峰高度最低,为无频偏位置的 ,性能损失较低,因此,综合捕获性能与资源消耗的考量,选择以
作为频偏搜索精度。
FPGA虚拟双口RAM
给一段波形加发送时延,可以将其存储到 BRAM IP
核中,读地址比写地址晚响应的延迟采样点数(BRAM
深度足够,即大于延迟采样点数),就达到了延迟的效果。对于常有效的信号波形来说这么做是可以的。但是对于只有在某几个时刻有效的信号来说,仍采用这种办法缓存,BRAM
中存储的大多数数据是无效的,浪费了很多 BRAM 资源。
本文采用的办法是“虚拟”的
RAM,读地址与写地址的关系不变,虚拟的写地址始终累加,虚拟的读地址延迟相应的采样点数。但是数据不写入
RAM
中,而是在数据有效时写入一个寄存器,并且标记对应的虚拟写地址为真实的读地址,当虚拟的读地址为真实读地址时从寄存器中读出数据。(testbench
见附录)
如下图所示,数据 data 只有当 valid
拉高时有效,于是按照上述逻辑对 data 和 valid
信号延迟,当 ...dout_valid 拉高时表示数据延迟了 \(100\) 个采样点。
特别感谢罗老师的耐心细致的讲解!
附录
123456789101112131415161718192021222324252627282930313233343536373 ...
缓存系统
最久未使用缓存机制
最久未使用(Least Recently Used,
LRU)缓存机制,将最近最少使用的内容替换掉。
146. LRU
缓存
利用 哈希表 和 双向链表 实现 LRU
缓存机制,使查找、添加和删除都是 的操作。
待缓存的内容以键值对 key-value
的形式存在,哈希表存储了已经存在于缓存区的内容的
key。双向链表的节点按照访问时间排序,越靠近尾部,越久没有被访问。
读取缓存时,只需要在哈希表中查找是否存在
key,存在则返回对应的
value,同时,这是最新访问的
key-value,就把它移动到链表头部,如果不存在,就将其直接插入到链表头部。
更新缓存时,直接将 key-value
更新到链表头部即可,如果超出缓存区容量,将尾部节点删除。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include <unordered ...
SpringBoot环境配置
Windows
操作系统:Windows 11 Pro 24H2
安装包路径
Java(TM)SE
Development Kit 24.0.1(64-bit)
IntelliJ
IDEA Community Ultimate 2025.1.3
Apache Maven
3.9.10(下载 .zip 文件并解压)
添加环境变量
新建 系统变量:
变量名为 JAVA_HOME,变量值为
C:\Software\Java\jdk-24
变量名为 MAVEN_HOME,变量值为
C:\Software\Java\Maven
系统变量 Path 中添加 C:\Software\Java\jdk-24\bin 和
C:\Software\Java\Maven\bin
添加完成后打开 PowerShell,执行
java --version,显示如下
12345❯ java --versionPicked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8java 24.0.1 2025-04-15Java(TM) SE Runtime Envi ...
经过射频上变频后IQ为什么反了?
数学原理
设数字域信号为 ,经过中频上变频,DAC 发射信号为
频域表示为
经过射频的上变频,最终发射信号表示为
仿真(MATLAB)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495close all; clear; clc;%% System Parametersfs = 24.576e3; % 24.576MHzfc = 10; % 10kHzf_if = 50; % 50kHzf_rf1 = 450; % 450kHzf_rf2 = 550; % 550kHzN = 2 ^ 20;t = 0: 1/fs : 500; % 500sf = (-N/2 : N/2-1) * ...
判圈法
Floyd 判圈法
Floyd 判圈法
利用快慢指针,快指针步进速度为慢指针的两倍,若是链表中存在环,则两个指针一定会相遇,且快指针路程比慢指针路程多圈长度的整数倍。
假设两个指针在
点相遇,则有
快指针:
慢指针:
【LeetCode】141.
环形链表
12345678910111213141516171819202122class Solution {public: static bool hasCycle(ListNode *head) { if (head == nullptr || head->next == nullptr) { return false; } ListNode *low = head; ListNode *fast = head->next; while (fast != nullptr) { if (fast == low) { return true; } ...
多相滤波器
抽取与抗混叠 FIR 滤波器
抽取的作用是仅保留每 M 个样本中的 1 个样本,从而降低采样率。
如果要从 抽取到 ,首先需要经过一个低通滤波器,滤除所有高于
的信号,从而满足
Nyquist 采样定理。
MATLAB 仿真程序如下(代码由 Claude Sonnet 4.5 生成)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541 ...