草庐IT

signal-processing

全部标签

python - 如何扩展 pyWavelets 以处理 N 维数据?

这可能是其他论坛的问题,如果是这样请告诉我。我注意到只有14个人关注wavelet标签。我在这里提供了一种将pywt(pyWavelets包)中的小波分解扩展到多个维度的优雅方法。如果安装了pywt,这应该是开箱即用的。测试1显示了3D数组的分解和重组。只需增加维数,代码就可以分解/重组4、6甚至18维数据。我在这里替换了pywt.wavedec和pywt.waverec函数。此外,在fn_dec中,我展示了新的wavedec函数如何像旧函数一样工作。但有一个问题:它将小波系数表示为与数据形状相同的数组。因此,由于我对小波的了解有限,我只能将它用于Haar小波。其他类似DB4的例子会在

python - multiprocessing.Process(使用 spawn 方法): which objects are inherited?

文档(python3.4)解释说,使用spawn,“子进程将仅继承运行进程对象的run()方法所需的那些资源”。但是哪些对象是“必要的”?我阅读它的方式向我表明,可以从run()内部访问的所有对象都是“必需的”,包括作为args传递给Process的参数.__init__,以及存储在全局变量中的任何内容,以及在全局范围内定义的类、函数及其属性。但是,这是不正确的;以下代码确认存储在全局变量中的对象没有被继承:#runningunderpython3.4/Windows#butbehavesthesameunderUniximportmultiprocessingasmpx=0class

python - 如何使用可变宽度高斯在 python 中执行卷积?

我需要使用高斯执行卷积,但是高斯的宽度需要改变。我不是在进行传统的信号处理,而是需要采用我完美的概率密度函数(PDF)并根据我的设备的分辨率“涂抹”它。例如,假设我的PDF开始时是尖峰/增量函数。我会将其建模为非常窄的高斯分布。通过我的设备运行后,它会根据某种高斯分辨率被涂抹掉。我可以使用scipy.signal卷积函数来计算它。importnumpyasnpimportmatplotlib.pylabaspltimportscipy.signalassignalimportscipy.statsasstats#Createtheinitialfunction.Imodelaspike

python - numpy.fft.fft 的功率谱

无论我如何更改数据,我通过下面的代码绘制的数字都只是零附近的一个峰值。我的数据只是一列,记录了某种信号的每个时间点。time_step是我应该根据数据中两个相邻点的间隔来定义的值吗?data=np.loadtxt("timesequence",delimiter=",",usecols=(0,),unpack=True)ps=np.abs(np.fft.fft(data))**2time_step=1freqs=np.fft.fftfreq(data.size,time_step)idx=np.argsort(freqs)pl.plot(freqs[idx],ps[idx])pl.sh

python - django,fastcgi : how to manage a long running process?

我继承了一个django+fastcgi应用程序,需要对其进行修改以执行冗长的计算(最多半小时或更长时间)。我想做的是在后台运行计算并返回“你的工作已经开始”类型的响应。当进程正在运行时,进一步点击url应该返回“您的作业仍在运行”,直到作业完成,此时应该返回作业的结果。对url的任何后续命中都应返回缓存的结果。我是django的完全新手,十年来没有做过任何重要的网络工作,所以我不知道是否有内置的方法来做我想做的事情。我已经尝试通过subprocess.Popen()启动进程,除了它在进程表中留下一个失效条目之外,它工作正常。我需要一个干净的解决方案,可以在它完成后删除临时文件和进程的

python - pydata 火焰 : does it allow parallel processing or not?

我希望并行化numpy或pandas操作。为此,我一直在研究pydata的blaze。.我的理解是无缝并行化是它的主要卖点。不幸的是,我一直无法找到运行在多个内核上的操作。blaze中的并行处理是否可用或目前只是一个既定目标?难道我做错了什么?我正在使用blazev0.6.5。我希望并行化的一个函数示例:(pytables列的重复数据删除太大而无法放入内存)importpandasaspdimportblazeasbzdeff1():counter=0groups=pd.DataFrame(columns=['name'])t=bz.TableSymbol('t','{name:str

Python - Multiprocessing.processes 从可执行文件运行时成为主进程的副本

我刚刚在我的程序中发现了一个与使用Python的多处理模块有关的奇怪错误。当我在我的机器上从源代码运行程序时,一切正常。但是我一直在使用pyinstaller将它构建成一个可执行文件,并且由于某种原因,当我运行从我的代码构建的可执行文件时,多处理的行为发生了巨大的变化。具体来说,当我尝试运行我的代码的多处理部分,而不是做它应该做的事情时,会弹出一个似乎是我的程序主窗口的副本,每个进程一个。更糟糕的是,如果手动关闭它们,它们会重新打开,大概是因为它们是multiprocessing.pool的一部分。不会打印任何错误消息,一旦创建所有窗口,它们就坐在那里什么也不做。是什么原因导致的?

python - 过滤长时间序列Python的最有效方法

我有一个很大的时间序列,比如1e10,它是记录神经事件(即电压)的结果。在进行进一步分析之前,我想对300Hz和7000Hz之间的数据进行带通滤波。下面,我发布了我设计的Butterworth滤波器的代码。如何让这个过滤器更快?运行时间太长。更新:样本数据Here是指向数据的链接,例如data的每一行。关于格式,每一行代表不同的记录源,每一列代表一个时间点。数据以20,000Hz采样。defbutter_bandpass(lowcut,highcut,fs,order=8):nyq=0.5*fslow=lowcut/nyqhigh=highcut/nyqb,a=butter(order

python - 数字化模拟信号

我有一组表示数字输出的CSV值。它是使用模拟示波器收集的,因此它不是完美的数字信号。我正在尝试过滤掉数据以获得完美的数字信号来计算周期(可能会有所不同)。我还想定义从该过滤中得到的最大误差。像这样:想法对数据应用阈值。这是一个伪代码:fordata_point_rawindata_array:ifdata_point_raw2:data_point_perfect=HIGHelse:#areabetweenthresholdsifprevious_data_point_perfect==Low:data_point_perfect=LOWifprevious_data_point_pe

Python anaconda conda 问题 : updating anaconda package impossible because processes are running

我在使用conda更新anaconda的包时遇到问题。当我进行condaupdate--all时,有一个问题对我说:Error:Unabletoremovefilesforpackage:cryptographyPleasecloseallprocessesrunningcodefromcryptographyandtryagain.但是,没有进程在运行,我只是打开了cmd窗口。例如,当我想要更新dateutile时,情况相同。就像conda使用了一些包然后我无法更新它们一样?有人知道关闭或删除这些软件包以重新安装它们的方法吗?信息:C:\Anaconda3\Scripts>conda