我有一个填充浮点数的示例文件,如下所示:
-0.02 3.04 3.04 3.02 3.02 3.06 3.04 3.02 3.04 3.02 3.04 3.02
3.04 3.02 3.04 3.04 3.04 3.02 3.04 3.02 3.04 3.02 3.04 3.02
3.06 3.02 3.04 3.02 3.04 3.02 3.02 3.06 3.04 3.02 3.04 3.02
3.04 3.02 3.04 3.04 3.04 3.02 3.04 3.02 3.02 3.06 3.04 3.02
3.06 3.02 3.04 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.04 -0.02 -0.04
Run Code Online (Sandbox Code Playgroud)
这些数字放在文本文件中.我正在尝试读取文本文件并确定此信号的频率.该数据从数字示波器捕获.我可以在范围显示中看到频率,但我也想通过在Python中处理它来验证它.我在PC端使用Python从设备捕获数据.
即使我可以在Python中做一些低级的东西,我也是文本处理的新手.我想我需要先将文件中的数据加载到数组中,然后执行FFT或更简单的算法,该算法将产生以Hz为单位的整数.
从理论上讲,我知道如何进行傅里叶分析,我可以用任何特定信号在纸上进行分析.我不知道从哪里开始在给定数据集的Python.我已经尝试过scipy-numpy的文档,但对我来说效果不好.
我希望有经验的用户提供指导.
我正在尝试设置网络摄像头的 fps 和分辨率,并通过 v4l2 Python 进行捕获。
v4l2 Python 文档仅限于;
>>> import v4l2
>>> import fcntl
>>> vd = open('/dev/video0', 'rw')
>>> cp = v4l2.v4l2_capability()
>>> fcntl.ioctl(vd, v4l2.VIDIOC_QUERYCAP, cp)
0
>>> cp.driver
'ov534'
>>> cp.card
'USB Camera-B4.09.24.1'
Run Code Online (Sandbox Code Playgroud)
查看 videodev2.h ;
#define VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm)
Run Code Online (Sandbox Code Playgroud)
VIDIOC_S_PARM 与 v4l2_streamparm 相关;
struct v4l2_streamparm {
enum v4l2_buf_type type;
union {
struct v4l2_captureparm capture;
struct v4l2_outputparm output;
__u8 raw_data[200]; /* user-defined */
} parm;
};
Run Code Online (Sandbox Code Playgroud)
如果我想设置参数;
import v4l2
import fcntl
vd = open('/dev/video1', 'rw') …Run Code Online (Sandbox Code Playgroud) 我正在尝试评估一个公式,np是numpy:
Ds = pow(10,5)
D = np.linspace(0, pow(10,6), 100)
alpha=1.44
beta=0.44
A=alpha*(D/Ds)
L=1.65
buf2=L/4.343
buf=pow(-(alpha*[D/Ds]),beta)
value=exp(buf)
Run Code Online (Sandbox Code Playgroud)
然后我将绘制这些数据但我得到:
buf=pow(-(alpha*[D/Ds]),beta)
TypeError: can't multiply sequence by non-int of type 'float'
Run Code Online (Sandbox Code Playgroud)
我怎么能克服这个?
copy testfile.txt \\\\IP_ADDR\\FOLDER
Run Code Online (Sandbox Code Playgroud)
在命令行中工作但是:
os.system("copy testfile.txt \\\\IP_ADDR\\FOLDER")
Run Code Online (Sandbox Code Playgroud)
以某种方式不起作用.有任何想法吗?
有一个替代品,os.system但为什么不这样做呢?
假设我有以下内容;
def test():
while 1:
a = b
time.sleep(60)
c = b
if(c==a):
do something
then quit the function
Run Code Online (Sandbox Code Playgroud)
从具有这种结构的函数退出的正确方法是什么?
考虑一个非常简单的计时器
start = time.time()
end = time.time() - start
while(end<5):
end = time.time() - start
print end
Run Code Online (Sandbox Code Playgroud)
这个计时器有多精确?我的意思是与实时时钟相比,这个是如何同步和实时的?
现在是真正的问题;
使用Python可以精确测量的最小时间尺度是多少?