專利名稱:低通連續可調濾波器和濾波方法
技術領域:
本發明涉及一種數字濾波器,屬于信號處理技術領域。
背景技術:
模擬信號處理中經常要用到通帶截止頻率可調的濾波器,如水聲信號處理、音頻信號處理等領域。通帶邊界頻率在幾百kHz以下連續可調的有源低通濾波器和可調開關電容濾波器較容易實現,幾百kHz的固定頻率有源濾波器的設計和實現也不存在太多困難,但要實現連續調節則有一定的困難。因為調節截止頻率就是要調節電路中的電阻或電容或兩者都調節。在較低頻率時可以考慮用模擬開關或數字電位器實現電阻或電容的切換或調整,但隨著頻率的增加,模擬開關和數字電位器的寄生電容開始影響濾波器的特性,頻率上升到一定程度時,分布參數的影響將導致濾波器調試非常困難。
發明內容
本發明針對上述問題,提供一種能夠實現連續調節通帶截止頻率的低通數字濾波器,并提供一種此種濾波器所采樣的濾波方法,利用本發明的濾波器和濾波方法,能夠隨時根據鍵盤輸入調整頻率,方便迅速地調節通帶截止頻率。
本發明的低通連續可調濾波器,包括DSP、A/D轉換器、D/A轉換器、輸入同步FIFO緩沖區、輸出同步FIFO緩沖區,存儲器,時鐘發生器;其中(1)A/D轉換器將輸入的模擬信號轉換成數字信號,并存入輸入同步FIFO緩沖區;(2)存儲器里存儲有根據所設定的窗函數、濾波階數、采樣頻率和阻帶頻率相對于通帶截止頻率的比值計算出的FIR(有限沖激響應)濾波器濾波系數和FIR濾波運算子程序;(3)DSP根據所輸入的需要調整的通帶截止頻率,計算采樣頻率,改變時鐘發生器輸出頻率,將調整后的通帶截止頻率存入存儲器;調用FIR濾波運算子程序,對輸入同步FIFO(先進先出)緩沖區內存儲的數值進行濾波運算,濾波運算的結果存入輸出同步FIFO緩沖區;(4)D/A轉換器將輸出同步FIFO緩沖區存儲的數據轉換成模擬信號并輸出;(5)時鐘發生器在DSP的控制下生成同步時鐘信號,作用于A/D轉換器、D/A轉換器、輸入同步FIFO緩沖區輸入時鐘、輸出同步FIFO緩沖區輸出時鐘。
上述技術方案中,時鐘發生器可采用直接數字頻率合成器。
本發明還提供一種上述低通連續可調濾波器所采用的濾波方法,包括如下步驟
(1)首先根據所設定的窗函數、濾波階數、采樣頻率和阻帶頻率相對于通帶截止頻率的比值計算出FIR濾波器濾波系數,并將FIR濾波器濾波系數和FIR濾波運算子程序存入存儲器內;(2)DSP判斷是否需要調整通帶截止頻率,如果需要,從鍵盤接收所要調整的通帶截止頻率,計算采樣頻率,改變時鐘發生器輸出頻率,并將通帶截止頻率存入存儲器(本步驟的判斷程序應當為循環執行的程序);(3)A/D轉換器將輸入的模擬信號轉換成數字信號,并存入輸入同步FIFO緩沖區;(4)DSP調用FIR濾波運算子程序,對輸入同步FIFO緩沖區內存儲的數值進行濾波運算,濾波運算的結果存入輸出同步FIFO緩沖區。
(5)D/A轉換器將輸出同步FIFO緩沖區存儲的數據轉換成模擬信號并輸出;(6)時鐘發生器在DSP的控制下生成同步時鐘信號,作用于A/D轉換器、D/A轉換器、輸入同步FIFO緩沖區輸入時鐘、輸出同步FIFO緩沖區輸出時鐘。
上述技術方案中,最好時鐘發生器可采用直接數字頻率合成器。
本發明根據當阻帶截止頻率與通帶截止頻率之比是一個常數且采樣頻率與通帶截止頻率之比也是一個常數時,低通FIR濾波器的階數及濾波器的沖擊響應與通帶截止頻率無關的原理,在較寬頻帶內實現通帶截止頻率的連續可調,調節精度可達0.5Hz,具有調節精度高,方便快捷的優點。
圖1本發明的濾波器的總體結構框圖;圖2本發明的濾波器主程序流程圖。
具體實施例方式
在下面根據附圖和實施例對本發明作進一步詳細介紹。
圖1是本發明的低通濾波器的總體結構框圖。主要包括輸入信號緩沖及調理電路、A/D轉換器、輸入緩沖FIFO、DSP及外圍電路、輸出緩沖FIFO、D/A轉換器等幾部分。其中DSP及外圍電路包括程序存儲器、串行口、顯示及鍵盤接口等。串行口用于實現和PC機的通信,可以通過PC機對濾波器的控制。
假定輸入模擬信號為帶限信號。該信號經緩沖和調理后經A/D變換進入輸入緩沖FIFO。當FIFO中的數據達到一定數量時產生中斷,DSP將數據讀入內存中并進行計算和處理,這里DSP主要實現FIR濾波運算。處理后的數據寫入輸出FIFO中,之后通過D/A變換后輸出模擬信號。輸出的信號是低通濾波后的結果。
圖1中,AD9850是AD公司的DDS(直接數字頻率合成)芯片,其接口簡單,可通過8位并行口或串行口對其進行設置。在32位頻率控制字和125MHz時鐘情況下,其輸出頻率分辨率可達0.0291Hz。本發明選用AD9850作為時鐘發生器。
AD9850的輸出時鐘頻率由DSP進行設置,該頻率取濾波器通帶截止頻率的6倍,如通帶截止頻率為20kHz時,設置AD9850的輸出頻率為120kHz,通帶截止頻率為1MHz時,設置AD9850的輸出頻率為6MHz。因此,當AD9850的輸出頻率調整步長為6Hz時就可以實現通帶截止頻率1Hz的調整。
在本實施例中,DSP、輸入FIFO的輸出時鐘及輸出FIFO的輸入時鐘采用的是同一主時鐘,而D/A轉換器、A/D轉換器、輸入FIFO的輸入時鐘及輸出FIFO的輸出時鐘由AD9850提供。為D/A轉換器提供時鐘是因為要實現采樣頻率的調整,從而調整通帶截止頻率;為輸出FIFO的輸出和D/A提供時鐘是為了保證輸出數據速率與輸入采樣速率一致,從而保證輸出模擬信號的連續性。兩個時鐘的采用是為了既保證DSP的高速運算又保證采樣頻率的可調及輸出模擬信號的連續。
為了說明截止頻率調整的原理,這里簡單敘述一下窗函數法設計FIR濾波器。
設濾波器的通帶截止頻率為fp,阻帶截止頻率為fs,系統采樣頻率為fsamp。則其過渡帶寬度為ftw=fs-fp過渡帶寬數字角頻率為ωtw=2πftwfsamp=2πfs-fpfsamp]]>各種窗函數的過渡帶寬可用xπ/N表示,其中N是濾波器階數,x是一個整數,對應于矩形窗、三角形窗、漢寧窗(Hanning)、漢明窗(Hamming)、布萊克曼窗及凱塞窗,其值分別為4、8、8、8、12、10。所以濾波器的階數N可由下式求得N=xπωtw=x·fsamp2·(fs-fp)]]>理想低通濾波器的沖擊響應為hd(n)=sin(ωc(n-α))π(n-α)]]>其中α=(N-1)/2,ωc是3dB通帶截止數字角頻率,其值為ωc=ωp·22=2πfpfsamp---(5)]]>加窗后低通濾波器的沖擊響應為h(n)=hd(n)w(n) (6)當阻帶截止頻率與通帶截止頻率之比是一個常數,并使得采樣頻率與通帶截止頻率之比也保持是一個常數時,低通FIR濾波器的階數N及濾波器的沖擊響應與通帶截止頻率無關。因此DSP的計算算法(包括系數)不需要隨截止頻率做任何的改變。據此,可以實現連續可調的低通FIR數字濾波器,實現過程如下。
1.根據設計指標,選擇合適的窗函數,計算FIR低通濾波器的階數和系數;2.在濾波器階數N及系數不變的情況下,只要改變采樣頻率fsamp就可以改變低通濾波器的通帶截止頻率,并能保證濾波器的衰減特性。
以一個20kHz-1MHz連續可調濾波器的設計為例說明設計過程,具體指標如下1.通帶截止頻率20kHz-1MHz連續可調,調整精度1Hz;2.倍頻程阻帶衰減≥50dB,濾波器帶內波動<0.5dB;所設計低通濾波器的倍頻程阻帶衰減≥50dB,這一點可以滿足阻帶截止頻率與通帶截止頻率之比為一常數2的條件。在實際實現中,再使采樣頻率與通帶截止頻率之比也是一個常數,設其值為6。則有ωp=2πfpfsamp=2πfp6fp=13π]]>ωs=2ωp=23π]]>阻帶衰減As=50dB根據以上濾波器的指標,采用漢明窗,可以計算出濾波器的參數,其結果如下所示。
濾波器階數N=22濾波器系數為h(0)=h(21)=-0.0017155 h(1)=h(20)=0.0023805 h(2)=h(19)=0.0042365h(3)=h(18)=-0.0076014 h(4)=h(17)=-0.012884 h(5)=h(16)=0.0207h(6)=h(15)=0.032141 h(7)=h(14)=-0.049536 h(8)=h(13)=-0.079006h(9)=h(12)=0.14327h(10)=h(11)=0.44801根據這些參數,選用適當的濾波算法,編制FIR濾波運算子程序,可以實現低通FIR濾波器。至于FIR濾波算法,現有技術中已經有多種算法,這里不再贅述。
濾波器的軟件要實現的功能主要是FIR濾波。參見圖2,DSP主程序的工作流程根據按鍵輸入的頻率,DSP計算出應對DDS設置的狀態字并對進行設置,DDS將按設置的頻率輸出時鐘。A/D轉換后的數據進入FIFO中,當到達設置的數據量時將產生中斷,DSP將輸入FIFO中的數據讀入并調用FIR濾波運算子程序進行FIR運算。運算完成后的數據寫入輸出FIFO。輸出FIFO中的數據將按照與A/D轉換同樣的速率輸出到D/A變換器中并產生模擬輸出。這樣,只要保證FIR運算足夠快就可以既不會產生數據溢出,也不會輸出數據不足。
權利要求
1.一種低通連續可調濾波器,包括DSP、A/D轉換器、D/A轉換器、輸入同步FIFO緩沖區、輸出同步FIFO緩沖區,存儲器,時鐘發生器;其中(1)A/D轉換器將輸入的模擬信號轉換成數字信號,并存入輸入同步FIFO緩沖區;(2)存儲器里存儲有根據所設定的窗函數、濾波階數、采樣頻率和阻帶頻率相對于通帶截止頻率的比值計算出的FIR濾波器濾波系數和FIR濾波運算子程序;(3)DSP根據所輸入的需要調整的通帶截止頻率,計算采樣頻率,改變時鐘發生器輸出頻率,將調整后的通帶截止頻率存入存儲器;調用FIR濾波運算子程序,對輸入同步FIFO緩沖區內存儲的數值進行濾波運算,濾波運算的結果存入輸出同步FIFO緩沖區;(4)D/A轉換器將輸出同步FIFO緩沖區存儲的數據轉換成模擬信號并輸出;(5)時鐘發生器在DSP的控制下生成同步時鐘信號,作用于A/D轉換器、D/A轉換器、輸入同步FIFO緩沖區輸入時鐘、輸出同步FIFO緩沖區輸出時鐘。
2.根據權利要求1所述的低通連續可調濾波器,其特征在于,所述時鐘發生器為直接數字頻率合成器。
3.一種權利要求1所述的低通連續可調濾波器所采用的濾波方法,包括如下步驟(1)首先根據所設定的窗函數、濾波階數、采樣頻率和阻帶頻率相對于通帶截止頻率的比值計算出FIR濾波器濾波系數,并將FIR濾波器濾波系數和FIR濾波運算子程序存入存儲器內;(2)DSP判斷是否需要調整通帶截止頻率,如果需要,從鍵盤接收所要調整的通帶截止頻率,計算采樣頻率,改變時鐘發生器輸出頻率,并將通帶截止頻率存入存儲器。(3)A/D轉換器將輸入的模擬信號轉換成數字信號,并存入輸入同步FIFO緩沖區;(4)DSP調用FIR濾波運算子程序,對輸入同步FIFO緩沖區內存儲的數值進行濾波運算,濾波運算的結果存入輸出同步FIFO緩沖區。(5)D/A轉換器將輸出同步FIFO緩沖區存儲的數據轉換成模擬信號并輸出;(6)時鐘發生器在DSP的控制下生成同步時鐘信號,作用于A/D轉換器、D/A轉換器、輸入同步FIFO緩沖區輸入時鐘、輸出同步FIFO緩沖區輸出時鐘。
4.根據權利要求3所述的濾波方法,其特征在于,所述時鐘發生器為直接數字頻率合成器。
全文摘要
本發明屬于信號處理技術領域,涉及一種低通連續可調濾波器,包括DSP、A/D轉換器、D/A轉換器、輸入同步FIFO緩沖區、輸出同步FIFO緩沖區,存儲器,時鐘發生器。存儲器里存儲有根據所設定的窗函數、濾波階數、采樣頻率和阻帶頻率相對于通帶截止頻率的比值計算出的FIR濾波器濾波系數和FIR濾波運算子程序;DSP根據所輸入的需要調整的通帶截止頻率,計算采樣頻率,改變時鐘發生器輸出頻率,將調整后的通帶截止頻率存入存儲器。本發明同時提供一種此種濾波器適用的濾波方法。本發明的濾波器和濾波方法,在較寬頻帶內實現通帶截止頻率的連續可調,調節精度可達0.5Hz,具有調節精度高,方便快捷的優點。
文檔編號H03H17/02GK1976224SQ200610130270
公開日2007年6月6日 申請日期2006年12月15日 優先權日2006年12月15日
發明者郭繼昌, 李鏘, 李香萍 申請人:天津大學