文档

dsp.IFFTSystem object

逆离散傅里叶变换(IDFFT)

描述

传输线对象计算离散傅里叶逆变换(IDFFT)的输入。对象使用一个或多个以下的快速傅里叶变换(FFT)算法的复杂性取决于输入和输出是否在线性bit-reversed顺序:

  • 着算法

  • 半身的算法

  • Radix-2 decimation-in-time (DIT)算法

  • Radix-2 decimation-in-frequency (DIF)算法

  • FFTW选择的一种算法[1],[2]

计算传输线的输入:

  1. 定义和设置您的传输线对象。看到建设

  2. 调用一步要计算传输线的输入的属性dsp.IFFT。的行为一步是特定于每个对象在工具箱。

请注意

从R2016b开始,而不是使用一步定义的方法来执行操作系统对象™,您可以调用对象的参数,就好像它是一个函数。例如,y =步骤(obj, x)y = obj (x)执行相同操作。

建设

界面张力= dsp.IFFT返回一个传输线对象,界面张力,计算一个列向量的IDFT或N- d数组。列向量或一天数组传输线对象计算IDFT数组的第一个维度。如果输入是一个行向量,传输线对象计算一排single-sample IDFTs和问题一个警告。

界面张力= dsp.IFFT ('PropertyName”,PropertyValue,……)返回一个传输线对象,界面张力,每个属性设置为指定的值。

属性

FFTImplementation

FFT实现

指定用于FFT的实现汽车|Radix-2|FFTW。当你设定这个属性Radix-2、FFT长度必须是2的幂。

BitReversedInput

使bit-reversed订单输入元素的解释

将此属性设置为真正的如果傅里叶转换输入元素的顺序传输线对象在bit-reversed秩序。这个属性只适用于当FFTLengthSource属性是汽车。默认值是,这表示线性排序。

ConjugateSymmetricInput

使共轭对称的解释输入

将此属性设置为真正的如果输入是共轭对称的屈服实值输出。一个实值序列离散傅里叶变换的共轭对称的,和设置这个属性真正的优化IDFT的计算方法。将这个属性设置为对共轭对称输入可能导致复杂的输出值非零的虚部。这发生由于舍入误差。将这个属性设置为真正的对于nonconjugate对称输入输出结果是无效的。这个属性只适用于当FFTLengthSource属性是汽车。默认值是

正常化

使产出除以FFT长度

指定是否将传输线的输出通过FFT长度。默认值是真正的和输出的每个元素是除以FFT长度。

FFTLengthSource

源的FFT长度

如何确定FFT长度指定为汽车财产。当你设定这个属性汽车、FFT长度等于输入信号的行数。这个属性只适用于当BitReversedInputConjugateSymmetricInput属性是。默认值是汽车

FFTLength

FFT长度

FFT长度指定为一个数字标量。这个属性设置时适用BitReversedInputConjugateSymmetricInput属性,FFTLengthSource财产财产。默认值是64年

这个属性必须是2的幂定点数据类型的输入时,或当你设置FFTImplementation财产Radix-2

当你设置FFT实现财产Radix-2,或者当你设置BitReversedOutput财产真正的这个值必须是2的幂。

WrapInput

布尔值的包装或删除输入

将输入数据时FFTLength小于输入长度。如果这个属性设置为true, modulo-length数据包装前进行FFT运算FFTLength小于输入长度。如果该属性被设为false,截断的输入数据FFTLength前进行FFT运算。默认值是真正的

定点属性

方法

一步 逆离散傅里叶变换的输入
常见的系统对象
释放

允许系统对象属性值的变化

例子

全部展开

计算FFT的嘈杂的正弦输入信号。信号的能量存储为FFT系数的大小广场。确定信号的FFT系数占据99.99%的能源和重构的时域信号通过这些系数的传输线。比较重构信号与原信号。

请注意:如果您使用的是R2016a或更早的版本中,用等效替换每个调用对象一步语法。例如,obj (x)就变成了步骤(obj (x)。

考虑一个时域信号,这是定义在有限的时间间隔。的能量信号是由以下方程:

FFT系数,是在频域信号值。的能量信号在频域因此的平方和的FFT系数的大小:

根据帕的定理,在时间和频率域信号的总能量是相同的。

初始化

初始化一个dsp.SineWave系统对象生成一个正弦波采样44.1 kHz, 1000赫兹的频率。构造一个dsp.FFTdsp.IFFT对象计算FFT和输入信号的传输线。

“FFTLengthSource”这些改变对象的属性被设置为“自动”。FFT长度因此被认为是作为输入帧大小。输入帧尺寸在这个例子中是1020,这不是2的幂。因此,选择“FFTImplementation”作为“FFTW”。

L = 1020;Sineobject = dsp.SineWave (“SamplesPerFrame”L,“PhaseOffset”10“SampleRate”,44100,“频率”,1000);英国《金融时报》= dsp.FFT (“FFTImplementation”,“FFTW”);界面张力= dsp.IFFT (“FFTImplementation”,“FFTW”,“ConjugateSymmetricInput”,真正的);rng (1);

流媒体

在嘈杂的输入信号流。计算每一帧的FFT和确定系数构成99.99%的能量信号。把这些系数重构的时域信号的传输线。

numIter = 1000;Iter = 1: numIter Sinewave1 = Sineobject ();输入= Sinewave1 + 0.01 * randn(大小(Sinewave1));FFTCoeff =英尺(输入);FFTCoeffMagSq = abs (FFTCoeff) ^ 2;EnergyFreqDomain = (1 / L) *总和(FFTCoeffMagSq);[FFTCoeffSorted,印第安纳州]= (((1 / L) * FFTCoeffMagSq), 1,“下”);CumFFTCoeffs = cumsum (FFTCoeffSorted);EnergyPercent = (CumFFTCoeffs / EnergyFreqDomain) * 100;Vec =找到(EnergyPercent > 99.99);FFTCoeffsModified = 0 (L, 1);FFTCoeffsModified(印第安纳州(1:Vec (1))) = FFTCoeff(印第安纳州(1:Vec (1)));ReconstrSignal = ift (FFTCoeffsModified);结束

99.99%的信号能量可以用FFT系数由的数量Vec (1):

Vec (1)
ans = 296

信号重建的有效使用这些系数。如果你把最后一帧的重建信号与原始时域信号,你可以看到不同的是非常小的,情节密切匹配。

马克斯(abs (Input-ReconstrSignal))
ans = 0.0431
情节(输入,‘*’);持有;情节(ReconstrSignal“o”);持有;


                   

算法

这个对象实现算法、输入和输出的描述传输线块引用页面。对象属性对应块的参数,除了:

输出采样模式参数是不支持的万博1manbetxdsp.IFFT

引用

[2]冻结器、m和s g·约翰逊,“FFTW: FFT的适应性软件体系结构,”国际会议声学学报》,演讲,和信号处理,3卷,1998年,页1381 - 1384。

扩展功能

另请参阅

系统对象

介绍了R2012a

这个主题有帮助吗?