Steve用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);情节(w、abs (X_dtft))标题(“X(\ω)| |”

结果是,在特定条件下,DFT就是DFT的等间距样本。假设的p点DFT是多少.如果非零只在有限域上吗,然后=的等距间隔

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

x = ones(1, M);X = fft (X)
X = 8 0 0 0 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);情节(w、abs (X_dtft))情节(w_k、abs (X),“o”)举行

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

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

X16 = [x, 0 (1,8)]
x16 =列1 ~ 15 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 16列0
P = 16;乘16 = fft ();w_k = (0:P-1) * (2*pi/P);X = fft (X);情节(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);情节(w、abs (X_dtft))情节(w_k abs (Xp)、“o”)举行

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

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

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

你有什么谜题要添加吗?请通过添加您的评论让我知道。




发布与MATLAB®7.9

|
  • 打印
  • 发送电子邮件

评论

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

Baidu
map