99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

手把手教你用FPGA設計一個FIR數(shù)字濾波器

0
分享至

要求

設計一個帶通濾波器,并驗證其功能。

1、使用MATLAB設計濾波器系數(shù)

MATLAB首頁找到APP后找到濾波器設計工具并打開,使用該工具可以生成數(shù)字濾波器的系數(shù)后續(xù)用于FPGA配置FIR IP核。


打開濾波器設計工具后即可輸入相關參數(shù)并設計需要的濾波器,本次設計一個帶通濾波器,所以濾波器響應類型選擇帶通;設計方案選擇FIR(有限沖激響應);濾波器階數(shù)這里選擇最小階,也可以自己指定階數(shù),階數(shù)越大濾波器的濾波效果越好但越耗費FPGA資源,階數(shù)可以根據(jù)實際情況進行取舍;密度因子默認20;頻率設定,本次設計的采樣率設置為10MHz,濾波器的頻率特性設置可以按照圖示進行填寫,圖片指示的意義很清楚,F(xiàn)stop1為下限阻帶截止頻率,這里設置為50kHz,F(xiàn)pass1為下限通帶截止頻率,這里設置為100kHz,F(xiàn)pass2為上限通道截止頻率,這里設置為400kHz,F(xiàn)stop2為上限阻帶截止頻率,這里設置為450kHz(Fpass1-Fstop1和Fstop2-Fpass2為過渡帶寬度,本次設計的過渡帶寬度為50kHz;Fpass2-Fpass1為通帶寬度,本次設計的通帶寬度為400kHz;其余為阻帶);幅值設定,其中Astop為阻帶衰減的幅度值,本次設計阻帶衰減50dB,Apass為通帶的紋波,這里限制通帶紋波不超過0.1dB。


設置好以上參數(shù)后點擊濾波器設計,等待片刻即可設計好所需濾波器,從左側(cè)窗口當前濾波器信息中可以發(fā)現(xiàn)符合本次設計需求的最小階數(shù)為483階。


點擊工具欄:

可以查看濾波器幅值響應、相位響應、零極點等。

點擊工具欄文件--導出,即可導出設計的濾波器系數(shù)。導出后可以在工作區(qū)中看到濾波器系數(shù)的變量Num。


以下為本次導出的系數(shù),一共484個。


濾波器系數(shù)在FPGA中導入時每個系數(shù)之間需要逗號隔開,所以這里將系數(shù)保存到txt并使用逗號隔開,注意最后一個數(shù)的逗號需要刪除。


生成后的系數(shù)刪除最后的逗號。

2、FPGA中FIR的實現(xiàn)

這里省略FPGA工程建立過程,新建工程后點擊Create Block Design。


添加FIR IP核。


配置FIR IP核,F(xiàn)ilter Option中Select Source選擇Vector,Coefficient Vector中粘貼之前MATLAB生成的系數(shù),其余保持默認。左邊Freq.Response窗口中可以查看頻率響應曲線。


Channel Specification中主要配置采樣率和工作時鐘,input Sampling Frequency(MHz)配置10MHz采樣率,后續(xù)DDS工作時鐘需要和采樣率保持一致;Clock Frequency(MHz)配置200MHz后續(xù)FIR IP核的工作時鐘給200MHz。


Implement配置,Coefficient With可以根據(jù)需要進行配置,本次設計時配置成24,配置成24時通過查看左邊Freq.Response窗口可以發(fā)現(xiàn)兩條紅色和藍色曲線重合較接近理想曲線Ideal,所以這里配置成24,也可以根據(jù)需要進行配置。


Interface這里配置如下:


FIR配置完后再增加一個fifo,配置如下:


配置完后將FIR和fifo相連并引出接口:


最后右擊block design先generate Output ...再Create HDL...。


3、FPGA中DDS的實現(xiàn)

這里DDS用于產(chǎn)生FIR的輸入信號。同樣點擊Create Block Design,添加DDS IP核。


Configuration配置System Clock(MHz)為10MHz即可,其余保持默認配置。


Detailed Implementation配置如下:


最后輸出頻率配置成0.15MHz即150kHz,也可以根據(jù)需要進行配置。


按照上述配置再生成50kHz、350kHz、450kHz頻率的DDS。


生成完DDS后再生成一個fifo。該fifo用于跨時鐘域,將DDS產(chǎn)生的10MHz時鐘域的信號轉(zhuǎn)到200MHz時鐘域輸入FIR進行濾波。fifo配置如下,深度16,數(shù)據(jù)位寬16bit。


最后將生成的IP核按下圖連線,該dds用于測試fir濾波器。可以外部可以將DDS生成的350kHz和150kHz進行疊加后再輸入到fifo中,最后經(jīng)過跨時鐘域后從Multi_wave_M_AXIS輸出到FIR進行濾波,疊加后的波形存在和頻(500kHz)、差頻(200kHz),經(jīng)過濾波器后只剩下差頻200kHz,如果濾波器輸出200kHz正弦波則說明設計符合預期。也可以將單頻信號(50kHz/150kHz/350kHz/450kHz)輸入濾波器查看濾波器輸出幅度情況。


4、top模塊編寫

頂層模塊例化兩個block_design ,dds產(chǎn)生50kHz、150kHz、350kHz和450kHz的正弦信號,外部將dds生成的其中兩個信號做乘法后輸入到dds的fifo接口中,使相乘的信號從10Mhz時鐘域到200Mhz時鐘域,最后輸入到FIR中進行濾波。 如果需要測試FIR單頻信號的濾波器則可以將DDS輸出的其中一個信號與常數(shù)相乘后再輸入到FIR中進行測試。 另外top模塊中還需例化一個pll產(chǎn)生10MHz時鐘用于DDS產(chǎn)生信號,以及200MHz時鐘用于FIR。

module fir_top( input pl_ref_clk_100m_p, input pl_ref_clk_100m_n ); reg [4:0] cnt; wire clk_10m,clk_200m; wire signed [7:0] M_AXIS_50k_tdata; wire M_AXIS_50k_tvalid,M_AXIS_50k_tready; wire signed [7:0] M_AXIS_150k_tdata; wire M_AXIS_150k_tvalid,M_AXIS_150k_tready; wire signed [7:0] M_AXIS_350k_tdata; wire M_AXIS_350k_tvalid,M_AXIS_350k_tready; wire signed [7:0] M_AXIS_450k_tdata; wire M_AXIS_450k_tvalid,M_AXIS_450k_tready; wire signed [15:0] Multi_wave_S_AXIS_tdata; wire Multi_wave_S_AXIS_tvalid,Multi_wave_S_AXIS_tready; wire signed [15:0] Multi_wave_M_AXIS_tdata; wire Multi_wave_M_AXIS_tvalid,Multi_wave_M_AXIS_tready; wire signed [15:0] FIR_S_AXIS_tdata; wire FIR_S_AXIS_tvalid,FIR_S_AXIS_tready; wire signed [23:0] FIR_M_AXIS_tdata; wire FIR_M_AXIS_tvalid,FIR_M_AXIS_tready; assign rst_n = locked; // Multi_wave_S_AXIS assign Multi_wave_S_AXIS_tdata = M_AXIS_450k_tdata * 8'hff/*M_AXIS_350k_tdata */; assign Multi_wave_S_AXIS_tvalid = M_AXIS_450k_tvalid & 1/*M_AXIS_350k_tvalid */; assign M_AXIS_50k_tready = Multi_wave_S_AXIS_tready; assign M_AXIS_150k_tready = Multi_wave_S_AXIS_tready; assign M_AXIS_350k_tready = Multi_wave_S_AXIS_tready; assign M_AXIS_450k_tready = Multi_wave_S_AXIS_tready; // Multi_wave_M_AXIS assign FIR_S_AXIS_tvalid = Multi_wave_M_AXIS_tvalid; assign FIR_S_AXIS_tdata = Multi_wave_M_AXIS_tdata; assign Multi_wave_M_AXIS_tready = FIR_S_AXIS_tready; assign FIR_M_AXIS_tready = (cnt == 'd19) && Multi_wave_M_AXIS_tvalid; dds_design_wrapper dds_design( .M_AXIS_150k_tdata (M_AXIS_150k_tdata ), .M_AXIS_150k_tready (M_AXIS_150k_tready ), .M_AXIS_150k_tvalid (M_AXIS_150k_tvalid ), .M_AXIS_350k_tdata (M_AXIS_350k_tdata ), .M_AXIS_350k_tready (M_AXIS_350k_tready ), .M_AXIS_350k_tvalid (M_AXIS_350k_tvalid ), .M_AXIS_450k_tdata (M_AXIS_450k_tdata ), .M_AXIS_450k_tready (M_AXIS_450k_tready ), .M_AXIS_450k_tvalid (M_AXIS_450k_tvalid ), .M_AXIS_50k_tdata (M_AXIS_50k_tdata ), .M_AXIS_50k_tready (M_AXIS_50k_tready ), .M_AXIS_50k_tvalid (M_AXIS_50k_tvalid ), .Multi_wave_M_AXIS_tdata (Multi_wave_M_AXIS_tdata ), .Multi_wave_M_AXIS_tready(Multi_wave_M_AXIS_tready), .Multi_wave_M_AXIS_tvalid(Multi_wave_M_AXIS_tvalid), .Multi_wave_S_AXIS_tdata (Multi_wave_S_AXIS_tdata ), .Multi_wave_S_AXIS_tready(Multi_wave_S_AXIS_tready), .Multi_wave_S_AXIS_tvalid(Multi_wave_S_AXIS_tvalid), .aresetn (rst_n ), .clk_10m (clk_10m ), .clk_200m (clk_200m ) ); always@(posedge clk_200m or negedge rst_n)begin if(!rst_n)begin cnt <= 'd0; end else begin cnt <= (cnt == 'd19)? 'd0 : (cnt + 1'b1); end end bandpass_fir_wrapper bandpass_fir( .FIR_M_AXIS_tdata (FIR_M_AXIS_tdata ), .FIR_M_AXIS_tready (FIR_M_AXIS_tready ), .FIR_M_AXIS_tvalid (FIR_M_AXIS_tvalid ), .FIR_S_AXIS_tdata (FIR_S_AXIS_tdata ), .FIR_S_AXIS_tready (FIR_S_AXIS_tready ), .FIR_S_AXIS_tvalid (FIR_S_AXIS_tvalid ), .aresetn (rst_n ), .clk_200m (clk_200m ) ); clk_wiz_0 pll( .clk_10m(clk_10m), .clk_200m(clk_200m), // output clk_200m .reset(1'b0), // input reset .locked(locked), // output locked .clk_100m_in(clk_100m) // input clk_100m_in ); IBUFDS clk_100m_ibufds( .O (clk_100m), .I (pl_ref_clk_100m_p), .IB (pl_ref_clk_100m_n) ); endmodule

5、功能仿真

DDS產(chǎn)生的四個信號如下:

50kHz信號,一個時鐘周期的時間為102.31-82.31=20us,剛好為50kHz。


150kHz,一個時鐘周期的時間為82.51-75.91=6.6us,頻率約為151515Hz。


350kHz,一個是時鐘周期的時間為71.21-68.31=2.9us,頻率約為344827Hz。


450kHz,一個時鐘周期的時間為91.51-89.31=2.2us,頻率約為454545Hz。


將150kHz正弦和350kHz正弦疊加后輸入到FIR,輸入信號代碼修改如下(配圖中的頻率寫錯了,實際是150kHz和350kHz相疊加,圖片的是450kHz和350kHz,圖片上的組合也不影響測試FIR,因為兩個信號的和頻以及差頻為800kHz和100kHz,經(jīng)過濾波器后100kHz信號正常輸出而800kHz信號則被濾除):


兩個光標之間的間隔為112.975-102.975=10us,每個時鐘周期為5us,所以濾波器輸出的頻率為200kHz。由于輸入的信號為150kHz正弦波疊加350kHz的正弦波,疊加后的波形存在和頻500kHz和差頻200kHz,由于500kHz在濾波器通頻帶外,所以500kHz的信號會被濾除,經(jīng)過濾波器后只剩下200kHz的正弦波。所以仿真結果符合濾波器特性。仿真波形如下圖,其中FIR_M_AXIS_tdata信號為FIR濾波輸出信號。


將50kHz正弦信號輸入FIR,輸入信號代碼修改如下:50kHz信號與常數(shù)8‘hff疊加后輸入到FIR。


由于50kHz在濾波器帶外,所以經(jīng)過濾波器后幅度應該被衰減。仿真波形如下圖,F(xiàn)IR輸出信號FIR_M_AXIS_tdata被衰減,符合預期。


將150kHz正弦信號輸入FIR,輸入信號代碼修改如下:150kHz信號與常數(shù)8‘hff疊加后輸入到FIR。


由于150kHz在濾波器帶內(nèi),所以經(jīng)過濾波器后幅度不變。仿真波形如下圖,F(xiàn)IR輸出信號FIR_M_AXIS_tdata幅度正常,符合預期。


將350kHz正弦信號輸入FIR,輸入信號代碼修改如下:350kHz信號與常數(shù)8‘hff疊加后輸入到FIR。


由于350kHz在濾波器帶內(nèi),所以經(jīng)過濾波器后幅度不變。仿真波形如下圖,F(xiàn)IR輸出信號FIR_M_AXIS_tdata幅度正常,符合預期。


將450kHz正弦信號輸入FIR,輸入信號代碼修改如下:450kHz信號與常數(shù)8‘hff疊加后輸入到FIR。


由于450kHz在濾波器帶外,所以經(jīng)過濾波器后幅度應該被衰減。仿真波形如下圖,F(xiàn)IR輸出信號FIR_M_AXIS_tdata被衰減,符合預期。


6、結論

從仿真結果可知輸入信號不管是單頻信號還是疊加后的雙頻信號,結果都符合預期。相關工程源碼請點擊閱讀原文,在原貼中下載。

歡迎將我們設為“星標”,這樣才能第一時間收到推送消息。

關注下方“汽車開發(fā)圈”,回復“Auto”,免費領取Autosar入門與實踐資料包!

掃碼添加小助手回復“進群”

和電子工程師們面對面交流經(jīng)驗

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
特朗普麻煩大了?我方甩出最大“王牌”,不是美債,美國絕沒料到

特朗普麻煩大了?我方甩出最大“王牌”,不是美債,美國絕沒料到

傲氣經(jīng)說
2025-04-26 11:18:02
劉嘉玲調(diào)侃王菲:謝霆鋒演唱會門票怎么這么貴?王菲回復笑翻全場

劉嘉玲調(diào)侃王菲:謝霆鋒演唱會門票怎么這么貴?王菲回復笑翻全場

娛最資訊
2025-04-26 07:41:55
關稅戰(zhàn)不打了? 美財長提“棄臺”換免債,中方已用十個大字表態(tài)

關稅戰(zhàn)不打了? 美財長提“棄臺”換免債,中方已用十個大字表態(tài)

前沿天地
2025-04-26 23:28:25
初中女生遭多人侵犯后,家屬奔波三年要追責那個“案外”的生物學父親

初中女生遭多人侵犯后,家屬奔波三年要追責那個“案外”的生物學父親

澎湃新聞
2025-04-26 08:06:30
誰注意萬圣偉,離開廣東隊后胖成球,現(xiàn)在打野球為生,朱芳雨點贊

誰注意萬圣偉,離開廣東隊后胖成球,現(xiàn)在打野球為生,朱芳雨點贊

小嵩
2025-04-26 15:53:26
財聯(lián)社4月25日電,消息人士稱,美國總統(tǒng)特朗普在五月造訪沙特阿拉伯期間,可能向沙特提供超過1000億美元的軍火計劃。

財聯(lián)社4月25日電,消息人士稱,美國總統(tǒng)特朗普在五月造訪沙特阿拉伯期間,可能向沙特提供超過1000億美元的軍火計劃。

財聯(lián)社
2025-04-25 05:49:07
新官上任!王勵勤召回多位退役國手,封閉訓練,冠軍老將充當陪練

新官上任!王勵勤召回多位退役國手,封閉訓練,冠軍老將充當陪練

鋭娛之樂
2025-04-26 11:36:51
4月26日俄烏:美俄烏歐和平計劃大不同,俄愿意就停火做出讓步

4月26日俄烏:美俄烏歐和平計劃大不同,俄愿意就停火做出讓步

山河路口
2025-04-26 18:56:10
去更大的舞臺追夢——專訪中國男籃國手楊瀚森

去更大的舞臺追夢——專訪中國男籃國手楊瀚森

新華社
2025-04-26 06:54:06
中超最新積分戰(zhàn)報:深圳極限絕平,申花征服客場,山東倒下

中超最新積分戰(zhàn)報:深圳極限絕平,申花征服客場,山東倒下

足球狗說
2025-04-26 21:46:35
4天股價翻倍!抗癌概念股,全線爆發(fā)!

4天股價翻倍!抗癌概念股,全線爆發(fā)!

證券時報e公司
2025-04-26 21:20:45
網(wǎng)紅燕兒爺自曝出軌公公,多次開房染HPV,公公:誰睡不是睡

網(wǎng)紅燕兒爺自曝出軌公公,多次開房染HPV,公公:誰睡不是睡

社會醬
2025-04-09 17:18:03
汪小菲對具俊曄進行跨國訴訟,控訴其挪用子女撫養(yǎng)費8700萬買房

汪小菲對具俊曄進行跨國訴訟,控訴其挪用子女撫養(yǎng)費8700萬買房

顧蔡衛(wèi)
2025-04-26 22:56:01
《無憂渡》女演員夏依丹去世,年僅24歲,家人曝死因,長得漂亮

《無憂渡》女演員夏依丹去世,年僅24歲,家人曝死因,長得漂亮

180°視角
2025-04-25 10:40:09
盧靖姍節(jié)目首稱和韓庚前任女朋友成為閨蜜,嘆:我們會一起吐槽他

盧靖姍節(jié)目首稱和韓庚前任女朋友成為閨蜜,嘆:我們會一起吐槽他

阿廢冷眼觀察所
2025-04-26 14:03:59
王勵勤遇當頭一棒!國乒大潰敗,單打16人參賽15人出局;日本強勢

王勵勤遇當頭一棒!國乒大潰敗,單打16人參賽15人出局;日本強勢

莼侃體育
2025-04-26 08:27:26
深圳一隧道作業(yè)面出現(xiàn)異常,相關路段封閉,官方通報:已疏散附近居民!

深圳一隧道作業(yè)面出現(xiàn)異常,相關路段封閉,官方通報:已疏散附近居民!

每日經(jīng)濟新聞
2025-04-26 18:51:13
大冷門!頭號種子1:3被淘汰,2大世界冠軍出局,張本美和晉級4強

大冷門!頭號種子1:3被淘汰,2大世界冠軍出局,張本美和晉級4強

國乒二三事
2025-04-26 12:55:22
提拔領導干部的第三次浪潮到了!

提拔領導干部的第三次浪潮到了!

職場火鍋
2025-04-26 11:59:59
只因烽兩萬塊錢的事,結果讓江西少了一個創(chuàng)業(yè)女標兵

只因烽兩萬塊錢的事,結果讓江西少了一個創(chuàng)業(yè)女標兵

清暉有墨
2025-04-19 17:37:06
2025-04-27 00:56:49
EEWorld電子工程世界 incentive-icons
EEWorld電子工程世界
即時參與討論電子工程世界最火話題,搶先知曉電子工程業(yè)界資訊。
171文章數(shù) 14關注度
往期回顧 全部

科技要聞

百度心響實測:“能用版Manus”開了個好頭

頭條要聞

馬斯克和美財長激烈爭吵細節(jié)披露:胸口相抵 狂飆臟話

頭條要聞

馬斯克和美財長激烈爭吵細節(jié)披露:胸口相抵 狂飆臟話

體育要聞

廣廈19分勝遼寧獲開門紅 孫銘徽13分3助崴腳

娛樂要聞

金掃帚獎出爐,包貝爾意外獲“影帝”

財經(jīng)要聞

韓國的"宇樹科技" 是怎樣被財閥毀掉的?

汽車要聞

充電5分鐘續(xù)航100公里 探訪華為兆瓦超充站

態(tài)度原創(chuàng)

教育
旅游
健康
時尚
軍事航空

教育要聞

家長說現(xiàn)在連小學生的題目,自己都整不明白了

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

唇皰疹和口腔潰瘍是"同伙"嗎?

她美得好邪乎,讓人又怕又愛

軍事要聞

白宮爭吵后特朗普與澤連斯基"首度"碰面

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 武定县| 乌兰察布市| 营山县| 阆中市| 福州市| 独山县| 闸北区| 杂多县| 连山| 都兰县| 白玉县| 宁强县| 长顺县| 柳州市| 芮城县| 无极县| 伽师县| 贞丰县| 射洪县| 龙南县| 凌源市| 顺义区| 绥德县| 安丘市| 南京市| 富民县| 响水县| 南郑县| 孙吴县| 门头沟区| 揭东县| 福清市| 铜川市| 内黄县| 崇礼县| 西安市| 永吉县| 凯里市| 廊坊市| 柘荣县| 大化|