我正在分析一个时间信号,我想要应用FFT来获取频域中的信号分量。 但是,我似乎有问题的是,我的信号持续时间相对较短,为t_end
。由于这个原因,我的频率仓大小dohm
非常大。我希望在不增加信号持续时间的情况下缩小我的分辨率。在matlab中获得更精细的FFT
这里是我的简化代码:
Fs = 100; %Sampling frequency
Ts = 1/Fs; %Sample time
t_end = 50; %End time
t = 0:Ts:t_end;
A = 5;
B = 3;
C = 4;
for ii = 1:length(t)
x(ii) = A*cos(4*t(ii))+B*sin(3*t(ii))+C*sin(2*t(ii)); %Random signal
end
xdft = fft(x); % Fast Fourier Transfrom
freq = 0:Fs/length(x):Fs/2; % The signal is symmetric; the second half is neglected
xdft1 = xdft(1:length(x)/2+1)./length(x); % Again second half is neglected
Ohm = 2*pi*freq; % x-axis transformation to rad/s
dohm = Ohm(2)-Ohm(1); % frequency bin size in rad/s
dft = abs(xdft1); % Take the absolute value, these are the heave amplitue spectrum values
看来,降低频率段大小dohm
的唯一途径是品尝较长区间的信号,但我很遗憾,我没能做到这一点在我的情况。还有其他选择吗?
谢谢!