这个问题是DFT 向量上的线性算子如何仅使用一半 DFT 向量产生相同向量的讨论的延续?,如果有兴趣,可以更好地解释更高层次的动机。
问题:
如何从 Hermitian 对称 DFT 向量中取正频率,取其 IDFT(这是复数),乘以载波以移动频谱,重新采样,取其实部,并获得与原始厄米对称符号的 IDFT 会得到什么结果?
细节:
我真的很感激能检查我的理解和我提到的概念。
考虑某个信号 Hz 的带宽。如果我考虑由正频率(从直流到奈奎斯特)表示的信号,它与移动频谱的正侧并将其集中在频率 0 相同。现在,新频谱不再是厄米对称的,产生复杂的 IDFT 并表示的带宽。
使用一个数值示例,对于,考虑从 DC 到 Nyquist,这将给出 5 个正频率和 3 个负频率。然后,我会将 5 个 DFT 样本(对应于正频率)移动到频谱的中心。在这种情况下,新的 DFT 大小将是奇数,奈奎斯特频率(在 k= 5/2 = 2.5 处)不会落在 DFT 样本上
此时,我的信号带宽限制为。然后,如果我将此信号与频率为的载波相乘,我会将频谱再次移动到正负侧,从而重建原始频谱。但是,由于此操作会将带宽增加到 Hz,因此乘积需要将其采样频率增加 2 倍,以便频谱实际上可以表示没有混叠的信号。
载体应该是指数的:
其中是要移位的 DFT 样本数。在这种情况下,,这样:
最后,在重新采样之后,我应该取信号的实部,这应该等于原始的 IDFT(通过对原始厄米对称符号的 IDFT 进行简化获得的部分)。
但是,我主要对以下问题感到困惑:
- 从 DC 到 Nyquist 有 5 个 DFT 样本。这将产生一个大小为 5 的复杂 IFFT,然后,我将逐点乘以 5 个载波样本并上采样 2,得到 10 个样本。另一方面,原始 IDFT 的长度为 8。
- 我不确定参与真实部分的理由。
- 我不确定指数是否是正确的载体。
MATLAB实现:
这是我试图使工作的代码。
N=4;
A=rand(N-1,1) + j*rand(N-1,1); % Random positive carrier
X=[0; A; 0; flipud(conj(A))]; % Hermitian symmetric DFT vector
x = ifft(X)
% Positive side of the spectrum shifted to the center
Xp = [X((N/2 + 1):N+1); X(1:N/2);];
% Complex IFFT:
xp = ifft(Xp);
% Carrier
n=(0:N);
k0 = (N+1)/2;
carrier = exp(j*2*pi*k0*n/(N+1)).';
% Modulation
x_up = xp.*carrier;
% Increase the sampling rate by a factor of two
x_re = resample(x_up,2,1);
real(x_re)
我基本上希望打印到工作区的两个向量相等:x and real(x_re)