實現FIR濾波器這麼簡單,為什麼各種數字訊號處理教材堆砌那麼多公式 引入那麼多複雜概念,讓人望而卻步?

時間 2021-05-12 15:42:16

1樓:T-ty

乙個精巧完備的理論用簡單的東西實現才是最美的。

1:是的,fir實現就是你那個離散的卷積公式,底層實現叫迴圈卷積或者圓周卷積,演算法叫重疊相加卷積法

2:不同的濾波器型別在頻域上看H(w)很不一樣,放到時域裡看h(t)很難分辨,所以設計的時候從頻域出發,繞拉普拉斯變換和z變換一圈。

3:額,只做訊號分析和一般的應用的話,有頻譜時頻譜簡單的FIRIIR就夠用了,數學基礎就乙個傅利葉乙個拉普拉斯。然而涉及到更複雜的應用(物理訊號分析,降噪,通訊,控制等等),就需要乙個更完備更精準的大一統語言來保證能概況所有濾波器的所有可能出現的問題。

2樓:Nick

你其他的幾個理解都大體上是對的(124)。但是

那麼多的公式就是在教你怎麼算h啊。。。

連h都不會算,不能算懂FIR吧。。。

3樓:加銅

這……數字訊號處理教材上濾波器設計可不是這麼簡單。

以我目前學的課程來看,你要得到乙個數字FIR濾波器,要先設計模擬濾波器的各種引數,什麼窗函式法什麼頻率取樣法還有我還沒搞懂的逼近法,模擬濾波器設計好了,再從模擬轉到數字。

說的比較簡潔,反正濾波器沒那麼簡單,我們老師還省了好多沒教我們的。而且這些也都只是紙上談兵,像電子電路上的濾波器就還要去考慮更多吧。(小想法,說錯勿怪)

4樓:

恕我直言,題主的提問口氣充分體現了部分計算機學科出身的程式設計師所具有的浮躁和傲慢情緒,以及對其它學科知識體系的極大不尊重,缺乏基本的敬畏。

在質疑教材為什麼不寫簡單點,寫這麼複雜是什麼心態之前,請冷靜下來,先端正好自己的心態。

個人建設性意見:

如果問題中的演算法並行化指的是流水線化,在不涉及設計和修改濾波器頻響函式的情況下,只需理解卷積運算的重疊相加實現方法即可,其他可以不管。

如果專案需要設計濾波器的話,建議直接拒絕這個任務,因為你做不來。

5樓:哈哈哈哈哈

你問的這個問題,代表你根本沒有看懂濾波器設計,不同的濾波器設計針對的不同的場景不同的用途,沒有萬能的濾波器只有最合適的,建議重新看看每種濾波器的用途和使用條件,matlab幫助裡也有專門介紹濾波器的章節可以看看

6樓:

我從電路設計模擬域的角度簡單談一下。其實已經脫離了取樣後的離散化了。乙個典型的應用就是serdes裡的前饋均衡FFE。

第乙個,係數裡的小數部分不好做,要麼用電流模加法器,功耗大,線性度好,頻寬高,解析度可通過電流鏡比例靈活可調。或者電阻DAC,功耗小,線性度差,頻寬低,解析度越高越難做。

第二個,階數問題,如果傳輸速率特別高,需要產生多個抽頭。以半速率架構為例子,需要的mux數目直接倍數增長。意味著你tap做得越多電路的pre driver和clock tree的功耗直接上去,甚至比driver的功耗還大。

一般28Gbps以上,就至少要做3到4tap了。這也是權衡了功耗和均衡效果的折衷,要想完全補掉通道的衝激響應是不現實的。

7樓:thunder

實現起來就是這麼簡單,然而理解這個公式,並能夠設計濾波器h,就有難度了,因為這個簡單公式的背後涉及卷積、傅利葉變換、時域、頻域等等。

8樓:十萬丶伏特

如果只是應用角度,可以用濾波器設計工具來進行設計,不需要了解h(n)具體怎麼來的,但是教材出發點是從原理上來說明為什麼要如此計算h(n).

9樓:樂小樂

公式就這麼簡單,但是傳遞函式h怎麼求,怎麼擬合你需要的引數,會不會非因果,有沒有簡便的卷積方法,是不是線性相位。。。都是長篇大論。。。細緻一點零極點怎麼搞,需不需要移位,增益如何,都是問題...

10樓:Miz Wong

濾波器在時域上本來就是卷積,主要是濾波器設計本身是一件比較複雜的工作。再有就是涉及到演算法的東西不能簡單的用軟體思維來考慮,這些公式都是有實際的物理意義的,不光要知道怎麼用,也要知道為什麼要這麼做。

11樓:裴斐

現在專用工具太多了 TI的 MICROCHIP的 matlab的響應的DSP庫到處都是, 真沒有必要自己去實現濾波器了。但是設計還是需要的,這是重點

12樓:貼身超薄不側漏

這個還是踏踏實實學比較好吧,FIR濾波器只是一小部分啊,要想應用到工程,恐怕並不是那麼容易的事情。調參的時候你就知道這種基礎知識多麼重要了。

13樓:

入門和精通的區別在於遇到問題怎麼定位和解決。

FIR濾波器原理上來說就是離散卷積。你可以選擇任何你喜歡的h,但這個h很有可能不能給你想要的頻率響應。 問題來了,到底怎麼設計h?這時候那些頻域,窗函式,Z變換就上場了

14樓:李夢龍

那麼問題來了:

1、是的

2、是的

3、複數域是很有必要的,工程中我們常常會解調出IQ兩路,用於複數域分析,這時候需要用到複數域的變換,至於Z變化也是很有用的,h係數如何來獲得,獲得後的h採數能否使系統穩定工作,都需要Z變化的數學分析,我認為這個在推導上很有用,你想想,我們需要的各種特性,可以用乙個數學上的不等式直接表示,推導最優解的時候,只要把這個不等式變等式,最優解就出來了,非複數域的分析都達不到這個效果的。

4、設計需要的濾波器確實不是個容易的活,你想想,如果乙個系數量化為16bit,8個係數的話總共有多少中組合方式,找出最優的,肯定不是個簡單的活,更別說工程上係數2,300階也常有的事。

15樓:

其實國外教材也是一樣的,最後幾章才開始講濾波器設計,隨機訊號處理。前面全是鋪墊。原因很簡單,邏輯就是這樣子的呀,你要處理訊號,就得會設計濾波器,要會設計,你就得會各種變換,知道理論。

至少計算機沒這麼發達前,你得會。就算現在用matlab的工具箱,你還得會設引數不是嗎?好教材,在哪都是很嚴謹的。

16樓:HughLiew

電子資訊工程出身,上過DSP

也許更多的教科書教的是FIR濾波器如何在電路中的實現吧,而不是僅僅教如何在計算機上實現吧

我DSP學的也不是太深,所以也不太清楚,來大神解釋

17樓:雲珩

這學期正在學數字訊號處理這門課程,前來答一題。

課程所用書籍為Sanjit.K.Mitra所著《數字訊號處理-基於計算機的方法》這本書。

看到有的答案裡說什麼切比雪夫逼近的,那個應該是模擬濾波器設計的吧。

FIR的設計方法就是選擇合適的窗函式(Hann Blackman等等),估計好窗函式的階數就好了,就這麼簡單~

隔壁IIR的設計在實際應用中就比FIR麻煩了,因為要給出確定的傳輸函式H(z)啊。噢,還有該死的有限字長效應這種鬼東西!

IIR濾波器效能比FIR好,階次要求的也低,就是麻煩些啦。

至於題主貼出來的那個公式,FIR就是這樣的簡單!

至於頻域,複數域,那是為了更好的分析模擬訊號的特徵的。

至於z域,就是為了分析數碼訊號的特徵。要知道還有DFT這種鬼東西呢

說白了,什麼z域s域頻域,都是為了從多個角度更好的分析理解並處理訊號的!

這麼想吧,如果把題主那個公式擺在那,怎麼分析這個序列能做高通,低通,帶阻? 於是呢,FIR濾波器分成了type1 type2 type3 type4,就是為了好分析啊,用的時候拿來就用啦!(雖然就我目前學到的FIR設計用加窗的方法,好像跟這四種FIR型別沒關係噢,但是!

給出h(n)序列很容易就能判斷它不能做哪種濾波器啦)

數字訊號處理是門理論性很強的課程。也不是說為了讓外行看不懂,這些域的變換都炒雞有用的!

明天就要考數字訊號處理這門課程了,複習狗刷知乎時湊巧答一下。語句不太通順或者不太好理解的就請多見諒。

答這題之前也沒有好好組織一下語言,如果有時間的話,過一陣子認認真真回答下樓主的問題~

希望有用喔

18樓:ZTYan

樓上各位都說得很好很全面了。補充兩點專案中的經驗。

1、題主的公式是描述FIR濾波器的一種方式,時域卷積就是濾波,對應頻域相乘。此外還有差分方程的描述方式,最古老的濾波方式是先把差分方程的係數存到數字訊號處理器的ROM中,然後將訊號輸入進行濾波,這種方式是時域濾波。

2、頻域濾波是先將x(n)和h(n)作FFT,將二者相乘以後再作IFFT。

時域濾波隨著濾波器階數的增加,運算量會很大。如果要求實時性的話,建議用頻域濾波,需要考慮是按點還是按幀進行處理,在頻域濾波的話就是對應FFT的點數。

19樓:XIVN1987

設計濾波器,也就是得到h陣列裡面的數很複雜,,但是也可以用Matlab裡面的FDATool來生成那些數,,在軟體裡面填寫幾個指標引數,,軟體自動生成那些引數

20樓:zpan

實現很簡單,但設計濾波器比較複雜。你可以隨便找一本數字訊號處理的教材,找上面的濾波器設計習題做一做,就有感受了。IIR 濾波器有時還能手算一下,稍微長一點的 FIR 就必須借助計算機來設計了。

21樓:鍍邊三

1、就是這個過程。

2、是。

3、講Z變換是為了講濾波器的性質,主要是IIR濾波器的性質。不是為了讓外行看不懂,是為了讓外行變成內行。

4、設計濾波器也可以只用這個式子。這個式子表示的是乙個關於h[n]的超定方程組,所以只有近似解。如何去近似,不同程度地會用到你說的那些非要去扯的東西。

另一方面,就說FIR低通濾波器,低通是頻域的概念,如果不講頻域,就說不清楚低通濾波器在頻域怎麼表示,更不可能說清楚在時域怎麼表示。表示不出來,怎麼用這個時域的式子去設計濾波器?

22樓:星辰大海的微光

工科狗,研究過好幾個系列的訊號與系統的教材。

1、從演算法實現來講,運算所需要的的確就是這個離散卷積公式,說得通俗一點,這個公式就是一串訊號進入乙個黑箱,在某個給定的時間點(比如3秒)的時候的輸出值。

2,H(s)的選擇、計算、確定後面的門道特別多。舉這麼個例子吧,對於乙個訊號,經過Fourier Transform後,變成了頻率、位相、振幅都不同的眾多正弦波的疊加,有些H(s)可以對振幅做很好的限制,但相位在傳輸過程中就亂掉了,這是我們說,這個濾波器頻域衰減很快,但相位特性較差。有些濾波器衰減的不是那麼快,但相位特性則是在什麼位相進來的,就在什麼位相出去,這時我們說頻域衰減慢,但相位特性平坦

現在大家用的濾波器基本就是那麼幾款,巴特沃斯濾波器、切比雪夫I型和II型濾波器、貝塞爾濾波器,在網上都能找到設計原型,改改引數就ok,但這只是針對沒有嚴格引數要求的工程而言的一種通用的解決方案,並且能勝任絕大多數的要求不高的工程。

濾波器濾波的本質是什麼?

阿鑫啊 濾波就是訊號的選擇,將通帶以外的訊號幅值削弱,模擬濾波器是為通帶外的訊號提供乙個對地的低阻抗迴路,因此能量是被訊號源內阻消耗掉了,數字濾波是通過計算將通帶外的訊號幅值減小,數字濾波自然不涉及到能量的問題 如夢亦如幻 我只回答濾波器的本質,濾波器的本質是其實是不同頻率的放大器。頻寬內訊號的放大...

透鏡為什麼可以看做低通濾波器?

煩糕 教授說的對,不只是透鏡成像,所有的成像系統都是低通濾波的 加後期的不算,比如孔徑合成 舉個簡單的栗子,一束平面波照射到樣品上,透射光受到樣品的調製,被調製的光攜帶著樣品的空間頻率資訊,傳播到了像平面。光波的波矢 是定值 平行於光軸的分量 負責光波的空間傳播 垂直於光軸的分量,負責攜帶樣品的空間...

為什麼很少拿神經網路來直接做濾波器呢?

Morris.Zhang 舉個例子 記得 Nature 有篇研報是 影象處理速度提公升2萬倍,感測器當神經網路用 這算是拿raw的data graph在感測器層面直接算的意思咯 analog有乙個運算思路就是模擬濾波電路 應該是取代視覺cnn asic的合理路徑,其它nn不適用吧 演算法前置 印刷 ...