1.python脚本环境下载
这里是原始发布源:
https://www.python.org/downloads/release/python-3114/https://www.python.org/downloads/release/python-3114/安装时记得添加进系统path,这样你可以随时调用python环境。
2.扩展模块的安装
step1.找到python安装位置,推荐安装everything.然会直接找python这个目录,它一般的位置在:
step2.打开cmd.exe,切换至这个目录, 执行:
pip install matplotlib --timeout 200 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
上面:
- pip install <module_name>是基础的命令字。
- timeout参数指定超时时间,单位秒。
- -i 制定镜像站,国外的源访问速度非常慢。
- --trusted-host是在指定信任这个私有源
一旦脚本执行时提示:
ModuleNotFoundError: No module named 'matplotlib'
就重复上述安装过程。
3.脚本编写和执行
只要学过一门计算机语言,就可以在ChatGPT的帮助下,熟悉程序结构和语法。
脚本代码存储为.py后缀,就可以直接点击执行。
如果需要排错,进相应的目录内,执行命令行即可。
在python脚本执行环境内直接执行 python命令,可以这样:
D:\>python
Python 3.11.4 (tags/v3.11.4:d2340ef, Jun 7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 13.0
>>> b = 1/a
>>> print(b)
0.07692307692307693
它起码可以替代计算器。 现在,可能是windows平台上最好用的脚本执行环境。甚至数学部分,可以部分替代matlab.
附录A:一段工作上正在使用的示例代码
我在之前仅仅了解非常有限的python语法,可能只学过不到50小时。在AI的助力下,你能比用搜索器更快地解决问题:
# show how to use FFT, filtered DC signal and return to SampleValue-time type.
# the basic concept is coming from ChatGPT.
# Write in python language.
#
# created by twicave.
# Jun09,2023
#
import numpy as np
import matplotlib.pyplot as plt
# 定义正弦信号
# 产生一个包含1000Hz、2000Hz两个正弦波信号和一个直流分量的复合信号
Fs = 20000;
f1 = 1000;
f2 = 2000;
t = np.arange(0, 0.01, 1/Fs);
signal = np.sin(2*np.pi*f1*t) + 0.7*np.sin(2*np.pi*f2*t) + 800;
fig = plt.figure(1, figsize=(8, 10));
plt1 = fig.add_subplot(2, 1, 1)
plt1.plot(t,signal)
plt1.set_xlabel('Time (s)')
plt1.set_ylabel('Amplitude')
plt1.set_title('Original Signal')
# 下面,将对应信号转至频域消除0点后转回时域
x = signal
# 傅里叶变换
X = np.fft.fft(x) # 计算原始信号的傅里叶变换
# 去除直流分量
X[0] = 0;
# 幅角变换
phase_shift = np.zeros(len(X))
phase_shift[len(X)//2] = -np.angle(X[len(X)//2])
X_corrected = X * np.exp(1j * phase_shift)
# 转回时域
x_withoutDC = np.real(np.fft.ifft(X_corrected));
print(x_withoutDC);
s_corrected = x_withoutDC;
plt2 = fig.add_subplot(2, 1, 2)
plt2.plot(t, s_corrected.real)
plt2.set_xlabel('Time (s)')
plt2.set_ylabel('Amplitude')
plt2.set_title('After filtered the DC of signal')
fig.suptitle("Demo program : filter DC of signal");
fig.show()