簡體   English   中英

為什么時域欠采樣信號的 N 點 FFT 比僅時域信號的 N 點 FFT 差(未重采樣)

[英]Why N point FFT of a undersampled signal in time domain is worse than only a N point FFT of the time domain signal (Not resampled)

我試圖了解當我嘗試用更少的樣本重建信號的頻譜時會發生什么。 我嘗試了 2 種方法。 我根據需要的樣本數 (N) 重新采樣時域信號,然后進行 FFT。 在第二種方法中,我只是做了一個 N 點 FFT,正如 MATLAB 所說,N 之后的樣本被忽略。 令人驚訝的是,第二種方法給出了很好的結果。 我不明白為什么。 對於基本事實,我使用高斯形頻譜模擬時域信號。

我的 MATLAB 程序如下所示。 您可以更改 N 的值並查看結果。 您還可以更改重采樣信號情況的插值方法。 我做了所有類型的檢查,我認為 N 點 FFT 表現更好。 但是,有人會認為應用 FFT 時重采樣信號的性能應該更好。

clear;
close all;
% Simulation of ground truth
n = 512;

[sig_a, sig_f] = DS_simulator(10^(Inf/20), 1, 5, 0.2, n, 7.5); % sig_a is the time domain signal with 512 points and sig_f is the Gaussian spectrum from which sig is derived



figure; plot((abs(sig_f).^2)); % Original spectrum 



%% Analysis


N = 256; %Number of fft points

idx = 1:n;
idxq = linspace(min(idx), max(idx), N);
sig_resampled = interp1(idx, sig_a, idxq, 'cubic'); % resampling the signal

figure; plot(1:1:n, abs(sig_a)); hold on; plot(1:n/N:n, abs(sig_resampled), '*'); % signal and resampled signal


sig_resamp_doppler = 1/N .* abs(fftshift(fft(sig_resampled, N))).^2; % FFT of resampled signal
sig_doppler = 1/N .* abs(fftshift(fft(sig_a, N))).^2; % FFT of original signal



figure; plot(abs(sig_doppler)); hold on;  plot(abs(sig_resamp_doppler)); % Reconstructed spectrum 

地面實況信號生成代碼,其頻譜為高斯形狀,均值為 mu,標准差為 sigma

function [data, data_f] = DS_simulator(SNR, m0, mu, sigma, n, v_amb)


vel_axis = linspace(-v_amb, v_amb, n);

X = rand(1, n);
Theta = 2 .* pi * rand(1, n);

if sigma < 0.02
    [~, idx1] = min(abs(vel_axis - mu));
    S = dirac(vel_axis - vel_axis(idx1)); 
    idx = S == Inf;
    S(idx) = 1;
else
    S = m0/sqrt(2*pi*sigma^2) * exp(-(vel_axis - mu).^2/(2*sigma^2));
end


N = sum(S) ./ (n .* SNR); % Noise Power

P = -(S + N) .* log(X); % Power spectrum 
data_f = sqrt(P);



data = ifft(fftshift(sqrt(n) .* sqrt(P) .* exp(1j .* Theta)));% complex time domain signal 


end

您的數據具有非常高的頻率。 這里我把 plot 的實部和虛部作為兩個獨立的信號: OP的數據圖

以較低的采樣頻率重新采樣此信號會引入混疊,您將獲得一個非常不同的信號,看起來不再像原始信號。

如果你 plot 的幅度,你看到的只是包絡。 混疊不會對信封產生太大影響,因此您的繪圖不會顯示問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM