在Matlab中实现NDFT算法的Z变换定义

时间:2015-06-17 16:22:51

标签: matlab frequency-analysis

我想在MatLab中实现以下z变换方程来计算1-D非均匀离散傅立叶变换(NDFT):

enter image description here

来源: https://books.google.com.au/books?id=givsYJZyf0gC&pg=PA326&lpg=PA326&dq=the+nonuniform+discrete+fourier+transform+and+its+applications+in+signal+processing&source=bl&ots=AJcDJ0xP0v&sig=fP15yTf-yzWSNlkC20F7K4GuCmY&hl=en&sa=X&ved=0CE8Q6AEwCWoVChMI1IyO4eWVxgIVz3m8Ch2vvgBl#v=onepage&q=the%20nonuniform%20discrete%20fourier%20transform%20and%20its%20applications%20in%20signal%20processing&f=false

X(z)是x [n]的z变换,其中x [n]是包含不均匀间隔样本的水平1-D向量。

z变换定义为从n = 0到n =无穷大的总和。

该定义是从n = 0到n = N-1。

我试图实现ztrans,但是这个定义是不是n = 0到n =无穷大?

有人能指出我正确的方向在Matlab中实现这个吗?

1 个答案:

答案 0 :(得分:0)

使用您提供的定义,这是确保正确执行矩阵代数的问题。

function X = NDFT(x, z)
    [n, Z] = meshgrid(0:length(x)-1, z);
    D = Z.^n;
    X = D*x;
end