如何使用R将Interferogramm傅里叶变换为IR光谱?

1yjd4xko  于 2024-01-03  发布在  其他
关注(0)|答案(1)|浏览(132)

您好互联网的人,我有一个Interferogramm(时域),并希望傅立叶变换到红外光谱(频域),以获得分子中的官能团的峰值. FTIR(傅立叶变换红外光谱)是一种先进的方法来确定分子中的官能团.所谓的干涉仪是这样构建的:


的数据
干涉图绘制了以伏特为单位的信号强度与以纳米为单位的反射镜位置,如以下脚本所示:

par(family="mono", font.axis=1)
data <- read.table("D13-4-aminobenzoic_acid_interferogram.asc")
x <- data[,1]
y <- data[,2]

plot(x,y, 
     type="l", 
     xlab="Mirror position [mm]", 
     ylab="Signal intensity [V]",
     axes=F,
     )
axis(1)
axis(2)

字符串
这是Link.asc文件的测量数据。傅立叶变换后的光谱应该是这样的:



我的问题是:如何在R中使用fft()从干涉图到红外光谱进行快速离散傅立叶变换?在R中可以从光谱到干涉图进行逆变换吗?如果可以,如何完成。干杯,Kris

k5ifujac

k5ifujac1#

试试这个解决方案:

d <- read.table('D13-4-aminobenzoic_acid_interferogram.asc')
f <- fft(d[,2])
# do fft(f,inverse=T) to get the unnormalized inverse

f2 <- sqrt(Re(f)^2 + Im(f)^2)

c <- 2.9979e8 # speed of light
lambda.laser <- 632.8e-9 # (nm) HeNe
nu.Nyquist <- 1e-2/lambda.laser # upper limit of the wavenumber
delta.nu <- nu.Nyquist/nrow(d) # wavenumber spacing

i.nu <- 1:floor(length(f2)/2) # show plot up to the Nyquist limit
plot((i.nu-1)*delta.nu,f2[i.nu],type='l')

字符串

相关问题