作者Satanicbless (MatrixTree)
看板MATLAB
标题[讨论] 学长写的fft转换 低通滤波的fft 但是不
时间Thu Oct 17 11:18:39 2013
由於讯号具有杂讯(高频项) 因此学长写了fft转换来滤掉高频
但是我查了书本以及网路上的一些解释 还是不太懂这一行code的意义
a=fftshift(fft(fftshift(x)));
所以请大大帮忙解答><
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.134.146.15
1F:推 profyang:因为fft是从频率0开始 但你x如果其实是附的频率开始就要 10/17 11:29
2F:→ profyang:像这样shift~这是用FFT近似CFT常遇到的 只是他shift的好 10/17 11:30
3F:→ profyang:像怪怪的 如果x是偶数个当然没差 但如果是奇数的话应该会 10/17 11:30
4F:→ profyang:差一点点 10/17 11:30
5F:→ profyang:好像应该是fftshift(fft(ifftshift(x)));才通用 10/17 11:31
6F:→ Satanicbless:这是为了让本来很rush的谱线能够更平滑 所以使用 10/17 11:44
7F:→ Satanicbless:所以学长才想这个方式 但他也不知道怎麽解释 10/17 11:47
8F:推 kurt28:记得是跟matlab的定义有关 你这样只有fft 跟滤波没有关系 10/17 12:49
9F:推 profyang:楼上说的没错这跟滤波没关 跟平滑也没有关系 10/17 13:12
10F:→ Satanicbless:那这条code的意义是什麽呢? 滤波的code我没放@@" 10/17 13:25
11F:推 kurt28:难怪 这code就只是fft而已 做完应该只要shift一次就好 @@ 10/17 13:41
12F:→ kurt28:两次我就不知道了 by自己的经验 10/17 13:41
13F:→ ericabab:做之前不用shift吧,我看只有他自己懂 10/17 19:15
14F:推 profyang:为何大家不看我推文QQ 如果x定义是从负的频率开始 就是 10/17 23:02
15F:→ profyang:x(1)对应到的频率其实应该是负的 那fft前就需要shift 10/17 23:02
16F:→ profyang:而且通常这种负的频率会跟正的频率一样多或差1个点 10/17 23:03
17F:→ profyang:把上面的频率代换成时间也对 10/17 23:03
18F:→ profyang:因为fft的话你里面x(1)对应到的频率或时间应该是0 10/17 23:04
19F:推 kurt28:理论上不是会对称吗? 不过我记得是做完再移就好 10/17 23:04
20F:推 kurt28:上面那句前半段忽略好了 讲得不够严谨..要不要shift看需求 10/17 23:13
21F:→ kurt28:刚刚去试原PO的方法 这样相位好像会改变... 10/17 23:24
22F:推 profyang:可是假设他考虑x的频率是-10:10好了 今天你不移直接下去 10/18 01:21
23F:→ profyang:就变成从0:20 会有问题 所以要利用他对称的原理先把负的 10/18 01:23
24F:→ profyang:频率的那些x移到最右边 利用周期性这样就跟从负的频率开 10/18 01:23
25F:→ profyang:始加一样了 10/18 01:23
26F:→ ericabab:你拿来做fft的东西不是time domain吗,shift是什麽意义? 10/18 02:58
27F:推 banco:请问x是不是某信号的magnitude spectrum,然後滤波是针对a 10/18 08:27
28F:→ banco:在滤完a後再ifft回频域得到x",此x"为平滑化的x 10/18 08:28
29F:→ banco:如果是这样的话,我大概知道在做什麽了~频谱x的平滑化 10/18 08:29
30F:推 kurt28:时间序列的起点通常是0不是吗? fft後就算要对频率:-10~10 10/18 09:25
31F:→ you2:prof是教授吗?你讲的很怪 10/18 09:29
32F:→ you2:你先想一下Causality 10/18 09:30
33F:推 kurt28:也是做完在shift一次 ..@@ 10/18 09:33
34F:推 profyang:我不是教授 我是假设他时间是从负的开始才要shift 当然如 10/18 11:00
35F:→ profyang:果是causal的信号t<0都没信号 x可以定义从t=0开始那就fft 10/18 11:01
36F:→ profyang:前不用shift 10/18 11:01
37F:→ profyang:因为我比较常用的是频域转时域 所以才会强调先shift 10/18 11:02
38F:→ profyang:的用意 10/18 11:02
39F:→ profyang:所以重点就是看他x的定义阿~我是因为看他原来的code有 10/18 11:04
40F:→ profyang:shift才假设他时间不是从0开始 当然他写错又另当别论了 10/18 11:04
41F:→ Satanicbless:如pro所说 的确是要求-10->10的范围 谢谢你们 10/20 12:10