python处理雷达数据,
我休息了几天后回来了。
这篇前言是Pylab的一个小试用,并过渡到许多其他主题,包括《编码速度估计的长时间等待的后果》。
在工作中,我们使用MATLAB作为数据分析和可视化软件。但在我的群里,它只是作为一个共享平台。我讨厌和别人分享。-)所以我开始看其他选项。
Scilab,Octave,Sage……都有点脆弱,似乎没有我想要的功能特性和丰富度。然后我找到了Pylab。
Py是Python环境下的科学计算,包含以下包:
Matplotlib:图形和数据可视化:Numpy:基本数值分析(向量、矩阵、这些运算的科学函数);科学与工程应用。等一下。这是一篇嵌入式系统的博文吧?Python不能在资源有限的嵌入式系统上运行,事实上,Python符合我的三个标准之一。不幸的是,您不能在资源有限的嵌入式系统上运行:
你有一个带命令行的操作系统。可以运行Python。你的操作系统里有编译器在运行,就不用交叉编译了。所以如果你正在使用Python,你不会真的去做嵌入式系统的开发,但是这没关系,因为你需要扩展你的技能跨度。不要做一个只会用C的技术人员,为自己喜欢的处理器选择集成开发!
反正很多时候我需要停下编程,把自己的一些想法理论化。Python后来帮了大忙。
我们真的需要臭臭的MATLAB吗?我们需要明确的是,本文针对的是工程师(尤其是嵌入式系统工程师),他们的信号处理、数据分析和可视化工作是他们工作的次要部分。
对于一直在设计信号处理或控制系统的全职工程师来说,MATLAB是一个合适的选择。
如果你的公司付得起每周40小时的工资,他们也付得起MATLAB的费用。
如果对成本无所谓的话,我喜欢用MATLAB,我会尽量把工具箱都弄来。
我不会详细介绍信号处理或控制系统算法(z变换、FFT、根轨迹图、尼科尔斯图等)。)这里。我会一步步介绍Python和Pylab的使用。py的基本用途纯粹是激发你的兴趣。
应用假设你需要了解带感性负载的H桥的纹波电流,带边沿对齐和中心对齐的脉宽调制。
下面是一些纹波电流图,由一些Python脚本语言生成。
边沿对齐PWM(脉宽调制)
中心对齐PWM(脉宽调制)
将matplotlib.pyplot导入为pltimport numpyimport scipy。integrate=numpy。arange(0,4,0.001)# A相占空比和BDa=0.70 db=0.40 def扩展范围(ra,rb):如果太阳神为无:返回rb elif rb为None:return ra else:return(min(ra[0],rb[0]),max(ra[1],rb[1]))def createLimits(margin,* args):r=None for x in args(numpy . min(x),numpy。max(x)))rmargin=(r[1]-r[0])* margin/2.0 return(r[0]-rmargin,r[1]rmargin)def show ripple(center align=False):#如果居中对齐:锯齿=abs(2*(t % 1) - 1) Va=锯齿Da Vb=锯齿Db else:ramp=T % 1 Va=ramp Db Vab=Va-Vb def ripple(x所以我们需要在返回numpy.append([0],scipy。整合。cum trapz(x-mean val,t)) Iab=ripple(Vab,t)#绘图结果边距=0.1 fig=PLT。fig(fig size=(8,6),dpi=80) ax=fig.add_subplot(3,1,1) y=[Va*0.8,Vb*0.8 1] ax.plot(t,y[0],t,y[1]) ax.set或者比较两个2级天主教;电阻滤波器,一个具有相同天主教;电阻并且一个具有第二级阻抗的滤波器增加10以减少负载(注意:下面的示意图不是用计算机编程语言画的,而是在电路实验室中手动画的)。
相应的计算机编程语言代码片段为:
导入matplotlib.pyplot为pltimport numpyimport itertools#数组版本的zip()函数def azip(* args):iters=[ITER(arg)for args]for I in ITER工具。count():yield(it。iters)# 2 args def azip 2(a1,a2)中的next())的特例:it1=ITER(a1)it2=ITER(a2)对于ITER工具中的I。count():yield(it1。next(),it2.next()) def rcfilt(t,Vin,R,C):N=len(C)Vc=[0]* N TP rev=None for(TJ,Vj) in azip2(t,Vin):如果tprev不为none:I=[(Vj-Vc[0])/R[0]][(Vc[k-1]-Vc[k])/R[k]对于区间(1,N)中的k)][0]dt=TJ-TP rev对于区间(N)中的k:Vc[k]=(I 1e-9)Vc _ a=numpy。array(list(RC filt(t,Vin,R,C)))R=[1000,1000]C=[10e-9,10e-9]Vc _ b=numpy。array(list(RC filt(t,Vin,R,C)))fig=PLT。fig(fig size=[8,6],dpi=80)ylabels=[Vc_a , Vc_b]for (k,Vc _ in枚举Vc_b=1K,10nF,1K,10nF)fig . save fig( rcfilt 1 .png ,dpi=fig.dpi)plt.show()或者使用计算机编程语言的交响乐符号代数包来计算分段线性代码段的均方值:
from sympy import *x0,x1,y0,y1,m,h=symbols( x0 x1 y0 y1 m h )simplify(integrate((m *(x-x0)y0)* * 2,(x,x0,x0 h))。subs(m,(y1-y0)/h))你甚至可以在交响乐现场服务器上自己亲自试试:
安装计算机编程语言核心的安装是非常简单的;系统系统用户可以直接安装Python,但是不管你是什么操作系统,在计算机编程语言官网python.org有编译好的二进制安装文件。
如果你想安装scipy/numpy/matplotlib库而不依赖于安装正确的编译环境,那么就会变得有点棘手。
scipy.org的网站上列出了一些好的解决方案。我想我也会分享我自己的经历。大师,我不用Linux,所以请查看scipy.org页面的解决方案。
WINDOWS系统我用了三个免费的预打包版本的PyLab。
entthought canopypportablepython Python xy可移植Python拥有最可靠的安装/运行时。
Xy具有最大的功能集(和最大的安装足迹)。
Enthought天篷不错;Enthought提供免费版本试用。如果你想要更多的库,你可以购买非免费版本——比如他们的早期发行版,EPD。这些版本从命令行运行有点简单,但不知道如何稳定运行。
还有Anaconda,我一开始是在Mac OSX系统上用的,从来没有在Windows上用过。
MAC OSX系统我在家里的MAC电脑上运行雪豹(OSX 10.6)。我还没有为PyLab找到一个好的解决方案,但我正在努力。
PyLab最简单的免费安装似乎是来自Continuum Analytics的Anaconda。安装非常简单,并且会很快工作…除了当我运行为本文编写的脚本时,会出现一些关于内存分配的警告(该脚本工作正常)。当我运行我的常规Python安装时,我的matplotlib安装出错了。啧啧,希望这些问题能理顺。蟒蛇似乎很有前途。
Mac上一个常见的免费程序是使用像fink或MacPorts这样的包管理器。MacPorts进程(sudo port install blahblahblah …从命令终端)有点脆弱。如果你的设置有问题,那么整个过程会因为一个神秘的信息而停止。
Enthought Canopy也有OSX和Linux版本,但我还没有试过。
您还可以将现有的预编译二进制文件用于各种包。虽然Python预装在Mac上,但请确保您的Python版本与您要安装的库兼容。我也建议安装最新版本的Python。至少,这些是你需要的:
Pythonmatplotlibscipynumpy原地址:https://www . dsprelated . com/show article/359/adventures-in-signal-processing-with-python-MATLAB-we-don-t-need-no-sting in-MATLAB
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。