我从 HW 做以下问题时遇到了困难。给定一个你选择的序列,如果我们在每个样本之间添加一个 0,DFT 会发生什么?即如果我们有 x[n] = [A,B,C],我们把它变成 x[n] = [A,0,B,0,C,0]。
我最初的想法是采样频率会加倍,类似于我们在信号末尾进行零填充时。为了进行一些分析,我使用了以下 MATLAB 代码。
Fs = 300; % Sampling frequency
T = 1/Fs; % Sampling period
L = 1500; % Length of signal
t = (0:L-1)*T; % Time vector
S = 0.7*sin(2*pi*50*t); %Signal - sine 50 Hz
z = zeros(1,3000);
z(1:2:end) = S; %Zero interp
z_fft = fft(z);
z_abs = abs(z_fft/(L*2));
P = z_abs(1:L*2/2+1);
P(2:end-1) = 2*P(2:end-1);
f = Fs*(0:(L*2/2))/(L*2);
plot(f,P);
所以我很困惑,在每个样本之间添加 0 的结果是什么?这会使我的信号频率加倍吗?f = 125Hz 上的那个峰值呢?还是我在模拟中做错了什么?
谢谢你的时间!

