簡體   English   中英

頻域內插改變信號頻譜

[英]frequency domain interpolation changes the signal spectrum

我正在研究一些與正弦掃描激勵有關的實驗數據。

我首先使用從數據文件中獲得的幅度和頻率信息來重構信號:

% finz: frequency
% ginz: amplitude
R = 4; % sweep rate
tz = 60/R*log2(finz/finz(1)); % time
u_swt = sin(2*pi*((60*finz(1)/(R*log(2.))*(2.^(R/60*tz)-1))));
time_sign = ginz.*u_swt;
freq_sign = fft(time_sign);

這是我得到的: 在此處輸入圖片說明

然后,在計算時間信號以獲得“更細微”的信號之前,我嘗試對頻率數據進行插值(擁有更多樣本,應該更容易重建它):

ginz = interp(ginz,200);
finz = interp(finz,200);

但是現在頻譜發生了變化: 在此處輸入圖片說明

為什么頻譜如此不同? 我在插值中做錯了嗎? 我不應該插值數據嗎?

我不清楚您正在使用的信號的詳細信息。 例如,您能否提供finz和ginz的典型示例? 另外,不清楚您希望通過插值實現什么,因此很難建議使用它。

但是,如果您對時間序列進行插值,則應該期望其頻譜隨着采樣頻率的增加而發生變化。 內插信號的頻率將相對於新的采樣頻率變得更小。 因此,信號頻譜將(在這里不是很技術性)推向零。 我在下面提供了一個腳本,該腳本會產生高斯白噪聲,並繪制不同插值級別的頻譜。 在沒有內插的第一個子圖中,頻譜被均勻占用(根據設計-白噪聲)。 在隨后的子圖中,隨着插值的增加,占用的頻譜變得越來越小。 希望這可以幫助。

% white Gaussian noise (WGN)
WGN = randn(1,1000);
% DFT of WGN
DFT_WGN = abs(fft(WGN));
% one-sided spectrum
DFT_WGN = DFT_WGN(1:length(WGN)/2);

% interpolated WGN by factor of 2 (q = 2)
WGN_interp_2 = interp(WGN,2);
% DFT of interpolated WGN
DFT_WGN_interp_2 = abs(fft(WGN_interp_2));
% one-sided spectrum
DFT_WGN_interp_2 = DFT_WGN_interp_2(1:length(DFT_WGN_interp_2 )/2);

% interpolated WGN by factor of 10 (q = 10)
WGN_interp_10 = interp(WGN,10);
% DFT of interpolated WGN
DFT_WGN_interp_10 = abs(fft(WGN_interp_10));
% one-sided spectrum
DFT_WGN_interp_10 = DFT_WGN_interp_10(1:length(DFT_WGN_interp_10 )/2);

figure
subplot(3,1,1)
plot(DFT_WGN)
ylabel('DFT')
subplot(3,1,2)
plot(DFT_WGN_interp_2)
ylabel('DFT (q:2)')
subplot(3,1,3)
plot(DFT_WGN_interp_10)
ylabel('DFT (q:10)')

內插對WGN的影響

暫無
暫無

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

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