【问题标题】:change in value of one frequency bin affect FFT and IFFT values of non changing bins一个频率区间值的变化会影响非变化区间的 FFT 和 IFFT 值
【发布时间】:2018-12-13 23:42:59
【问题描述】:

我有一个 3001x577 矩阵。我想对前 120 个样本应用一个操作。我已将前 120 个样本应用于频率为 20 Hz 的样本。采样率为 2 毫秒。所以我有 Fnyq =250hz。现在我已经取出了前 120 个样本。我注意到在应用过滤器并将其替换为较旧的 120 个样本后,大于 120 的 bin 值在我应用 IFFT 后发生了变化。这在我的最终结果中很明显。我得到了想要的过滤结果,但它最终改变了我想要保持不变的样本值。

有人可以解释为什么少数频率区间的值变化会影响非变化区间的 ifft 或 fft。我正在使用matlab。我该如何预防?

【问题讨论】:

  • 你能分享你的代码吗?这可以让我们更轻松地更好地了解您在做什么以及哪里可能出错。
  • `fall2_orig_matrix=cell2mat(fall2_orig);%orignal fft矩阵slope1=40;斜率=dt*1000;对于 kk=slope1:slopeincr:40 以毫秒为单位,对于 ii = 1:1:nh 对于 j=1:1:r 矩阵中的列数 % ffbin=(250/pad)*j;%250 是nyqsuit 频率 ff=-i*2*pi*(ffbin)*(kk/1000);%chaning 斜率选项 shift(j,ii)=ifftshift(exp(ff)); end end Modell{kk}=shifted.*(fall2_orig_matrix);结束模型=模型{kk}; `
  • fall2_orig_matrix=cell2mat(fall2_orig);%原始fft矩阵slope1=40;斜率=dt*1000;对于 kk=slope1:slopeincr:40 以毫秒为单位,对于 ii = 1:1:nh 对于 j=1:1:r 矩阵中的列数 % ffbin=(250/pad)*j;%250 是nyqsuit 频率 ff=-i*2*pi*(ffbin)*(kk/1000);%chaning 斜率选项 shift(j,ii)=ifftshift(exp(ff)); end end Modell{kk}=shifted.*(fall2_orig_matrix);结束模型= Modell{kk};

标签: signal-processing frequency


【解决方案1】:

您获取了频谱的一部分(前 120 个样本),以某种方式更改了这部分,并使用 IFFT 将结果转换回时域。由于您操纵了频率分量,这将改变时域中的所有样本,因此可以预期信号已超过 120 个样本。可以这样想:你改变了 120 个鼻窦的幅度(和相位),然后期望结果被限制在一定的时间范围内。也许您可以发布一个新问题,在其中描述您实际想要实现的目标,而不是为完成工作而进行的实验。

【讨论】:

  • 谢谢迈克尔。这就是正在发生的事情。我需要对前 120 个样本(频率箱)应用过滤器。然后将其附加到剩余的样本。我该如何实现。我正在运行的操作是 1 到 120 赫兹的自适应最小二乘减法,占 120 个箱我的情况。谢谢
  • 我不确定您要问的是什么,但如果您只想更改前 120 个 bin 的频率分量,请记住您需要在FFT 向量的末尾,即您将最后 119 个 bin 更改为 2 到 120 bin 的共轭复杂副本。时域中的任何实信号都会产生共轭复频谱。
  • 谢谢迈克尔。已经照顾好了。
猜你喜欢
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2011-04-29
相关资源
最近更新 更多