温度时间序列的 fft 单位
units for fft of temperature time series
我有一个气温时间序列,以摄氏度为单位测量,信号频率是每月一次。我将时间序列的功率谱计算为:
L = length(temp);
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(temp,NFFT)/L;
Fs = 1; % one sample per month
f = Fs/2*linspace(0,1,NFFT/2+1); % frequency
Pxx = 2*abs(Y(1:NFFT/2+1)); % power
% Plot single-sided amplitude spectrum.
plot(f,Pxx,'-k');
xlabel('Frequency (c/month)'); % cycles per unit time
结果如下图。
yaxis 的单位应该是什么?应该是^{o}C吗?
时间序列的范围大约是 20,所以我猜 10 可以作为振幅...
假设原始坐标轴是 T(垂直)和 t(水平);变换后为Y和X。
您正确地发现 X 的单位是 t 的单位的倒数。这对于像 exp(2*pi*i*t*X)
这样的公式有意义是必要的:乘积 t*X
必须是无单位的。
Parseval's identity 可用于推断垂直轴上的单位。根据它,
(T units)2 (t units) = (Y units)2 (X units)
因此 Y 单位 = (T 单位) (t 单位)。在您的情况下,这是 degree-times-second,但最好表示为 degree-per-frequency 单位。
的确,傅里叶变换产生的函数是振幅密度,表示每个特定频率范围内有多少振荡。
我有一个气温时间序列,以摄氏度为单位测量,信号频率是每月一次。我将时间序列的功率谱计算为:
L = length(temp);
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(temp,NFFT)/L;
Fs = 1; % one sample per month
f = Fs/2*linspace(0,1,NFFT/2+1); % frequency
Pxx = 2*abs(Y(1:NFFT/2+1)); % power
% Plot single-sided amplitude spectrum.
plot(f,Pxx,'-k');
xlabel('Frequency (c/month)'); % cycles per unit time
结果如下图。
yaxis 的单位应该是什么?应该是^{o}C吗?
时间序列的范围大约是 20,所以我猜 10 可以作为振幅...
假设原始坐标轴是 T(垂直)和 t(水平);变换后为Y和X。
您正确地发现 X 的单位是 t 的单位的倒数。这对于像 exp(2*pi*i*t*X)
这样的公式有意义是必要的:乘积 t*X
必须是无单位的。
Parseval's identity 可用于推断垂直轴上的单位。根据它,
(T units)2 (t units) = (Y units)2 (X units)
因此 Y 单位 = (T 单位) (t 单位)。在您的情况下,这是 degree-times-second,但最好表示为 degree-per-frequency 单位。
的确,傅里叶变换产生的函数是振幅密度,表示每个特定频率范围内有多少振荡。