/images/avatar.png
Change Language 👉   

2023 年 3-6 月工作总结

给从今年三月到现在断断续续的工作做一个总结

1 RTL-SDR & PYNQ-Z2

1.1 现有工作

这个工作是将 RTL-SDR 通过 USB2.0 与 PYNQ-Z2 连接来配合使用。RTL-SDR 将射频信号下变频为基带信号;PYNQ-Z2 通过 USB2.0 接口接收 RTL-SDR 返回的基带信号,并使用 FPGA 进行信号处理。最后,可以在 PYNQ Jupyter Notebook 中实现一个简单的 FM 收音机的网页应用。

Python 协程/异步IO

最近做项目用到 Python 协程/异步,现在总结一下:

导入

1
import asyncio

如果在 IPython 环境里使用,需要加两行:

1
2
3
import nest_asyncio
nest_asyncio.apply()
import asyncio

协程

协程(coroutines)是 Python 异步编程的核心。一个 coroutine 要用 async def 来定义。

开发板通过 PC 连接互联网

Windows

在控制面板中设置能上网的网卡,共享给以太网。此时以太网的 IP 会变成 192.168.137.1

然后在开发板终端中设置网关为 192.168.137.1 即可:

sudo route add default gw 192.168.137.1

IP 设置为 192.168.137.x,x 不是 1 和 255(网关地址和广播地址)就行:

给 Linux 增加 swapfile

Xilinx 的工具链也太占内存了,有时候会导致系统死机。。毕竟我这个小破本才 8G 内存。没办法,只能加虚拟内存了。

增加了 swapfile 之后就好很多了:

1
2
3
4
sudo swapoff /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=16384
sudo mkswap /swapfile
sudo swapon /swapfile

在 Windows 中挂载 EFI 分区的方法

为了在 Windows 中挂载 EFI 分区,我们可以在 PowerShell 中运行如下命令

1
2
3
4
5
6
diskpart
list disk  # make sure which is the disk that contains the EFI partition. usually 0
select disk 0
list partition # make sure which is the EFI partition. normally 0
select disk 0
assign letter=z

然后我们就将 EFI 挂载为盘符为 Z 的盘了。

高维空间中的旋度

1 微分形式

在介绍旋度之前,我们得先介绍一下微分形式和外微分算子。

一个 $n$ 阶形式可以定义为一个交替多重线性映射 $\omega:(T_pM)^n\rightarrow \mathbb{R}$ 。它把多个向量映射成一个实数。另外,它还满足交替性,即交换两个输入向量,输出多一个负号。

赝矢量到底是什么?

1 引子

我们在物理书中经常看到所谓“赝矢量”(pseudo-vector)和“赝标量”(pseudo-scalar)的说法。

其实,在 3 维流形上,“赝矢量”是两个切矢量的外积 $v\in T_pM\wedge T_pM=\bigwedge^2(T_pM)$ ,“赝标量”是三个切矢量的外积 $s\in T_pM\wedge T_pM\wedge T_pM=\bigwedge^3(T_pM)$ 。