用MATLAB进行图像处理

图像处理概念,算法和MATLAB

DFT和DTFT

现在是时候开始研究离散傅里叶变换(DFT)和离散时间傅里叶变换(DTFT)之间的关系了。我们来看一个简单的矩形脉冲,.的DTFT是:

让我们的阴谋在几个时期:

M = 8;W = linspace(-2*pi, 2*pi, 800);X_dtft = (sin (w * M / 2)。/罪(w / 2)。* exp (1 j * w * (M - 1) / 2);plot(w, abs(X_dtft))“X(\ω)| |”

结果证明,在一定条件下,DFT就是DTFT的等间距样本。假设的p点DFT是多少.如果非零是否只在有限域中,然后=以相等的间隔

MATLAB函数fft计算DFT。这是8点矩形脉冲的8点DFT:

x = ones(1, M);X = fft(X)
X = 8 0 0 0 0 0 0 0

一个8和一堆0 ??这与上面的DTFT图完全不同。但是当你把输出叠加fft在DTFT图的正确位置,一切都变得清晰起来。

P = 8;w_k = (0:P-1) * (2*pi/P);X = fft(X);plot(w, abs(X_dtft)情节(w_k、abs (X),“o”)举行

现在你可以看到输出中的7个0fft对应于每个周期中DTFT为零的7个位置。

你可以通过增加p得到更多的DTFT样本,方法之一是

X16 = [x, 0 (1,8)]
x16 = 1 ~ 15列1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 16列0
P = 16;X16 = fft(X16);w_k = (0:P-1) * (2*pi/P);X = fft(X);plot(w, abs(X_dtft)情节(w_k、abs (),“o”)举行

另一种增加P的方法是使用fft (x, P)语法fft函数。这个语法计算的p点DFTx通过使用零填充。让我们试试50点DFT。

P = 50;Xp = fft(x, P);w_k = (0:P-1) * (2*pi/P);X = fft(X);plot(w, abs(X_dtft)情节(w_k abs (Xp)、“o”)举行

如果你曾经想过傅里叶变换的零填充是怎么回事,现在你知道了。当你给一个序列加上一堆0然后计算DFT时,你会得到越来越多的原始序列的DTFT样本。

我认为在傅里叶的探索中,下一个合乎逻辑的地方是开始考虑为什么很多人发现的输出fft如此令人惊讶或困惑。下面是一个例子:

  • 为什么零频率(或“DC”频率)不在输出的中心fft?
  • 为什么不是的输出fft当输入是对称的时候是实数?

你是否需要添加谜题?让我知道你的评论。




使用MATLAB®7.9发布

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。