我有一个洛伦兹频率分布
在哪里
和是峰值频率,R 是衰减常数。我知道分析傅里叶变换应该是
当我对该表达式进行 FFT 时,它不会返回原始频率图。我知道可能有一个比例因子(1/n)应该在某个地方,但即使我缩放一个频率,如果我然后改变或 R,幅度不再正确缩放,表明缩放因子是和/或 R。FFT 似乎也沿强度轴镜像。
我对 DSP 很陌生,但我知道连续傅立叶变换不是离散傅立叶变换。我读过这篇文章(https://dspillustrations.com/pages/posts/misc/approximating-the-fourier-transform-with-dft.html),但这种方法使近似值变得更糟。
当我对时间信号进行 FFT 时,我想返回原始频率分布。我错过了一些基本的东西还是一个相当简单的缩放错误?我在下面附上了我的代码。
干杯。
# R script to compare FFT and Analytical fourier transform
library(SynchWave)
#-------------------------------------------------
# Frequency and time axes
n <- 100
f <- seq(0, 1, length.out = n)
t <- seq(0, n, length.out = n)
# peak paramaters
O <- 0.3 # Frequency values from 0->1
R <- 0.04 # Decay in arbritrary units
z <- (f-O)/R
# The original lorentzian frequency
ff <-complex(re = 1, im = z)/(1 + z^2)
# creating the time domain signal
ftideal <- exp(-R*t)*exp(complex(i = (O)*2*pi*t))
unscaled <- (fft(ftideal))
scaled <- unscaled - min(Re(unscaled))
plot(f, Re(ff), type = 'l')
lines(f, Re(scaled), type = "l", col = 'red')
```