我的变换是 DFT 的本质吗?

信息处理 离散信号 傅里叶变换
2021-12-24 07:40:20

我是一个刚刚学习DSP的人,想了解它的本质。我的变换是最简单的。输入信号只是一个频率:$256\textrm{ Hz}$。采样频率为$2560\textrm{samples/sec}$,所以$10\textrm{samples}$对应一个周期(周期)。我将它与两个测试频率相关联:一个等于输入,另一个是它的两倍:$2\cdot 256\textrm{ Hz} = 512\textrm{ Hz}$。我只关联了 $10\textrm{ samples}$,所以相关性没有移动。256 Hz. Sampling frequency is 2560 samples/sec, so 10 samples correspond to one cycle (period). I correlate it with two testing frequencies: one equal to input and other double of it: 2256 Hz=512 Hz. I correlate only 10 samples so correlation is not moving.

  • 第一个相关性:输入样本在第一列,测试频率(相等)在第二列:

    0 x 0 = 0
     0.587785252292 x 0.587785252292 = 0.345491502812
     0.951056516295 x 0.951056516295 = 0.904508497187
     0.951056516295 x 0.951056516295 = 0.904508497187
     0.587785252292 x 0.587785252292 = 0.345491502812
     0 x 0 = 0
    -0.587785252292 x -0.587785252292 = 0.345491502812
    -0.951056516295 x -0.951056516295 = 0.904508497187
    -0.951056516295 x -0.951056516295 = 0.904508497187
    -0.587785252292 x -0.587785252292 = 0.345491502812
            产品总和(平方)= 5
    
    因为每个实数的平方都是正数,所以总和是大数。除以 10 美元得到 0.5 美元。鉴于它是正弦乘积的平均值是显着数字,所以我得出结论频率 $256\textrm{ Hz}$ 确实存在于信号中。10 yields 0.5. Given that it is mean of products of sines is significant number, so I conclude frequency 256 Hz does exist in the signal.

  • 2 相关性。输入样本在第一列,测试频率在第二列:

    0 x 0 = 0
     0.587785252292 x 0.951056516295 = 0.559016994374
     0.951056516295 x 0.587785252292 = 0.559016994374
     0.951056516295 x -0.587785252292 = -0.559016994374
     0.587785252292 x -0.951056516295 = -0.559016994374
     0 x 0 = 0
    -0.587785252292 x 0.951056516295 = -0.559016994374
    -0.951056516295 x 0.587785252292 = -0.559016994374
    -0.951056516295 x -0.587785252292 = 0.559016994374
    -0.587785252292 x -0.951056516295 = 0.559016994374
                      产品总和 = 0
    
    因为一半产品与另一半相对,所以总和为 0 美元。这意味着信号中不存在频率 $512\textrm{ Hz}$。0. It means frequency 512 Hz does not exist in the signal.

我的问题:这就是 DFT 的本质吗?

2个回答

我想你可以简单地说这就是 DFT 的本质。请注意,DFT 与复指数相关:

(1)X[k]=n=0N1x[n]ej2πnk/N

您刚刚计算了 $(1)$ 的(负)虚部(对于 $k=2$):(1) (for k=2):

(2)XI[k]=n=0N1x[n]sin(2πnk/N)

对于您的示例,这也足够了,因为实部为零,因为您的信号 $x[n]$ 是正弦波的一个完整周期。但是,假设您为信号添加了一个相位,那么您还需要 $(1)$ 的实部。在最坏的情况下,您可以为 $x[n]$ 选择一个余弦值,如果您只是与 $(2)$ 中的正弦函数相关,那么即使在相同频率下,相关性也会为零。x[n] is one full period of a sine wave. However, imagine you added a phase to your signal, then you would also need the real part of (1). In the worst case you could choose a cosine for x[n], which would give you a correlation of zero, even for the same frequency, if you just correlated with sine functions as in (2).

即使您将 DFT的本质理解为: ...计算给定采样信号和一组(谐波)测试信号之间的相关性 ... "是真的,您对其结果的解释可能有点不完整...x[n]ej2πNkn

也就是说:当频率为的 DFT 计算不为零时,这并不意味着在被分析的信号内部存在该频率的纯正弦波。256 Hz

为了澄清这一点,请考虑以下问题:采样信号(我们称之为 DTFT - 离散时间傅里叶变换) 的真实x[n]

X(ejω)=n=x[n]ejωn

并且有相同(但作为的有限长度)信号的计算频谱(我们称之为 DFT - 离散傅里叶变换)。 N

X[k]=n=0N1x[n]ej2πNkn

很明显:这个计算的频谱 DFT真实频谱 DTFT的样本,它本身是频域中的连续函数(和因此原则上不能在任何计算机系统内表示)X[k]X(ejω)

因此,由于对真实光谱的采样和从无限长度到有限长度的窗口化,一些误解是可能的。

作为示例,请查看以下 Matlab 代码:

Fs = 8000;              % sampling frequency, in Hz.
Ts = 1/Fs;              % sampling period Ts = 1/Fs.
M  = 128;               % number of signal samples to be obtained
N  = 1024;              % DFT analysis length (i.e. N-Point DFT applied)
n  = [0:M-1];           % sequence indice for x[n]
tn  = n*Ts;             % analog sampling times for xc(t)
fx  = 30*(Fs/N);        % analog signal frequency
x  = cos(2*pi*fx*tn);   % discrete time sampled signal x[n]

现在有了的第一个值,可以得到以下两个采样信号及其 DFT幅度的图: 模拟信号的 128 个样本绘制。 M=128N=1024x[n]X[k]在此处输入图像描述

和相应的 DFT 幅度:: 在此处输入图像描述

对于(与相同)显示较长信号的前 128 个样本: M=1024N在此处输入图像描述

现在的新频谱是: 在此处输入图像描述

查看以相同速率采样但持续时间不同的相同信号的这些图,我们清楚地看到了窗口效应和假设的 DFT 周期性。为简单起见,正如您在第一个频谱中看到的那样 DFT 的非零样本与所分析的信号不对应。事实上,在第二DFT曲线图中,这些非零谱样本被迫在第二DFT曲线中被强制选择信号持续时间和分析窗口长度。事实上,在第二个 DFT 图中,只有一个非零样本正好处于信号频率。