给定脉冲响应的一些频域表示。
如果保持采样频率恒定,频域采样点的数量如何影响逆 FFT 的结果?
示例 1 对于 (0,10) 中的 t,取 x(t) = e^(-t)*sin(t)。对信号进行采样,获取它的 fft。省略 fft 的每隔一个点,并在结果上执行逆 fft。结果如下:
所以看起来频域下采样已经删除了我的信号的第二部分,同时将第一部分除以二。(实际上,将结果乘以 2 会得到一条正好位于原始信号第一部分上方的曲线。)
- 为什么它删除了第二部分而不是任意其他部分?我想这与第二部分几乎为零有关,但我似乎找不到确切的原因。
- 为什么结果除以二?
- 这如何推广到其他时间信号?
示例 2(病理性) 同上,这次信号从 1 线性下降到 0.1。
那是什么?
编辑这里有一个错误:我不小心使用了奇数个采样点,导致IFFT后信号复杂。这是固定的情节。
我对数学/理论以及对正在发生的事情的直观解释以及在哪里阅读的指针感兴趣。我什至很难为我正在做的事情找到一个正确的术语。
这是生成上述图的R代码。
# First plot
t <- seq(0.01, 10, 0.01)
z <- exp(-t)*sin(t)
Z <- fft(z)/length(z)
Z2 <- Z[seq(1,length(Z),2)]
z2 <- fft(Z2, inverse=T)
plot(z)
points(Re(z2), col="red")
legend("topright", legend=c("original", "half-sampled"), fill=c("black", "red", "blue"))
# Second plot
x <- seq(1,0.101, -0.001)
X <- fft(x)/length(x)
X2 <- X[seq(1,length(X),2)]
x2 <- fft(X2, inverse=T)
plot(x)
points(Re(x2), col="red")
legend("topright", legend=c("original", "half-sampled"), fill=c("black", "red", "blue"))