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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MATLAB的FIR半帶濾波器系數(shù)生成方法

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

matlab設(shè)計(jì)濾波器時(shí),我們會(huì)使用到fdatool工具, 首先大概說一下這個(gè)工具的使用。 假設(shè)我們需要設(shè)計(jì)一個(gè)半帶抽取濾波器: 采樣率Fs為122.88MHz。 通帶Fpass: 10 MHz, 帶內(nèi)波動(dòng): Apass: 0.001

d31cc172-010d-11ef-a297-92fbcf53809c.png

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

d3491768-010d-11ef-a297-92fbcf53809c.png

上述操作等效為以下matlab代碼:

Apass = 0.001;
Fpass = 10;
Fsa = 122.88;
 
z = 10 ^ (Apass / 20.0);
ap = (z - 1) / (z + 1);
fs = Fpass * 2 / Fsa;
 
b = firhalfband('minorder',fs,ap);
b = round(b*2^15);
plot(b);
grid;
I = find(b < 0); 
b(I) = 65536 + b(I);
c = [ dec2hex(b)]; 
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);

半帶抽取就是利用上述系數(shù)進(jìn)行濾波之后,2個(gè)點(diǎn)抽取1個(gè)點(diǎn)即可

半帶插值就是先插0,然后利用上述系數(shù)進(jìn)行濾波后,幅度會(huì)衰減一半,需要補(bǔ)償

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    179

    文章

    2946

    瀏覽量

    229462
  • 濾波器
    +關(guān)注

    關(guān)注

    158

    文章

    7596

    瀏覽量

    176580
  • 輸出波形
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    8918

原文標(biāo)題:利用matlab代碼來生成FIR 半帶濾波器系數(shù)

文章出處:【微信號(hào):FPGA十年老鳥,微信公眾號(hào):FPGA十年老鳥】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    基于matlab FPGA verilog的FIR濾波器設(shè)計(jì)

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

    零基礎(chǔ)學(xué)FPGA( 三十二) 寫在京城,多級(jí)FIR濾波器的FPGA實(shí)現(xiàn)

    相對(duì)于采樣頻率一的歸一化頻率跟通阻帶容限,自動(dòng)計(jì)算濾波器最小階數(shù)根據(jù)FIR濾波器的特點(diǎn)我們
    發(fā)表于 08-29 15:33

    濾波后的數(shù)據(jù)比濾波前的數(shù)據(jù)向前搬移了濾波器系數(shù)的一

    大家好,我最近在用C6748時(shí),需要用到濾波器,我就直接調(diào)用了里面的DSPF_sp_fir_r2函數(shù),濾波器系數(shù)我直接用MATLAB的fda
    發(fā)表于 06-25 08:37

    并行FIR濾波器Verilog設(shè)計(jì)

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

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)證 FIR濾波器是一種應(yīng)用廣泛的基本數(shù)字信號(hào)處理元件。
    發(fā)表于 05-13 17:16 ?54次下載

    MATLAB設(shè)計(jì)FIR濾波器方法

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

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)證 1 引言    FIR數(shù)字濾波器能夠滿足
    發(fā)表于 12-12 11:23 ?2521次閱讀
    基于<b class='flag-5'>MATLAB</b>與QUARTUS II的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>設(shè)計(jì)與驗(yàn)

    基于MatlabFIR濾波器的優(yōu)化設(shè)計(jì)方法

      通過實(shí)例介紹了基于MatlabFIR濾波器的優(yōu)化設(shè)計(jì)方法。3種結(jié)果比較發(fā)現(xiàn),在同樣階數(shù)下,優(yōu)化設(shè)計(jì)可以獲得最
    發(fā)表于 12-17 11:14 ?2073次閱讀
    基于<b class='flag-5'>Matlab</b>的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的優(yōu)化設(shè)計(jì)<b class='flag-5'>方法</b>

    基于MATLAB及FPGA的FIR低通濾波器的設(shè)計(jì)

    充分利用有限沖擊響應(yīng)數(shù)字濾波器(Finite Impulse Response digital filter ,FIR系數(shù)的對(duì)稱特性,借助于MATLAB語言和現(xiàn)場(chǎng)可編程門陣列(FPG
    發(fā)表于 08-05 14:23 ?82次下載
    基于<b class='flag-5'>MATLAB</b>及FPGA的<b class='flag-5'>FIR</b>低通<b class='flag-5'>濾波器</b>的設(shè)計(jì)

    基于MATLAB與FPGA的FIR濾波器設(shè)計(jì)與仿真

    數(shù)字濾波器是數(shù)字信號(hào)處理領(lǐng)域內(nèi)的重要組成部分。FIR濾波器又以其嚴(yán)格的線性相位及穩(wěn)定性高等特性被廣泛應(yīng)用。本文結(jié)合MATLAB工具軟件介紹了FIR
    發(fā)表于 09-25 11:34 ?120次下載
    基于<b class='flag-5'>MATLAB</b>與FPGA的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>設(shè)計(jì)與仿真

    基于matlab和fpga的FIR濾波器設(shè)計(jì)

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

    基于MATLABFIR濾波器設(shè)計(jì)與濾波

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

    基于Matlab和DSP設(shè)計(jì)FIR數(shù)字濾波器方案

    介紹了基于Matlab和DSP設(shè)計(jì)FIR數(shù)字濾波器的四種方法,并經(jīng)過實(shí)驗(yàn),將一個(gè)多頻率成分的信號(hào)通過該濾波器并進(jìn)行比對(duì),實(shí)驗(yàn)結(jié)果表明,這四種
    發(fā)表于 10-19 16:29 ?0次下載
    基于<b class='flag-5'>Matlab</b>和DSP設(shè)計(jì)<b class='flag-5'>FIR</b>數(shù)字<b class='flag-5'>濾波器</b>方案

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

    在Vivado調(diào)用fir濾波器時(shí),我們會(huì)遇到需要填充濾波器抽頭系數(shù)的問題,手工計(jì)算又不現(xiàn)實(shí),所以在此向大家介紹一個(gè)生成
    的頭像 發(fā)表于 03-25 09:49 ?1076次閱讀
    <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>的流程