3.2 Filter
文章推薦指數: 80 %
Median Filter:對抑制脈衝雜訊效果顯著的中位數濾波器。
... Notch Filter:此元件目的在於濾除訊號中的某個頻率。
... 以上是為低通濾波器,若為高通則為:.
3.2Filter
本模組提供數種常見之濾波器,以濾除訊號中特定的資料內容。
FIRFilter:基本的有限脈衝響應濾波器(FiniteImpulseResponseFilter)。
MedianFilter:對抑制脈衝雜訊效果顯著的中位數濾波器。
MovingAverageFilter:移動平均濾波器可消除隨機產生之雜訊。
IterativeGaussianFilter:此元件目的在於濾除訊號非週期之部份。
TrendEstimater:為IterativeGaussianFilter之簡化版,可抓取非週期訊號。
NotchFilter:此元件目的在於濾除訊號中的某個頻率。
CombFilter:為一梳形濾波器,用於濾除一系列等間距的頻率。
3.2.1FIR
Filter
有限脈衝響應(FiniteImpulseResponse)濾波器,是訊號處理中基本(Basis)
濾波器原型,可針對高頻、低頻或指定的頻段濾波。
有限(Finite)是指此濾波器對於訊號的反應時間是有限的。
說明
假設有一訊號,為如下圖形:
傅立葉轉換後圖型如下,在此希望將其高頻部份濾除,只保留低頻部份:
(黑細線為原本訊號的傅立葉轉換,紅粗線為希望保留與濾除的頻率分界)
因此,在傅立葉空間定義出上述紅線的函數,並將此函數與原本訊號的傅立葉轉換相乘:
再做傅立葉逆轉換,就可得到濾除高頻部份的圖型:
以上是為低通濾波器,若為高通則為:
帶通(BandPass):
反帶通(BandStop)
ByPass則為全通。
參數設定(Properties)
本模組接受實數(realnumber),單通道(single
channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。
FIRFilter的主要參數為FilterType,預設包括
LowPass、HighPass、BandPass、BandStop、ByPass等五種型態。
LowPass表示過濾掉頻率F1
以上的訊號,HighPass則過濾頻率F1以下的訊號。
BandPass代表保留頻段F1至F2間的訊號,BandStop
則是濾掉頻段F1至F2間的訊號。
ByPass則為所有頻率皆可通(即為原輸入訊號)。
各參數定義與預設值如下表:
參數名稱
參數定義
預設值
FilterType
預設五種形態,包括LowPass、HighPass、BandPass、BandStop、ByPass。
LowPass
F1
對於LowPass以及HighPass而言,F1代表濾波器過濾頻段的分界點;對於
BandPass、BandStop,F1代表濾波器過濾頻段的起始點,單位為Hz。
10
NormalizedF1
顯示以輸入訊號之Samplingfrequency為依據,正規化後的F1值。
應輸入訊號不同而異。
F2
對於FilterType選擇BandPass與BandStop者,會出現濾波器過濾頻段不終點F2,單位為
Hz。
50
FilterOrder
濾波器轉換函數的離散點,N即為N-orderFilter。
範例(Example)
本範例將示範以三個頻率各為10、51、193Hz的SineWave加上振幅0.1的WhiteNoise
當作輸入訊號,再用FIRFilter過濾不同頻率的訊號,步驟如下:
Network視窗下選擇Source/Noise產生一個白色雜訊,設定Properties/Amplitude
為0.3,再用Source/SineWave產生三個SineWave,並改變其Properties/
SignalFreq為10、51、193Hz,最後以Compute/Channel/
Mixer將上述訊號混合(將各訊號源之Output拉至Mixer的Input),用Viewer/Channel
Viewer繪出。
可以將Mixer的結果接上Compute/Transform/FourierTransform,
以觀察頻譜圖,以方便接下來的FIRFilter設計
於 Mixer圖示選擇Compute/Filter/FIRFilter,調整Properties/
F1為25Hz,FilterType預設為LowPass,用ChannelViewer
顯示濾波結果。
觀察結果,輸入訊號在頻率25Hz以上的部份皆被濾除,輸出訊號類似10Hz的SineWave,不過因
FilterOrder僅101,所以波形有所影響。
重覆步驟2新增一FIRFilter,調整參數FilterType等於HighPass,F1改為
100Hz,FilterOrder為500,結果如下圖所示,濾波器過濾掉頻率100Hz以下之訊號,結果為頻率193Hz的
SineWave加上WhiteNoise。
再重覆步驟2新增一FIRFilter,調整參數FilterType為BandPass,F1改為
25Hz,再設定頻率下限F2為100Hz,FilterOrder設為500,在頻段25~100Hz
的訊號會通過,其它訊號則被濾掉,所以結果為51Hz的SineWave。
相關指令
Noise、Sine、Mixer。
參考:
1.http://en.wikipedia.org/wiki/Finite_impulse_response
2.http://cnx.org/content/m11918/latest/
3.2.2Median
Filter
MedianFilter是一維的非線性濾波器,計算濾波範圍(filterorder)
內訊號之中位數作輸出結果,對於抑制脈衝雜訊(Specklenoise)效果顯著,同時能保持訊號波形邊緣的可辨度(edge
detection)。
說明
代表長度為N之輸入訊號,為濾波後的訊號,M為作濾波計算時所取的訊號長度,則
Medianfilter定義為:
上式表示,在第i個位置為中心,前後分別取個點成為一組數列,再找出該數列的中位數以取代訊號第i
個位置的值;若點數不足時(如,或在),則將範圍內最邊界點的值複製,用以填補至足夠的點為址。
程式預設
M為奇數,若輸入為偶數,則自動將個數加一,以使成為為奇數。
參數設定(Properties)
本模組接受實數(realnumber),單通道(single
channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。
參數名稱
參數定義
預設值
FilterOrder
作Medianfilter所選取的數列長度,即為M,設定為奇數,如輸入偶數,則程式自動加1變為奇數。
101
範例(Example)
本範例(Example)將示範以一個方波加上SpeckleNoise當作輸入訊號,再用Medianfilter
濾波的過程,步驟如下:
於Network視窗下按右鍵,選擇Source/Noise產生一個雜訊,設定Properties/
NoiseType為Speckle,Probability設為0.25,另外選擇Source/SquareWave
產生一方波,以Compute/Channel/Mixer將兩訊號混合,用Viewer/ChannelViewer
顯示於視窗。
另點選 Mixer圖示選擇Compute/Filter/Median
Filter,調整Properties/FilterOrder為5,再用Viewer/ChannelViewer
顯示濾波結果。
步驟2已可得到不錯的濾波效果,如再調整MedianFilter的參數FilterOrder為
21,結果如下圖所示,FilterOrder增加了約4倍,不但specklenoise
已經完全濾掉,而且在波形邊緣仍維持良好的陡峭度。
最後回到Noise圖示,將NoiseType由Specklenoise改為Whitenoise藉此測試
Medianfilter的特性,結果如下,可觀察到Medianfilter無法完全過濾Whitenoise
造成的影響,但波型邊緣仍大部份維持著,此即為Medianfilter的主要功用。
相關指令
Noise、Square、Mixer、MovingAverageFilter。
參考
http://en.wikipedia.org/wiki/Median_filter
3.2.3Moving
AverageFilter
MovingAverageFilter
是藉由對濾波範圍內訊號取平均值,目的為降低離散時間訊號中的雜訊,增加峰值的可辨度。
其特點為理論簡單,計算快速。
說明
令代表長度為N之輸入訊號,為濾波結果,若濾波範圍為(AverageLength)為
M個訊號,則其輸出為:
上式的意義為:總面積為1,時間軸上長度為M的長方形濾波器對輸入訊號做折積(convolution)。
參數設定(Properties)
本模組接受實數(realnumber),單通道(single
channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。
MovingAverageFilter包括兩個參數:FilterType與
AverageLength,AverageLength代表求平均所取的訊號個數M,單位為時間。
FilterType
為設定濾波器高、低頻段的過濾,內有三個選項分別為LowPass、HighPass及ByPass,LowPass
即為執行上述理論的計算值;HighPass則為輸入訊號減去LowPass之計算結果;而ByPass
的輸出,即等於輸入訊號(因為HighPass+LowPass=原訊號),參數預設值詳見下表。
參數名稱
參數定義
預設值
FilterType
為設定濾波器對訊號高、低頻段的過濾,選項為LowPass、HighPass及ByPass。
LowPass
AverageLength
作平均所設定的訊號長度,單位為時間。
0.05
AverageCount
顯示AverageLength所對應的訊號個數。
依AverageLength而自動調整。
範例(Example)
本例將混合一個頻率為2Hz、振幅為1、長度2秒的方波與一個振幅為0.5,長度為2秒的WhiteNoise,以
MovingAverageFilter濾波,並設定不同的AerageLength觀察對原訊號所造成的影響。
按右鍵選用Source/SquareWave創造方波,改變Properties/TimeLength欄位為
2,SignalFreq欄位改為2。
接著再按右鍵點選Source/Noise/WhiteNoise創造White
Noise,TimeLength設為2,Amplitude設為0.5。
最後按右鍵選Compute/Channel/
Mixer將兩訊號相加,再用Viewer繪出。
於Mixer按右鍵選擇Compute/Filter/MovingAverage,對輸入訊號作Moving
Average,可於Properties/AverageLength欄位看到預設值等於0.1s,AverageCount
欄位顯示共101個資料,代表MA輸出的每一點為其輸入訊號前後共101個資料點的平均,FilterType/
LowPass表示輸出為MovingAverage的計算值,最後用Viewer/ChannelViewer
將結果繪出。
按照步驟2對Mixer再做一次MovingAverage,產生名為MA2圖示,但改變其
AverageLength為0.2,並將結果用Viewer繪出。
比較步驟1、2、3的結果,可發現調高AverageLength
可明顯降低輸入訊號的雜訊,但是此濾波器之缺點為:原始方波訊號陡峭的邊界隨著AverageLength
提高而變的越來越平緩。
再對Mixer做MovingAverage,將FilterType修改為
HighPass,可看到結果等於輸入訊號減去MA2的輸出訊號。
相關指令
Square,Noise,Mixer。
參考
http://www.dspguide.com/ch15.htm
3.2.4
IterativeGaussianFilter
各種訊號大部分可視為一周期性訊號加上非週期性訊號。
透過IterativeGaussianFilter
(Smoothing)得到其周期性部分或非周期性部分的訊號。
產生一個Sine波(Sinewave),經由FourierTransform
會產生如下圖所示的一個單一峰值的頻譜。
由此可知Sine波的頻率為3Hz。
但如下圖所示的訊號(Sine+Exponentialterm);其頻率或週期為何?將此訊號透過Fourier
Transform則得到如下圖所示的頻譜:訊號多分佈在低頻處,它掩蓋了Sine波的頻率特徵而不是我們希望得到的答案(3Hz
)。
為解決此問題,我們可把此訊號拆成一個Sine波加上一個指數函數;換言之我們希望把一個訊號拆解成一個周期性訊號(
periodicsignal)加上一個非周期性訊號(non-periodicsignal
)。
如此對此訊號我們希望同時回答兩件事:(1)訊號的周期性部分為何?或其頻譜為何?(2)其趨勢(trend)為何?
說明
但訊號也可能是因為量測時間不夠長(小於一個周期),使得此訊號看起來含有非周期性訊號。
那訊號的趨勢究竟為何?我們可以平均的概念描述之。
對訊號
每一點而言,其高斯平均(GuassianAverage
):
此數學式說明點的值乃由其鄰近的點的平均值來代表,離j
點愈遠其權重愈小。
所組成的新訊號較平滑,也就是其高頻部分被平滑化後消失了。
再將做高斯平均,疊代(反覆此步骤)若干次後得到的
,(m為疊代次數)
的總和即為周期性訊號趨勢訊號。
原訊號減去周期性訊號即為其較低頻的趨勢訊號。
數學上可證明GaussianFilter
相當於如下圖的濾波器。
以趨勢訊號(lowpassfilter)為例,會將小於的部分完全通過,而濾除(絕大部分)大於而中間的部分則為高斯分佈。
疊代次數
m與參數可由、以及b(AttenuationFactor)
求得。
b為很小的值,較常用的值為0.01或0.001,可選定為2至10。
參數設定(Properties)
本模組接受實數(realnumber),單通道(single
channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。
各參數定義如下。
參數名稱
參數定義
預設值
FilterType
此IterativeGaussianFilter的濾波形式
LowPass:低頻部分可通過,濾除高頻。
HighPass:低頻部分可通過,濾除高頻。
ByPass:無任何頻段訊號被濾除。
LowPass
Attenuation
濾波中Gaussian曲線的參數值
0.01
FH
過濾頻段中的較高值。
10
FL
過濾頻段中的較低值。
2
範例(Example)
範例為將一個形式的訊號(即如一開始圖型的訊號),以Iterative
GaussianFilter濾除掉部份。
建立一個SineWave,設定時間長度為10秒,頻率為3Hz;再建立一個CustomWave,在
expression內輸入exp(t/3.2),同樣時間長度設為10秒。
之後將此兩訊號以Mixer
混合,並接上ChannelViewer繪製圖形。
(可將此訊號接上傅立葉轉換以觀察其特性)
之後由Mixer處,連結上IterativeGaussianFilter,並設定FilterType為
HighPass、FH為0.5,FL為0.1(因為已知Sine的頻率為3Hz,是故只要設定FH為一低於3Hz
,以讓SineWave通過)。
濾除後結果接上ChannelViewer,可發現結果還算接近原本的SineWave。
而在訊號尾端,濾除結果與原本
Sine訊號有差異,是濾除不夠乾淨,而需調整參數以獲得更佳結果。
(細黑線:為原本的Sine;粗紅線:為經濾波後還原的結果。
)
可將IterativeGaussianFilter裡的FH設為2.5、L設為
0.01,再重新計算一次。
在此可發現濾波效果更佳、更接近原本的Sine。
相關指令
TrendEstimater,CustomWave,FourierTransform。
參考
1.YihNenJeng,"DiffusiveandFastFilterUsingIterative
GaussianSmoothing",DepartmentofAeronauticsandAstronautics,
NationalChengKungUniversity
2.http://www.ancad.com/blog/AnCADSupport/wp-content/uploads/2008/05/it-gauss-2008-7.pdf
3.2.5Trend
Estimater
TrendEstimater是IterativeGaussianFilter的簡易參數版,詳細可參閱
IterativeGaussianFilter。
在對訊號特性掌握較不完全時,無需詳細設定,即可用TrendEstimater
算出其趨勢。
說明
演算法請參閱IterativeGaussianFilter章節。
參數設定(Properties)
本模組接受實數(realnumber),單通道(single
channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。
各參數定義如下。
參數名稱
參數定義
預設值
FilterType
與IterativeGaussianFilter的相同。
LowPass:(低通)萃取出低頻部分。
HighPass:(高通)萃取出高頻部分。
ByPass:無任何頻段訊號被濾除。
LowPass
TrendBasis
以(Period)周期為參考設定參數或(Frequency)頻率為參考設定參數
Frequency
若是TrendBasis設定為Period,其參數定義如下表。
參數名稱
參數定義
預設值
TrendPeriod
週期高於此值者,則視為趨勢訊號。
與IterativeGaussianFilter對應則為:
FL(=2/TrendPeriod)
FH(=4/TrendPeriod)
0
TimeUnit
設定TrendPeriod的單位。
Default
DefaultTimeUnit
輸入訊號的原始時間單位。
sec
若是TrendBasis設定為Frequency,其參數定義如下表。
參數名稱
參數定義
預設值
TrendFrequency
頻率低於此值者,則視為趨勢訊號。
與IterativeGaussianFilter對應則為:
FL(=2*TrendFrequency)
FH(=4*TrendFrequency)
0
FrequencyUnit
設定TrendFrequency的單位。
Default
DefaultFrequencyUnit
輸入訊號經傅立葉轉換後的原始單位。
Hz
範例(Example)
先從YahooFinance:YahooFinanceLink
下載一筆2330.TW(台積電)2005-01-01到2010-03-17的開盤價,另存CSV
檔案,由於星期六、日或假期沒有開盤,所以暫且不將日期資料加入,利用TextImporter開啟檔案,DataRange/
SpecifyTimeColumn為Unchecked和Columns:2toend,DateAxis/Auto
為Unchecked,TimeCoordinate/TimeUnit為day以及SamplingFrequency
為1,讓讀取進來訊號屬於regular,時間單位為day。
最後連接至Viewer/ChannelViewer
顯示。
將訊號源接上TrendEstimater,其中參數皆為預設值,最後將結果接至同一個ChannelViewer
顯示其結果,黑線為原始股價變化,藍線為股價趨勢。
最後要將日期資訊取代現有的時間軸,將regular訊號轉成Indexed訊號,利用TextImporter再開啟
CSV檔案,DataRange/SpecifyTimeColumn為Checked,和Columns:2to
end,讀取進來訊號屬於Indexed,時間單位為day。
最後將Trend運算結果連接Conversion/ConverttoIndexed,接下來將剛才讀取進來的
Source(2330.TW2)也連接至ConverttoIndexed,最後將ConverttoIndexed連至
Viewer/ChannelViewer展示,可以看見有日期的資訊出現在X
軸,並可以根據當時發生的事件去推斷股價趨勢變化。
也利用TrendEstimater可以幫助找出地層下陷、大氣溫度、股票等訊號的長時間趨勢。
相關指令
IterativeGaussianFilter。
參考
1.DiffusiveandFastFilterUsingIterativeGaussianSmoothing,
YihNenJeng,DepartmentofAeronauticsandAstronautics,National
ChengKungUniversity
2.http://www.ancad.com/blog/AnCADSupport/wp-connent/uploads/2008/05/it-gauss-2008-7.pdf
3.2.6Notch
Filter
NotchFilter為帶拒濾波器,也可稱為帶阻濾波器,目的在將某一特定頻率濾除。
說明
NotchFilter的主要濾除某一特定頻率,若假設濾波器設計為濾除為60Hz的訊號,其Frequency
ResponseFunction如下圖。
參數設定(Properties)
本模組接受實數(realnumber),單通道(single
channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。
各參數定義如下。
參數名稱
參數定義
預設值
CenterFrequency
被濾除的中心頻率。
60
DecibelPoint
設定衰減點,設定的越小所產生帶拒越尖銳。
-3
BandWidth
設濾波器帶寬,定義為衰減點的帶寬,單位為(pi*弧度/取樣頻率)。
0.01
範例(Example)
建立一個Impulsesource,設定ImpulseShape為Square,而且SingleImpulse為
True,再接上Computet/Transform/FourierTransform,最後以ChannelViewer
觀察頻率分佈。
在ImpulseSource後面接上Computer/Filter/NotchFilter,在Notch
後面接上Computet/Transform/FourierTransform,最後以ChannelViewer
觀察頻率分佈可以清楚看見濾除60Hz。
改變NotchFilter中DecibelPoint為-10,以及BandWidth為
0.001,被濾除的頻率和範圍變得更尖銳。
相關指令
CombFilter。
3.2.7Comb
Filter
CombFilter為梳型濾波器,目的在將某一系列等間距得頻率濾除或保留。
說明
CombFilter的FrequencyResponseFunction如下圖。
參數設定(Properties)
本模組接受實數(realnumber),單通道(single
channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。
各參數定義如下。
參數名稱
參數定義
預設值
FilterType
濾波形態,包含CombNotching、CombPeaking。
CombNotching
NotchNum
設定0至取樣頻錄率之間的帶拒數目,若濾波型態為CombPeaking,實際帶拒數目=設定帶拒數目-1。
4
DecibelPoint
設定衰減點,設定的越小所產生帶拒越尖銳。
-3
BandWidth
設濾波器帶寬,定義為衰減點的帶寬,單位為(pi*弧度/取樣頻率)。
0.01
範例(Example)
建立一個Impulsesource,設定ImpulseShape為Square,而且SingleImpulse為
True,再接上Computet/Transform/FourierTransform,最後以Channel
Viewer觀察頻率分佈。
在ImpulseSource後面接上Computer/Filter/CombFilter,在Comb
後面接上Computet/Transform/FourierTransform,FFT的Max設定為訊號取樣頻率
1000,最後以ChannelViewer觀察頻率分佈可以發現頻率是呈現等間距濾除。
改變CombFilter中FilterType為CombPeaking,以及NotchNum為
11,濾波結果為保留一系列的頻率,其他則濾除。
相關指令
NotchFilter。
ConvertedfromCHMtoHTMLwithchm2webStandard2.85(unicode)
延伸文章資訊
- 16. 影像強化
d 頻率域的處理則只有單純的高、中、低頻濾波器 ... d 中值濾波(median filtering) 是一個非線性的運算 ... d 理想低通濾波(ideal lowpass filter,...
- 2影像平滑化- 维基百科,自由的百科全书
影像在傳輸過程中,由於受到通道、劣質取樣系統以及其他的干擾影響,導致影像變得粗糙、不清晰, ... 平滑空間濾波器编辑. 平滑線性濾波器编辑. 平滑線性空間濾波器的輸出(響應)是濾波器遮罩的鄰域...
- 3帶通濾波器- 維基百科,自由的百科全書
一個模擬帶通濾波器的例子是電阻-電感-電容電路(RLC circuit)。 ... 科學領域,很常見的例子是使用帶通濾波器過濾最近3到10天時間範圍內的天氣數據,這樣在數據域中 ...
- 4[D12] 影像濾波 - iT 邦幫忙
filter的種類:. 平滑濾波器:用於模糊化和去除雜訊. 低通濾波器(Low pass filter); 中值濾波器(Median filter). 銳化濾波器: 強化物體的邊緣位置.
- 5中通濾波器相關資訊 - 哇哇3C日誌
中通濾波器,低通濾波器- 維基百科,自由的百科全書,低通濾波器(英語:Low-pass filter)容許低頻訊號通過,但減弱(或減少)頻率高於... 低通濾波器概念有許多不同的 ...