日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用Matlab设计滤波器(FDAT)

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Matlab设计滤波器(FDAT) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/jbb0523/article/details/6782800

?

在matlab中有一個濾波器設計和分析工具FDAT,可以通過此工具來對濾波器進行設計。

matlab中一些簡單的命令:round(x)把x舍入到最近的整數(四舍五入)

??????????????????????????????????????? abs(x)計算x的絕對值

??????????????????????????????????????? sqrt(x)計算x的平方值

??????????????????????????????????????? fix(x)把x沿0的方向舍入到最近的整數值

??????????????????????????????????????? floor(x)把x舍入到比x小的最近的整數

????????????????????????????????????????ceil(x)把x舍入為比x大的最近的整數

要設計濾波器,首先要做的就是要知道各個系數。其實系數我們是可以通過matlab的FDAT工具來進行計算的。步驟如下:

(1)先打開matlab,然后點擊左下腳的start按鈕,選擇Toolboxes——>Filter Design ——>Filter Design &Analysis Tool,即可啟動FDATool。也可在matlab中執行fdatool來啟動FDATool。FDATool啟動后如下圖所示的窗口。

?

(2)按照要求自己設計濾波器。啟動FDATool后的界面就是濾波器的設計界面,如上圖所示,要從其它的界面進入濾波器的設計界面可以倒垃圾FDATool窗口坐下側的一列工具按鈕中的最下一個圖標filter design ,即可進入設計界面。在該界面中要進行濾波器的設計。首先要選擇濾波器的類型,濾波器的類型有高通、低通、帶通和帶阻,以及其它的好幾種。選擇好類型之后就要選擇設計方法,設計方法從大類上有兩種,一種是FIR,另一種是IIR。每一大類中又有很多種不同的方法。針對不同的設計方法,后面有不同的選項。然后就是濾波器的階數(filter order),如果是11階的濾波器則輸入10就可以了。設置完這些就需要設置濾波器的頻率特性和幅度特性了。其中Fs是采樣頻率,Fp是通帶截止頻率,Fs是阻帶截止頻率。后面的Apass是指通帶內允許的最大衰減,Astop是指阻帶內允許的最小衰減。設置完這些參數之后,按Design Filter就可以按要求設計出該濾波器了。

在本次舉例中設置如下圖:

(3)濾波器設計和性能分析 設計完成后需要對濾波器進行性能分析,檢查是不是符合要求。性能分析可通過單擊Analysis菜單,下面有很多子菜單來進行。 1、Magnitude Response(幅頻響應)圖略 2、Phase Response(相頻響應) 3、相幅聯合分析 4、沖擊響應(Analysis——>Impulse? Response后可得到如下的圖形)

?

5、濾波器的系數(這個是很重要的,也是我們想要的) Analysis——>Filter Coefficients之后會看到系數的。(圖略) 還有其他的分析,都省略了吧! (4)設置量化參數 matlab在計算系數時只是追求高精度而沒有考慮有限字長。我們在fpga中實現時字長是有限的,所以要對系數首先進行量化。點擊左下腳的Set Quantization parameter就可以設置量化參數了。

?默認時Turn quantization on是沒有選中的,只有選中之后才可以設置后面的各個項。選中Convert coefficients to 就可以設置系數的格式了。因為我們要在fpga要實現,所以在此次選擇定點數(fixed),如果選擇定點數則就需要選擇舍入模式,其中有round、fix、floor、ceil等各個的意義見開頭提到的幾個函數。也可在matlab中用help來查看各個命令的作用哦!(看看matlab是不是很人性啊!)后面是選擇溢出模式和定點數的數據格式的。Format中有兩個數字,前面一個呢是字的總長度,后面一個呢是小數的長度。如果你對某些選項還不太明白,那就找到這個選項對應的命令,然后help一下就可以了。 設置完成后在Filter Coefficient窗口最下面還可以看到對應的命令呢!這是不是很令人興奮啊!如下圖:

量化之后,依然可以用前面說過的幾種分析方法來對比量化前后的不同。 (5)導出系數 點擊File——>export,出現如下對話框。可以將系數導出到workspace空間中,以變量Num的形式存在。

但是變量Num都是小于1的數,所以還是不能用fpga來進行處理,所以要把它進行擴大。那到底要擴大多少倍呢,通過看資料我的理解就是在fpga處理中你的系數是幾位數就可以擴大多少倍。比如你的系數準備是9位數,那么你可以給Num乘以2的9次方。

? 又查了一些資料才發現,系數的量化實際可以直接通過下面的命令來實現: coeff=round(Num*2^9),(或者也可以coeff=round(Num/max(abs(Num))*32767))這樣得到的系數也是可以用的。如果要檢查你得到的系數是否可用,可以通過在matlab輸入這條指令:freqz(coeff,1,512)。輸入這個指令以后會出現下圖:

通過觀察這個圖就可以知道這個系數是不是正確了。

?

得到系數之后在fpga中如何實現呢,這篇寫的太長了,下篇繼續吧

總結

以上是生活随笔為你收集整理的利用Matlab设计滤波器(FDAT)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。