作者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
推 profyang:因為fft是從頻率0開始 但你x如果其實是附的頻率開始就要 10/17 11:29
→ profyang:像這樣shift~這是用FFT近似CFT常遇到的 只是他shift的好 10/17 11:30
→ profyang:像怪怪的 如果x是偶數個當然沒差 但如果是奇數的話應該會 10/17 11:30
→ profyang:差一點點 10/17 11:30
→ profyang:好像應該是fftshift(fft(ifftshift(x)));才通用 10/17 11:31
→ Satanicbless:這是為了讓本來很rush的譜線能夠更平滑 所以使用 10/17 11:44
→ Satanicbless:所以學長才想這個方式 但他也不知道怎麼解釋 10/17 11:47
推 kurt28:記得是跟matlab的定義有關 你這樣只有fft 跟濾波沒有關係 10/17 12:49
推 profyang:樓上說的沒錯這跟濾波沒關 跟平滑也沒有關係 10/17 13:12
→ Satanicbless:那這條code的意義是什麼呢? 濾波的code我沒放@@" 10/17 13:25
推 kurt28:難怪 這code就只是fft而已 做完應該只要shift一次就好 @@ 10/17 13:41
→ kurt28:兩次我就不知道了 by自己的經驗 10/17 13:41
→ ericabab:做之前不用shift吧,我看只有他自己懂 10/17 19:15
推 profyang:為何大家不看我推文QQ 如果x定義是從負的頻率開始 就是 10/17 23:02
→ profyang:x(1)對應到的頻率其實應該是負的 那fft前就需要shift 10/17 23:02
→ profyang:而且通常這種負的頻率會跟正的頻率一樣多或差1個點 10/17 23:03
→ profyang:把上面的頻率代換成時間也對 10/17 23:03
→ profyang:因為fft的話你裡面x(1)對應到的頻率或時間應該是0 10/17 23:04
推 kurt28:理論上不是會對稱嗎? 不過我記得是做完再移就好 10/17 23:04
推 kurt28:上面那句前半段忽略好了 講得不夠嚴謹..要不要shift看需求 10/17 23:13
→ kurt28:剛剛去試原PO的方法 這樣相位好像會改變... 10/17 23:24
推 profyang:可是假設他考慮x的頻率是-10:10好了 今天你不移直接下去 10/18 01:21
→ profyang:就變成從0:20 會有問題 所以要利用他對稱的原理先把負的 10/18 01:23
→ profyang:頻率的那些x移到最右邊 利用週期性這樣就跟從負的頻率開 10/18 01:23
→ profyang:始加一樣了 10/18 01:23
→ ericabab:你拿來做fft的東西不是time domain嗎,shift是什麼意義? 10/18 02:58
推 banco:請問x是不是某信號的magnitude spectrum,然後濾波是針對a 10/18 08:27
→ banco:在濾完a後再ifft回頻域得到x",此x"為平滑化的x 10/18 08:28
→ banco:如果是這樣的話,我大概知道在做什麼了~頻譜x的平滑化 10/18 08:29
推 kurt28:時間序列的起點通常是0不是嗎? fft後就算要對頻率:-10~10 10/18 09:25
→ you2:prof是教授嗎?你講的很怪 10/18 09:29
→ you2:你先想一下Causality 10/18 09:30
推 kurt28:也是做完在shift一次 ..@@ 10/18 09:33
推 profyang:我不是教授 我是假設他時間是從負的開始才要shift 當然如 10/18 11:00
→ profyang:果是causal的信號t<0都沒信號 x可以定義從t=0開始那就fft 10/18 11:01
→ profyang:前不用shift 10/18 11:01
→ profyang:因為我比較常用的是頻域轉時域 所以才會強調先shift 10/18 11:02
→ profyang:的用意 10/18 11:02
→ profyang:所以重點就是看他x的定義阿~我是因為看他原來的code有 10/18 11:04
→ profyang:shift才假設他時間不是從0開始 當然他寫錯又另當別論了 10/18 11:04
→ Satanicbless:如pro所說 的確是要求-10->10的範圍 謝謝你們 10/20 12:10