Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助我理解FFT函数(Matlab)_Matlab_Fft - Fatal编程技术网

帮助我理解FFT函数(Matlab)

帮助我理解FFT函数(Matlab),matlab,fft,Matlab,Fft,1) 除了负频率外,FFT函数提供的最小频率是什么?是零吗? 2) 如果是零,我们如何在对数标度上绘制零? 3) 结果总是对称的?或者它只是看起来是对称的? 4) 如果我使用abs(fft(y))来比较两个信号,我可能会失去一些准确性吗?好吧,如果你想了解快速傅里叶变换,你需要回到基础,了解DFT本身。但是,这不是你所要求的,所以我建议你在自己的时间内这样做:) 但是,在回答你的问题时: 是的,(如你所说,除了负片)它是零。对于N点输入,范围为0到(N-1) 在MATLAB中?我不确定我是否理解

1) 除了负频率外,FFT函数提供的最小频率是什么?是零吗?
2) 如果是零,我们如何在对数标度上绘制零?
3) 结果总是对称的?或者它只是看起来是对称的?

4) 如果我使用abs(fft(y))来比较两个信号,我可能会失去一些准确性吗?

好吧,如果你想了解快速傅里叶变换,你需要回到基础,了解DFT本身。但是,这不是你所要求的,所以我建议你在自己的时间内这样做:)

但是,在回答你的问题时:

  • 是的,(如你所说,除了负片)它是零。对于N点输入,范围为0到(N-1)
  • 在MATLAB中?我不确定我是否理解你的问题-像绘制任何其他值一样绘制零值。。。尽管如此,正如达菲莫正确指出的那样,没有零的自然对数
  • 它本质上类似于sinc(正弦基数)函数。不过,它不一定是对称的
  • 你不会失去任何准确性,你只会得到震级响应(但我想你已经知道了)
  • 参考“C中的数字配方”,第12章“快速傅立叶变换”中说:

  • 频率范围从负fc到正fc,其中fc是奈奎斯特临界频率,等于1/(2*δ),其中δ是采样间隔。所以频率肯定是负的

  • 你不能设计一些不存在的东西。没有零的自然对数。您可以将频率绘制为x轴,也可以为半对数轴选择不包含零的范围

  • 频率范围内对称性的存在与否取决于时域函数的性质。可以在频域中绘制关于y轴不对称的图

  • 我不认为这样取绝对值是个好主意。您将需要阅读更多关于卷积、校正和信号处理的内容,以比较两个信号

  • 你一半的问题是:

    3) FFT运算的结果取决于信号的性质;因此,没有什么要求它是对称的,尽管如果它是对称的,你可能会得到更多关于信号特性的信息

    4) 这将比较一对信号的大小,但是那些相等的并不保证FFT是相同的(不要忘记相位)。然而,对于你的目的来说,这可能已经足够了,但是你应该确信这一点

    1) 除了负频率外,FFT函数提供的最小频率是什么?是零吗

    fft(y)
    返回一个向量,其中DFT的第0到(N-1)个样本为
    y
    ,其中y(t)应被认为是在0上定义的。。。N-1(因此,y(t)的“周期性重复”可以被认为是在Z上定义的周期信号)

    fft(y)
    的第一个样本对应于频率0。 真实、离散时间、周期信号的傅里叶变换也具有离散域,并且是周期性的厄米变换(见下文)。因此,负频率的变换是正频率对应样本的共轭

    例如,如果将(
    y
    的周期重复)解释为在Z上定义的周期实信号(采样周期==1),则
    fft(y)
    的域应解释为N个等距点0,2π/N。。。2π(N-1)/N。负频率下的变换样本-π-π/N是频率为π的样品的共轭物。。。π/N,与频率下的样本相等 π ... 2π(N-1)/N

    2) 如果它是零,我们如何在对数标度上绘制零

    如果要绘制某种类型的变换,可以仅绘制正频率的变换,忽略对应于最低频率(特别是0)的采样

    3) 结果总是对称的?或者它只是看起来是对称的

    它有if
    y
    是实的:它的实部是对称的,虚部是反对称的。换句话说,它的振幅是对称的,相位是反对称的

    4) 如果我使用abs(fft(y))来比较两个信号,我会失去一些准确性吗

    如果您的意思是
    abs(fft(x-y))
    ,这是可以的,您可以使用它来了解差值的频率分布(或误差,如果x是y的估计值)。如果你的意思是abs(fft(x))-abs(fft(y))(?),你至少会丢失相位信息

  • fft的结果可以是0。已经有人回答了
  • 要绘制0频率,诀窍是将其设置为非常小的正数(为此,我使用exp(-15))
  • 已经有人回答了
  • 如果你只对数量感兴趣,是的,你可以这样做。例如,这适用于许多图像处理问题

  • 关于#1,最初的问题是“除否定外”。。。因此,我的答案是,如果不知道正在转换的函数,就很难做出关于频率范围的陈述。实偶数函数的傅里叶变换是实偶数的,但最初的问题并没有说明这一点,这是真的。正如你所说,在没有适当的假设的情况下回答问题会产生问题。啊,sinc是关于y轴对称的,但sine不是。感谢您的澄清。在matlab中,调用函数但告诉它忽略输入中的某些值有点棘手。因此,我建议将0替换为一个可以绘制的小值。请注意,matlab中fft的前半部分结果是正频率(1+1),用于显示厄米对称性,这为我节省了大量时间。