微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何计算信号数据的点扩散函数PSF?

如何解决如何计算信号数据的点扩散函数PSF?

我在熊猫 df 中有色谱数据(信号),信号处理步骤之一是执行峰值锐化,如下图所示

enter image description here

参考文献如下:

文献:Paper 1(尖峰部分)Paper 2

文学中的算法

D_{K+1} = D_{K} + \lambda(D_{0} - h\bigotimes_{}^{}D_{K})

D_{K+1} :K + 1 次迭代后的解卷积高分辨率数据

h:点扩散函数

自适应点扩散函数估计:峰值被检测到 正则化迹并称为具有标准分类的基 方法。被调用的峰值用于自适应地估计局部 点扩散函数 h.时间定位参数 d 是 根据段中的峰间距估计。

如何找到信号数据的 h? 已经经历了以下

PSF (point spread function) for an image (2D)

How do you extract a point spread function from a fits image?

How to build a function in Python (Jupyter) for calculation of Point Spread Function (image processing?)

所有这些都是图像数据

示例数据

enter image description here

Sample data
array([[ 31,49,1,44],[ 36,48,47],[ 43,47,53],[ 50,44,63],[ 59,41,75],[ 68,40,90],[ 78,6,107],[ 87,12,123],[ 99,43,20,140],[110,45,31,155],[121,42,170],[131,53,182],[140,63,191],[148,50,72,196],[155,51,79,[161,83,189],[166,55,177],[169,58,80,160],[170,62,[167,65,119],70,100],[154,75,84],[144,30,72],[132,86,23,65],92,19,61],[111,98,[106,102,[105,104,29,67],38,71],[123,[141,59,78],[160,71,79],[179,85,[195,77,101,74],[205,68,117,68],[208,133,[203,145,52],[191,152,43],[173,37,154,35],[150,32,151,28],142,23],[ 94,129,20],[ 65,114,21],[ 40,52,96,25],[ 21,[  9,91,51],[  1,113,39,[  0,134,24,97],13,126],168,5,157],181,188],193,216],203,241],211,258],215,265],213,262],207,249],195,227],180,200],164,148,132,113],116,100,18,62],66,57],64,58],36,64],25,76],94],15,187,116],16,199,143],169],22,186,193],26,211],[  7,28,222],[ 17,224],[ 31,218],204],[ 71,184],[ 91,11,4,134],[117,8,3,109],[122,85],[120,2,10,[113,46],[101,32],[ 86,22],[ 69,34,16],[ 52,13],[ 24,18],[ 18,[ 20,56,46,36],76,49],[ 51,94,[ 81,110,[118,123,[158,[199,136,89],[236,135,[265,131,73],[282,122,59],[286,[277,95,29],[256,17],[226,61,8],[189,2],0],[112,17,[ 77,[ 49,74,[ 28,[ 15,3],224,12],[  5,280,333,379,87],411,130],[  4,425,178],[  2,419,226],393,271],350,307],299,329],248,334],206,320],178,289],167,246],173,192,146],217,246,275,33],301,15],326,4],351,377,403,430,456,484,510,535,7,555,14,569,574,33,572,565,548,546,84,550,[ 27,[ 53,558,[ 88,554,536,[178,503,7],[219,453,[252,82,390,24],[273,317,[279,240,[270,69,165,[247,48],[214,73,41],30],19],[ 93,121,10],150,[ 34,227,[  6,271,315,354,384,5],404,413,39],398,55],378,276,9,235,198,60,107,42],[ 13,139,172,120,242,109,310,[143,103,367,[233,[344,414,1],[467,394,[591,[702,287,[786,[831,144,[833,[792,54,[713,[606,36]],dtype=int64)

解决方法

感谢您发布示例数据。

首先对四列中的每一列依次进行傅立叶变换。 arr 是上面的数据。

import numpy as np
import matplotlib.pyplot as plt

t=np.arange(0,arr.shape[0])
plt.figure()
for icol,col in enumerate(arr.T):
    sigFFT = np.fft.fft(col) / t.shape[0]
    freq = np.fft.fftfreq(t.shape[0],d=1)
    plt.plot(freq,sigFFT)

(对于没有标签等深表歉意)

您可以看到 PSF(广泛的功能)。安装信封以获得 PSF。你期待什么形状的 PSF?试试 sinc 之类的。

FFT of data

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。