Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

nufft

非均匀快速傅里叶变换

说明

示例

Y = nufft(X,t) 使用采样点 t 返回 X非均匀离散傅里叶变换 (NUDFT)

  • 如果 X 是向量,则 nufft 返回该向量的变换。

  • 如果 X 是矩阵,则 nufftX 的各列视为向量,并返回每列的变换。

  • 如果 X 是一个多维数组,则 nufft 将沿大小不等于 1 的第一个数组维度的值视为向量,并返回每个向量的变换。

示例

Y = nufft(X,t,f) 使用采样点 t 计算查询点 f 的 NUDFT。要指定 f 而不指定采样点,请使用 nufft(X,[],f)

Y = nufft(X,t,f,dim) 返回沿维度 dim 的 NUDFT。例如,nufft(X,t,f,2) 计算矩阵 X 的每行的变换。

Y = nufft(X) 返回 X 的离散傅里叶变换,等效于 fft(X)

示例

全部折叠

创建在非均匀分布的点 t 上采样的信号 X。计算非均匀快速傅里叶变换 Y

t = [0:300 500.5:700.5];
S = 2*sin(0.1*pi*t) + sin(0.02*pi*t);
X = S + rand(size(t));
Y = nufft(X,t);

将变换的绝对值绘制为默认频率的函数。

n = length(t);
f = (0:n-1)/n;
plot(f,abs(Y))

Figure contains an axes. The axes contains an object of type line.

定义和标注一系列音乐音调的频率。

C3 = 440 / (2^(21/12));
nOctaves = 3;
musicalTones = C3 * 2.^((0:(12*nOctaves-1))/12);
toneNames = ["C";"C#";"D";"D#";"E";"F";"F#";"G";"G#";"A";"A#";"B"] + string(3:(3+nOctaves-1));
toneNames = categorical(toneNames, toneNames);

定义以 Hz 为单位的音频信号采样频率,采样点为 n 个,以及包含主和弦 X 的信号。

fs = 16e3;
n = 1:16000;
X = 4*cos(2*pi*(440/fs)*n) + 2*cos(2*pi*(554.37/fs)*n) + 3*cos(2*pi*(659.2/fs)*n);

计算并绘制主和弦的频率分量。

Y = nufft(X,[],musicalTones/fs);
bar(toneNames(:),abs(Y))

Figure contains an axes. The axes contains an object of type bar.

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。

数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
复数支持:

采样点,指定为长度为 n 的向量,其中 n 是输入数组 X 的运算维度的长度。默认情况下,样本点向量是 0:(n-1)

数据类型: double | single

查询点,指定为一个向量。默认情况下,查询点向量为 (0:(n-1))/n,其中 n 是输入数组 X 的运算维度的长度。要指定 f 而不指定采样点,请使用 nufft(X,[],f)

数据类型: double | single

沿其运算的维度,指定为正整数标量。默认值是其大小不等于 1 的第一个数组维度。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

详细信息

全部折叠

向量的非均匀离散傅里叶变换

对于长度为 n 的向量 X、采样点 t 和频率 f,X 的非均匀离散傅里叶变换定义为

Y(k)=j=1nX(j)e2πit(j)f(k)

其中 k = 1、2、…、m。当 t = 0、1、…、n - 1 且 f =(0、1、…、n - 1)/n(nufft 的默认值)时,该公式等效于 fft 函数使用的均匀离散傅里叶变换。

参考

[1] Potter, Samuel F., Nail A. Gumerov, and Ramani Duraiswami. “Fast Interpolation of Bandlimited Functions.” In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 4516–20. New Orleans, LA: IEEE, 2017. https://doi.org/10.1109/ICASSP.2017.7953011.

[2] Dutt, A., and V. Rokhlin. “Fast Fourier Transforms for Nonequispaced Data.” SIAM Journal on Scientific Computing 14, no. 6 (November 1993): 1368–93. https://doi.org/10.1137/0914081.

另请参阅

|

在 R2020a 中推出