DFT的定义:离散时间序列的傅里叶变化
%首先这里需要明确一下n,k之间的区别
%n代表了信号序列的取值区间
%k代表了信号的在0-2*pi之间平均等分的份数
%这里以xn = 2*n + 5 ( -3<=n<=14 ) 为例
%明确序列的下标范围
n = -3:14 ;
k = 0:length(n)-1;
%序列信号
xn = 2*n + 5 ;
N = length(n) ;
%然后计算WNnk
wn = exp(-2*pi*j/N) ;
%然后利用矩阵完成nk的计算
%由于对于每一个确定的k值,都是进行n的相关求和
nk = n'*k ;
%这里进行矩阵相乘之后的结果,就是每一列都是一个特定的
%k值和n序列的所有值进行相乘的情况
WNnk = wn.^nk ;
%这里的WNnk就是一个(N-1)*(N-1)阶矩阵
%每一列代表一个特定k值的所有的n的可能取值的相乘
%然后再进行矩阵的相乘
Xk = xn*WNnk ;
%这里得到一个1*(N-1)的矩阵
%其中每一列代表一个特定的k值
stem(n, abs(Xk))
xlabel('n') ;
ylabel('幅值') ;
这里主要有几点是需要注意的:
- 明确n, k之间的差别,n代表的DFT的点数,也就是在0—2pi区间上取点的数目,不可能为负值
- n代表的是信号序列的取值范围,可能是负的。
- 还有n,k可以是相同的也可以是不相同的。
- 还有就是矩阵相乘的运算,可以有效地解决求和问题