主页 > 软件开发  > 

MATLAB中ifft函数用法

MATLAB中ifft函数用法

目录

语法

说明

示例

向量的逆变换

填充的矩阵逆变换

​共轭对称向量

算法


        ifft函数的功能是进行快速傅里叶逆变换。

语法 X = ifft(Y) X = ifft(Y,n) X = ifft(Y,n,dim) X = ifft(___,symflag) 说明

​X = ifft(Y) 使用快速傅里叶变换算法计算 Y 的逆离散傅里叶变换。X 与 Y 的大小相同。​

如果 Y 是向量,则 ifft(Y) 返回该向量的逆变换。

如果 Y 是矩阵,则 ifft(Y) 返回该矩阵每一列的逆变换。

如果 Y 是多维数组,则 ifft(Y) 将大小不等于 1 的第一个维度上的值视为向量,并返回每个向量的逆变换。

X = ifft(Y,n) 通过用尾随零填充 Y 以达到长度 n,返回 Y 的 n 点傅里叶逆变换。

X = ifft(Y,n,dim) 返回沿维度 dim 的傅里叶逆变换。例如,如果 Y 是矩阵,则 ifft(Y,n,2) 返回每一行的 n 点逆变换。

X = ifft(___,symflag) 支持上述语法中的任何输入参数组合,且可指定 Y 的对称性。例如,ifft(Y,'symmetric') 将 Y 视为共轭对称。

示例 向量的逆变换

        时空采样数据与频率采样数据间的傅里叶变换及其逆变换。

        创建一个向量并计算其傅里叶变换。

X = [1 2 3 4 5]; Y = fft(X) Y = 1×5 complex 15.0000 + 0.0000i -2.5000 + 3.4410i -2.5000 + 0.8123i -2.5000 - 0.8123i -2.5000 - 3.4410i

        ​计算 Y 的逆变换,结果与原始向量 X 相同。

ifft(Y) ans = 1×5 1 2 3 4 5 填充的矩阵逆变换

        ifft 函数允许控制变换的大小。

        创建一个随机的 3×5 矩阵,并计算每一行的 8 点傅里叶逆变换。每一行结果的长度均为 8。

Y = rand(3,5); n = 8; X = ifft(Y,n,2); size(X) ans = 1×2 3 8 ​共轭对称向量

        对于接近共轭对称的向量,通过指定 'symmetric' 选项,可以更快地计算傅里叶逆变换,还可以确保输出为实数。当计算引入舍入误差时,可能会出现接近共轭对称数据。

        创建一个接近共轭对称的向量 Y,并计算其傅里叶逆变换。然后计算逆变换并指定 'symmetric' 选项,这样可以消除接近 0 的虚部。

Y = [1 2:4+eps(4) 4:-1:2] Y = 1×7 1.0000 2.0000 3.0000 4.0000 4.0000 3.0000 2.0000 X = ifft(Y) X = 1×7 complex 2.7143 + 0.0000i -0.7213 + 0.0000i -0.0440 - 0.0000i -0.0919 + 0.0000i -0.0919 - 0.0000i -0.0440 + 0.0000i -0.7213 - 0.0000i Xsym = ifft(Y,'symmetric') Xsym = 1×7 2.7143 -0.7213 -0.0440 -0.0919 -0.0919 -0.0440 -0.7213

参数说明

Y — 输入数组

        输入数组,指定为向量、矩阵或多维数组。如果 Y 的类型为 single,则 ifft 本身以单精度进行计算,X 的类型也是 single。否则,X 以 double 类型返回。

n — 逆变换长度

        逆变换长度,指定为 [] 或非负整数标量。通过指定比 Y 的长度更大的变换长度来用零填充 Y,可以提高 ifft 的性能。长度通常指定为 2 的幂或小质数的乘积。如果 n 小于信号的长度,则 ifft 忽略第 n 个条目之后的其余信号值,并返回截断后的结果。如果 n 为 0,则 ifft 返回空矩阵。

dim — 沿其运算的维度

        沿其运算的维度,指定为正整数标量。默认情况下,dim 是大小不等于 1 的第一个数组维度。例如,假设有一个矩阵 Y。

ifft(Y,[],1) 返回每一列的傅里叶逆变换。

ifft(Y,[],2) 返回每一行的傅里叶逆变换。

symflag — 对称类型

        对称类型,指定为 'nonsymmetric' 或 'symmetric'。当 Y 由于舍入误差而导致不完全共轭对称时,ifft(Y,'symmetric') 会通过忽略 Y 的后一半元素(在负频谱中)将它视为共轭对称。

向量的离散傅里叶变换

        Y = fft(X) 和 X = ifft(Y) 分别实现傅里叶变换和傅里叶逆变换。对于长度为 n 的 X 和 Y,这些变换定义如下:

其中

为 n 次单位根之一。

算法

ifft 函数测试 Y 中的向量是否共轭对称。如果 Y 中的向量共轭对称,则逆变换的计算速度更快,并且输出为实数。

如果 g(a)=g∗(−a),则函数 g(a) 为共轭对称函数。然而,时域信号的快速傅里叶变换有一半频谱处于正频率,另一半处于负频率,第一个元素保留用于零频率。因此,当 v(2:end) 等于 conj(v(end:-1:2)) 时,向量 v 为共轭对称向量。

标签:

MATLAB中ifft函数用法由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“MATLAB中ifft函数用法