0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用matlab代碼來生成FIR低通濾波器系數(shù)呢?

FPGA十年老鳥 ? 來源:FPGA十年老鳥 ? 2024-04-23 09:18 ? 次閱讀

首先大概說一下這個工具的使用。

假設我們需要設計一個濾波器

采樣率Fs為30.72MHz。

通帶Fpass: 9 MHz,

阻帶Fstop: 10MHz

帶內波動: Apass: 0.1

帶外抑制: Apass: 80

8e42d164-00c1-11ef-a297-92fbcf53809c.png

定點化,將系數(shù)歸一化,設置如下圖,確保輸入通帶的波形和輸出波形幅值基本不變。

8e5a1b4e-00c1-11ef-a297-92fbcf53809c.png

生成的COE文件可以直接被XILINX的 IP核使用。

如果上述生成濾波器系數(shù)的步驟,可以通過matlab代碼來實現(xiàn),則會更加的事半功倍。

例如,假如有一個這樣的需求

采樣率Fs為80MHz。

通帶Fpass: 9+n0.5 MHz, (0<=n<=40)

阻帶Fstop: 10+n0.5MHz (0<=n<=40)

帶內波動: Apass: 0.1

帶外抑制: Apass: 80

需要生成41組COE,每次都通過fdatool工具來進行生成,那將是繁瑣的。而我們可以通過以下代碼來簡化工作:


figure(1);
 
Apass = 0.1;
Astop = 80;
Fs = 30.72;
Fpass = 9;
Fstop = 10;
 
dev = [(10^(Apass /20)-1)/(10^(Apass /20)+1)  10^(-Astop/20)];
[n,fo,ao,w] = firpmord([Fpass Fstop] ,[1 0],dev,Fs);
b = firpm(n,fo,ao,w,{20});
bb = round(b*2^15);
plot(bb);
grid;
hold on;
I = find(bb < 0); bb(I) = 65536 + bb(I);
c = [ dec2hex(bb)]; 
fid1 = fopen('d:filter1.coe','w');  
fprintf(fid1,';Create by gzy de tool 
'); 
fprintf(fid1,'Radix = 16;
'); 
fprintf(fid1,'Coefficient_Width = 16;
');  
fprintf(fid1,'CoefData = 
');  
for i = 1 : length(b)-1  
    fprintf(fid1,'%s,
',c(i,end-3:end));    
end;  
fprintf(fid1,'%s;
',c(end,end-3:end));   
fclose(fid1);

上面的代碼與fdatool生成的定點化系數(shù)完全一致。



審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    180

    文章

    2956

    瀏覽量

    229868
  • 濾波器
    +關注

    關注

    159

    文章

    7670

    瀏覽量

    177212
  • 低通濾波器
    +關注

    關注

    13

    文章

    470

    瀏覽量

    47265
  • FIR
    FIR
    +關注

    關注

    4

    文章

    145

    瀏覽量

    33025

原文標題:利用matlab代碼來生成FIR 低通濾波器系數(shù)

文章出處:【微信號:FPGA十年老鳥,微信公眾號:FPGA十年老鳥】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在Matlab中實現(xiàn)不同窗低通濾波器的設計?

    Matlab中使用漢明窗設計低通濾波器可以通過fir1函數(shù)實現(xiàn)。漢明窗通常用于設計濾波器,可以提供更突出的頻率特性。
    的頭像 發(fā)表于 02-27 14:11 ?5171次閱讀
    如何在<b class='flag-5'>Matlab</b>中實現(xiàn)不同窗<b class='flag-5'>低通濾波器</b>的設計?

    Matlab生成fir濾波器抽頭系數(shù)

    在Vivado調用fir濾波器時,我們會遇到需要填充濾波器抽頭系數(shù)的問題,手工計算又不現(xiàn)實,所以在此向大家介紹一個生成
    發(fā)表于 04-30 16:17

    基于matlab FPGA verilog的FIR濾波器設計

    今天和大俠簡單聊一聊基于matlab FPGA verilog的FIR濾波器設計,話不多說,上貨。 本次設計實現(xiàn)8階濾波器,9個系數(shù)
    發(fā)表于 07-04 20:11

    如何設計低通FIR濾波器

    相位,簡單可擴展到多速率情況,以及充足的硬件支持除了其他原因之外。此示例展示了DSP System Toolbox?中用于設計具有各種特性的低通FIR濾波器的功能。內容獲得低通FIR濾波器
    發(fā)表于 08-23 10:00

    并行FIR濾波器Verilog設計

    對應一個系數(shù)。由理論知識可知,只有當FIR的h(n)對稱時,FIR濾波器才具有線性相位特性。使用MATLAB等工具設計
    發(fā)表于 09-25 17:44

    基于DSP的FIR數(shù)字濾波器設計與實現(xiàn)

    分析了FIR數(shù)字濾波器的基本原理,在MATLAB環(huán)境下利用窗函數(shù)設計FIR低通濾波器,實現(xiàn)了
    發(fā)表于 12-18 15:53 ?101次下載

    MATLAB設計FIR濾波器的方法

    MATLAB設計FIR濾波器的方法 摘? 要 介紹了利用MATLAB信號處理工具箱進行FIR
    發(fā)表于 01-16 18:12 ?1.5w次閱讀
    用<b class='flag-5'>MATLAB</b>設計<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的方法

    基于MATLAB及FPGA的FIR低通濾波器的設計

    充分利用有限沖擊響應數(shù)字濾波器(Finite Impulse Response digital filter ,FIR系數(shù)的對稱特性,借助于MAT
    發(fā)表于 08-05 14:23 ?82次下載
    基于<b class='flag-5'>MATLAB</b>及FPGA的<b class='flag-5'>FIR</b><b class='flag-5'>低通濾波器</b>的設計

    基于matlab和fpga的FIR濾波器設計

    基于matlab和fpga的FIR濾波器設計,有興趣的同學可以下載學習
    發(fā)表于 04-27 15:51 ?58次下載

    基于MATLABFIR濾波器設計與濾波

    基于MATLABFIR濾波器設計與濾波
    發(fā)表于 12-14 22:08 ?64次下載

    數(shù)字低通濾波器的設計

    本文主要介紹了數(shù)字低通濾波器的設計,數(shù)字濾波器有無限沖激響應(IIR)系統(tǒng)和有限沖激響應(FIR)系統(tǒng)兩種。利用MATLAB設計IIR
    發(fā)表于 01-14 15:16 ?1.9w次閱讀
    數(shù)字<b class='flag-5'>低通濾波器</b>的設計

    如何用matlab生成一個可編程FIR濾波器的硬件HDL代碼?

    01 概述 本文通過matlab自帶的工具箱生成一個可編程FIR濾波器的硬件HDL代碼,可生成V
    的頭像 發(fā)表于 05-03 09:37 ?3450次閱讀
    如何用<b class='flag-5'>matlab</b><b class='flag-5'>生成</b>一個可編程<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的硬件HDL<b class='flag-5'>代碼</b>?

    Matlab低通濾波器設定與實踐

    Matlab數(shù)字濾波器設計實踐—FIR 1低通濾波器設定 在理想情況下,低通濾波器使信號中低于指定截止頻率 ωc 的所有頻率分量保持不變,并
    的頭像 發(fā)表于 08-16 11:10 ?1.5w次閱讀
    <b class='flag-5'>Matlab</b><b class='flag-5'>低通濾波器</b>設定與實踐

    利用Matlab工具箱設計FIR和IIR濾波器

    利用Matlab工具箱設計FIR和IIR濾波器
    的頭像 發(fā)表于 09-26 14:59 ?918次閱讀

    Matlab生成fir濾波器抽頭系數(shù)的流程

    在Vivado調用fir濾波器時,我們會遇到需要填充濾波器抽頭系數(shù)的問題,手工計算又不現(xiàn)實,所以在此向大家介紹一個生成
    的頭像 發(fā)表于 03-25 09:49 ?1225次閱讀
    <b class='flag-5'>Matlab</b><b class='flag-5'>生成</b><b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>抽頭<b class='flag-5'>系數(shù)</b>的流程