信號轉換爲圖像 時域頻域分析

一維信號如何轉化爲圖像?深度學習如何學習

1.當然,直接1d卷積也是可以的。
2. 以信號強度的數值作爲縱座標,以時間爲橫座標繪製信號點就可以了。
周霖那個即是 要看看代碼是如何做的, 即使是單導聯 5000個點,怎麼變成50005000的分辨率的
3. 直接把多通道的一維信號合併成二維圖像,然後直接按圖像卷積的方法去做~~
222
5000這樣一個圖
~可以看看語音處理的相關Net,其中比較推薦的是用 dilated conv 來做
4. 按語音識別的套路,先搞時頻圖。我覺得一維信號預處理有點麻煩,假如待識別信號的範圍差距很大,那就蠻難處理。不像圖像,灰度圖像自身就是0-255的像素點大小範圍;而類似振動信號,小的可能很小,大的振動可能也很大,歸一化也不好處理。如果用激勵層做映射,像tanh和sigmoid 基本都會崩掉,我感覺挺麻煩的,尤其在一維信號無界或者範圍過大的情況。所以將其轉變爲時域頻域分析,頻域在0.5-35hz

5.或者直接上rnn也行。直接當做是時序數據進行處理

把shape處理好,就不會有計算流程的問題。

https://www.zhihu.com/question/276804048

2, 傅里葉變換

從物理意義上說:這三種變換的本質是將信號從時域轉換爲頻域。傅里葉變換的出現顛覆了人類對世界的認知:世界不僅可以看作時間的變化,也可以看做各種頻率不同加權的組合。舉個不太恰當的例子:一首鋼琴曲的聲音波形是時域表達,而它的鋼琴譜則是頻域表達。

另外,在通信領域,沒有信號的頻域分析,將很難在時域理解一個信號。因爲通信領域中經常需要用頻率劃分信道,所以一個信號的頻域特性要比時域特性重要。

從計算量上面說:三種變換因爲可以將微分方程或者差分方程轉化爲多項式方程,所以大大降低了微分(差分)方程的計算成本。

傅里葉分析包含傅里葉級數與傅里葉變換。傅里葉級數用於對週期信號轉換,傅里葉變換用於對非週期信號轉換。傅里葉變換要求滿足狄利克雷條件和在(﹣∞,+∞)上絕對可積,但絕對可積是一個相當強的條件,很多常見的函數如正弦函數、單位階躍函數和線性函數都不滿足此條件,使這種變換方法少了工程意義,所以就出現了拉氏變換。而z變換則可以算作離散的拉普拉斯變換。

時域分析
世界都以時間貫穿,股票的走勢、人的身高、汽車的軌跡都會隨着時間發生改變。這種以時間作爲參照來觀察動態世界的方法我們稱其爲時域分析。 都在隨着時間不停的改變,並且永遠不會靜止下來。

頻域,傅里葉同學告訴我們,任何周期函數,都可以看作是不同振幅,不同相位正弦波的疊加。
在時域,我們觀察到鋼琴的琴絃一會上一會下的擺動,就如同一支股票的走勢;而在頻域,只有那一個永恆的音符
但如果我告訴你,用另一種方法來觀察世界的話,你會發現世界是永恆不變的,你會不會覺得我瘋了?我沒有瘋,這個靜止的世界就叫做頻域。
而貫穿時域與頻域的方法之一,就是傳中說的傅里葉分析。傅里葉分析可分爲傅里葉級數(Fourier Serie)和傅里葉變換(Fourier Transformation)

傅里葉級數的頻譜(Fourier Series)
自然界中所有的信號是所有正弦波疊加而成的總和

如果我們把第一個頻率最低的頻率分量看作“1”,我們就有了構建頻域的最基本單元。

對於我們最常見的有理數軸,數字“1”就是有理數軸的基本單元。

時域的基本單元就是“1秒”,如果我們將一個角頻率爲\omega_{0} 的正弦波cos(\omega_{0} t)看作基礎,那麼頻域的基本單元就是\omega_{0} 。

有了“1”,還要有“0”才能構成世界,那麼頻域的“0”是什麼呢?cos(0t)就是一個週期無限長的正弦波,也就是一條直線!所以在頻域,0頻率也被稱爲直流分量,在傅里葉級數的疊加中,它僅僅影響全部波形相對於數軸整體向上或是向下而不改變波的形狀。
在這裏插入圖片描述
可以發現,在頻譜中,偶數項的振幅都是0,也就對應了圖中的彩色直線。振幅爲0的正弦波

上面是從側面看,下面是從下面看,主要是相位譜
基礎的正弦波A.sin(wt+θ)中,振幅,頻率,相位缺一不可,不同相位決定了波的位置,所以對於頻域分析,僅僅有頻譜(振幅譜)是不夠的,我們還需要一個相位譜。那麼這個相位譜在哪呢?我們看下圖,這次爲了避免圖片太混論,我們用7個波疊加的圖。
在這裏插入圖片描述
相位差則是時間差在一個週期中所佔的比例。我們將時間差除週期再乘2Pi,就得到了相位差。
 主要是
頻道。頻道頻道,就是頻率的通道,不同的頻道就是將不同的頻率作爲一個通道來進行信息傳輸。下面大家嘗試一件事:
以很多在時域看似不可能做到的數學操作,在頻域相反很容易。這就是需要傅里葉變換的地方。尤其是從某條曲線中去除一些特定的頻率成分,這在工程上稱爲濾波,是信號處理最重要的概念之一,只有在頻域才能輕鬆的做到。
sin(3x)+sin(5x) 他的頻率就是兩條豎線 3,5

上面可以看做是週期信號,
傅里葉變換—非週期信號

傅里葉級數的本質是將一個週期的信號分解成無限多分開的(離散的)正弦波,但是宇宙似乎並不是週期的。

比如傅里葉級數,在時域是一個週期且連續的函數,而在頻域是一個非週期離散的函數。這句話比較繞嘴,實在看着費事可以乾脆回憶第一章的圖片。

而在我們接下去要講的傅里葉變換,則是將一個時域非週期的連續信號,轉換爲一個在頻域非週期的連續信號。因此在傅里葉變換在頻域上就從離散譜變成了連續譜。原來離散譜的疊加,變成了連續譜的累積。所以在計算上也從求和符號變成了積分符號。

在這裏插入圖片描述
原來離散譜的疊加,變成了連續譜的累積。所以在計算上也從求和符號變成了積分符號。
在這裏插入圖片描述

歐拉公式
虛數i這個概念大家在高中就接觸過,但那時我們只知道它是-1的平方根
這裏有一條數軸,在數軸上有一個紅色的線段,它的長度是1。當它乘以3的時候,它的長度發生了變化,變成了藍色的線段,而當它乘以-1的時候,就變成了綠色的線段,或者說線段在數軸上圍繞原點旋轉了180度。
我們知道乘-1其實就是乘了兩次 i使線段旋轉了180度,那麼乘一次 i 呢——答案很簡單——旋轉了90度

在這裏插入圖片描述
這個公式在數學領域的意義要遠大於傅里葉分析,但是乘它爲宇宙第一耍帥公式是因爲它的特殊形式——當x等於Pi的時候。
在這裏插入圖片描述
這個公式關鍵的作用,是將正弦波統一成了簡單的指數形式

在這裏插入圖片描述
歐拉公式所描繪的,是一個隨着時間變化,在複平面上做圓周運動的點,隨着時間的改變,在時間軸上就成了一條螺旋線。如果只看它的實數部分,也就是螺旋線在左側的投影,就是一個最基礎的餘弦函數。而右側的投影則是一個正弦函數。
有了歐拉公式的幫助,我們便知道:正弦波的疊加,也可以理解爲螺旋線的疊加在實數空間的投影。傅里葉變換出來的頻譜不僅僅是可見光這樣頻率範圍有限的疊加,而是頻率從0到無窮所有頻率的組合。

在這裏插入圖片描述
快速傅里葉變換
FFT(Fast Fourier Transform)快速傅里葉變換是離散傅里葉變換(DFT)的一種快速計算方法。傅里葉分析是將信號從原始域(比如時域)轉換到其他域(比如頻域)表徵的一種方法。而FFT是DFT的一種快速計算方法

x = np.random.random(1024)
np.allclose(DFT_slow(x), np.fft.fft(x))

Numpy內嵌的FFT計算結果做一個對比
https://zhuanlan.zhihu.com/p/23354318
由於在這項工作中使用了二維CNN,因此-
將原始腦電圖數據轉換成矩陣(如圖像格式)的信息。轉換必須能夠從腦電圖信號中保留最重要的信息。小波和傅立葉變換通常用於將時間序列腦電圖信號轉換爲圖像形狀(Brinkmann等人,2016;Khan、Marcuse、Fields、Swann和Yener,2017)。它們也被用作癲癇檢測和預測的有效特徵提取方法。在這項工作中,我們使用短時傅立葉變換(STFT)將原始腦電圖信號轉換成由頻率和時間軸組成的二維矩陣。我們使用30 s長的腦電圖窗口。大多數腦電圖記錄都受到50 Hz(見圖1a)電源線噪聲的污染,而弗賴堡醫院數據集和CHB-MIT數據集則爲60 Hz。在頻域中,通過排除頻率範圍爲47–53 Hz和97–103 Hz的部件(對於50 Hz的電源線頻率)和頻率範圍爲57–63 Hz和117–123 Hz的部件(對於60 Hz的電源線頻率),可以方便地有效地消除電源線噪聲。直流分量(在0赫茲時)也被移除。圖1b顯示了去除電源線噪聲後30秒窗口的STFT。

短時傅里葉變換
原因是因爲傅立葉分析有一個非常嚴重的缺點, 在將信號從時間域變換到頻率域去的時候,把時間信息丟失了。 當我們在用傅立葉變化去分析一個具體信號的時候, 我們不知道哪個頻率是對應在哪個時間點出現的,在哪個時間點消失的。

如果一個信號的頻率並不隨着時間變化, 那麼我們稱它爲平穩信號。 那麼知道哪一個頻率的信號在哪一個時間點出現的就不那麼重要了。 可是如果現實生活中我們研究的大多數信號都是非平穩信號,他們都許多非常短暫變化的特性, 這些特點對於我們信號分析的特點, 傅立葉分析並不適合去做這種分析,而短時傅里葉變換則可以。

可見,傅里葉變換處理非平穩信號有天生缺陷。它只能獲取一段信號總體上包含哪些頻率的成分,但是對各成分出現的時刻並無所知。因此時域相差很大的兩個信號,可能頻譜圖一樣。

然而平穩信號大多是人爲製造出來的,自然界的大量信號幾乎都是非平穩的,所以在比如生物醫學信號分析等領域的論文中,基本看不到單純傅里葉變換這樣naive的方法。

短時傅里葉變換(Short-time Fourier Transform,STFT)–matlab 版本

一個簡單可行的方法就是——加窗。 “把整個時域過程分解成無數個等長的小過程,每個小過程近似平穩,再傅里葉變換,就知道在哪個時間點上出現了什麼頻率了。”這就是短時傅里葉變換。

[S,F,T,P]=spectrogram(x,window,noverlap,nfft,fs)
[S,F,T,P]=spectrogram(x,window,noverlap,F,fs)

說明:當使用時無輸出參數,會自動繪製頻譜圖;有輸出參數,則會返回輸入信號的短時傅里葉變換。當然也可以從函數的返回值S,F,T,P繪製頻譜圖,具體參見例子。

A=load('E:\I-虛擬機癲癇實驗\癲癇實驗\0920--小波變換提取\111.txt');
x=A(:,1);%對數據進行選擇
fs=500;
N =5000;
nfft=1024;
spectrogram(x,1024,512,nfft,fs);
figure
% 短時傅里葉變換

在這裏插入圖片描述
參數:

x—輸入信號的向量。默認情況下,即沒有後續輸入參數,x將被分成8段分別做變換處理,

如果x不能被平分成8段,則會做截斷處理。默認情況下,其他參數的默認值爲

window—窗函數,默認爲nfft長度的海明窗Hamming

noverlap—每一段的重疊樣本數,默認值是在各段之間產生50%的重疊

nfft—做FFT變換的長度,默認爲256和大於每段長度的最小2次冪之間的最大值。

fs—採樣頻率,默認值歸一化頻率 .

Window—窗函數,如果window爲一個整數,x將被分成window段,每段使用Hamming窗函數加窗。

如果window是一個向量,x將被分成length(window)段,每一段使用window向量指定的

窗函數加窗。所以如果想獲取specgram函數的功能,只需指定一個256長度的Hann窗.

如何把信號畫出來?可以畫多導聯的一起嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章