2011-03-07 334 views
0

我需要從信號中濾除一些噪聲,而一個簡單的RC一階濾波器似乎還不夠。我一直在尋找,但我還沒有找到其他濾波器的算法(雖然很多例子如何與模擬電路做到這一點)。有人可以確定哪裏可以找到這樣的算法嗎?或者至少在這裏寫一個?二階低通濾波器算法

對於澄清:我將信號從一個示波器,和我只有一個週期。這個週期看起來有點像:

125 * (x > 3 ? exp(-(x - 3)/2) : exp(5*(x - 3))) 

現在,信號並不總是有這種狀態,我需要計算的信號,這是容易的,如果不是因爲當一個放大信號具有足夠的(每個點的衍生物是160納秒的appart)你可以看到很多噪音。所以,在計算衍生產品之前,我需要平滑信號。

+0

如果它是真的白噪聲(靜態),它在所有頻率上都是平等和不流暢的。它真的是什麼樣的噪音? – 2011-03-07 15:47:21

+0

我認爲他所要求的是能夠濾除某些頻段上的白噪聲。例如,假設信號處於1Mhz至10Mhz的頻帶,那麼使用截止頻率超過10Mhz的低通濾波器是適當的。 – 2011-03-07 15:59:26

+1

如何從這裏選擇一個過濾器:http://en.wikipedia.org/wiki/Filter_(signal_processing) – 2011-03-07 16:00:36

回答

1

如果你問如何設計一個高階濾波器比簡單的一階,如何從這裏選擇一個過濾器:wiki on Filter_(signal_processing)

只是假設到你的問題,所以這裏有一對夫婦的設計要點。

1)你可能不希望在你的通帶紋波(變化的增益),因爲這會扭曲你的信號。

2)你可能不關心你的阻帶紋波有,因爲信號應接近0反正有。

3)濾波器的階數越高,它就越像一個理想的方形濾波器。

4)滾降越高越好,你要儘快的通帶外以減少噪音。

5)您可能會或可能不關心「羣延遲」,這是由於通過採用不同的時間穿過過濾器不同的頻率的失真的一種度量。對於音頻,你可能想要一個不會太高的羣時延,就像你可以想象不同的頻率分量經歷不同的時間(和相位)的變化會導致一些失真。

一旦您選擇基於這些(以及其他可能的)考慮希望過濾器,然後只需使用一些佈局,比如提到here

0

由於只有你的需求模糊的描述,很難給出任何那些實現它具體建議。

您需要指定濾波器的參數:採樣率,截止頻率,過渡帶的寬度,通帶紋波,最小阻帶抑制,相位和羣延遲是否是一個問題等。你至少有一些這些參數固定下來,然後你就可以開始選擇一個合適的濾波器設計,即基本的濾波器類型,階段的數量等過程。

這也將有助於知道什麼樣的信號你想過濾 - 是音頻還是其他?每個樣品有多少個比特?

0

你需要你的信號定義好了,你的噪聲很好的分析,以及兩者之間的差別有清醒的認識,以確定哪些算法可能是適合除去一個和其他沒有消除信息。那麼你需要定義計算環境(整數或浮點ALU,加法和乘法週期?),並設置一個計算預算。二階IIR和千兆點FFT之間有很大區別。

RBJ's biquad cookbook中描述了一些非常常用的二階數字濾波器。