一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

基于FPGA的IIR數(shù)字濾波器設(shè)計(jì)

FPGA之家 ? 來源: FPGA開源工作室 ? 2023-09-07 09:51 ? 次閱讀

IIR(Infinite Impulse Response)無線脈沖響應(yīng)濾波器

系統(tǒng)傳遞函數(shù)為:

3cd08684-4d0f-11ee-a25d-92fbcf53809c.png

系統(tǒng)的差分方程可寫為:

3ce7a346-4d0f-11ee-a25d-92fbcf53809c.png

IIR優(yōu)缺點(diǎn):
1)在相同的幅頻條件下,濾波器階數(shù)比FIR濾波器低。
2)IIR濾波器占用的硬件資源比較少(相比FIR濾波器)。
3)不具備嚴(yán)格的線性相位特性。

1 IIR數(shù)字濾波器的基本結(jié)構(gòu)及類型

3cf4afaa-4d0f-11ee-a25d-92fbcf53809c.png

圖1 直接I型

3d069896-4d0f-11ee-a25d-92fbcf53809c.png

圖2 直接II型

3d279e9c-4d0f-11ee-a25d-92fbcf53809c.png

圖3 級(jí)聯(lián)型

3d344886-4d0f-11ee-a25d-92fbcf53809c.png

圖4 并聯(lián)型

2 設(shè)計(jì)目標(biāo)

采用matlab buffer函數(shù)設(shè)計(jì)一個(gè)IIR濾波器低通濾波器,通帶截止頻率為1khz,輸入信號(hào)為1khz+3khz sin波形,經(jīng)過IIR濾波器后輸出為1KHZ sin波,其他不做要求。(本文只對(duì)IIR設(shè)計(jì)思想進(jìn)行驗(yàn)證不做性能要求)。

3 matlab的設(shè)計(jì)驗(yàn)證

Matlab源碼:

%參數(shù)定義

FS =44100; %Sample rate Frequncy
fc = 1000; %1khz
fe = 3000; %外部輸入信號(hào)  3khz
N = 1024;
Q =16;

%波形產(chǎn)生

sin_osc =sin(t*fc);
sin_e =sin(t*fe);
sin_add = sin_osc+sin_e;

%IIR 濾波器系數(shù)(低通濾波器)

[b a] = butter(3,fc/(FS/2),'low');
 
%濾波(混頻后)
y = filter(b,a,sin_add);
 
f_osc =fft(sin_osc,N);
f_osc=20*log(abs(f_osc))/log(10);        %換算成dBW單位
ft=[0:(FS/N):FS/2];              %轉(zhuǎn)換橫坐標(biāo)以Hz為單位
f_osc=f_osc(1:length(ft));

%濾波器系數(shù)量化

Mab =max(max(abs(a),abs(b)));
%16bit 量化
Qb = round((b/Mab)*(2^(Q-1)-1));
Qa = round((a/Mab)*(2^(Q-1)-1));
%%%%
Qm =floor(log2(Mab/a(1)));
if Qm

%繪圖
%時(shí)域波形圖

figure(1),
hold on
subplot(221),plot(t(1:128),sin_osc(1:128),'-');
legend('sin 1khz');title('sin 1khz');
subplot(222),plot(t(1:128),sin_e(1:128),'-');
legend('sin 3khz');title('sin 3khz');
subplot(223),plot(t(1:128),sin_add(1:128),'-');
legend('sin 1khz add 3khz');title('sin 1khz add 3khz');
subplot(224),plot(t(1:128),y(1:128),'-');
legend('LPF 結(jié)果');title('LPF 結(jié)果');
grid;
hold off

%頻域波形

figure(2),
hold on
subplot(221);plot(ft,f_osc);
xlabel('頻率(Hz)','fontsize',8); ylabel('功率(dBW)','fontsize',8);
title('信號(hào)頻譜圖 2KHZ','fontsize',8);legend('sinosc');
subplot(222);plot(ft,f_e);
xlabel('頻率(Hz)','fontsize',8); ylabel('功率(dBW)','fontsize',8);
title('信號(hào)頻譜圖3KHZ','fontsize',8);legend('sine');
subplot(223);plot(ft,f_add);
xlabel('頻率(Hz)','fontsize',8); ylabel('功率(dBW)','fontsize',8);
title('信號(hào)頻譜圖2KHZ 和 3KHZ','fontsize',8);legend('sin add');
subplot(224);plot(ft,y_f);
xlabel('頻率(Hz)','fontsize',8); ylabel('功率(dBW)','fontsize',8);
title('信號(hào)頻譜圖濾波后','fontsize',8);legend('LPF結(jié)果');
hold off

%幅頻響應(yīng)

figure(3);
subplot(211);stem(Fb);
title('Fb單位抽樣響應(yīng)','fontsize',8);
subplot(212);plot(f,mag);
xlabel('頻率(Hz)','fontsize',8);
ylabel('幅度(dB)','fontsize',8);
title('freqz()幅頻響應(yīng)','fontsize',8);

3d4ef2d0-4d0f-11ee-a25d-92fbcf53809c.jpg

圖5 matlab時(shí)域波形

如圖5所示,(5,1)波形加(5,2)波形得到(5,3)波形,經(jīng)過IIR濾波器后得到(5,4)時(shí)域波形。

3d81f5e0-4d0f-11ee-a25d-92fbcf53809c.jpg

圖6 matlab頻域分析

如圖6所示,(6,3)與(6,4)相比3khz大概被削弱25DB左右。

3da0e02c-4d0f-11ee-a25d-92fbcf53809c.jpg
圖7 IIR幅頻響應(yīng)分析

如圖7所示,通過幅頻響應(yīng)(7,2)可知3khz所在位置大概被削弱25DB。

4 FPGA設(shè)計(jì)驗(yàn)證

FPGA IIR.v設(shè)計(jì)源碼:

`timescale 1ps/1ps
module iir(
       input               mclk,//45.1584MHZ
   input               reset_n,
   input  signed[31:0] pcm_in,
   output signed[31:0] pcm_out
   );
   
localparam LAST_CYCLE = 1023;
reg [9:0] i;

wire signed [15:0] b1,b2,b3,b4;
wire signed [15:0] a2,a3,a4;

wire signed [31:0] xn;
reg signed [31:0] xn1,xn2,xn3;
reg signed [31:0] yn,yn1,yn2,yn3;
reg signed [47:0] r_x1;
reg signed [47:0] r_x2;
reg signed [47:0] r_y;
reg signed [47:0] r_s;
reg signed [47:0] r_s1;

//coffe b
assign b1 = 3;
assign b2 = 8;
assign b3 = 8;
assign b4 = 3;

//coffe a
assign a2 = -22243;
assign a3 = 20231;
assign a4 = -6159;

assign xn = pcm_in;
assign pcm_out = yn;


always @(posedge mclk or negedge reset_n) begin
  if(reset_n == 1'b0) begin
    i <= 0;
xn1 <= 0;
xn2 <= 0;
xn3 <= 0;

yn <=  0;
yn1 <= 0;
yn2 <= 0;
yn3 <= 0;

r_x1 <= 0;
r_x2 <= 0;
r_y  <= 0;
r_s  <= 0;
r_s1 <= 0;
  end
  else begin
    i<= i+1;
  if(i==1) begin
  r_x1 <= b1*(xn + xn3);
  r_x2 <= b2*(xn1 + xn2);//Zero(n)
  r_y  <= a2*yn1+a3*yn2+a4*yn3;//Pole(n)
  $display("r_x1 = %d,r_x2 = %d,r_y = %d",r_x1,r_x2,r_y);
end
if(i==2) begin
   r_s <= r_x1 +r_x2 - r_y;//8192y(n) = Zero(n)-Pole(n)
   $display("%d",r_s);
end
if(i==3) r_s1 <= (r_s>>13);
if(i==4) yn <= r_s1[31:0];
if(i==5) begin //pipeline
  xn1 <= xn;
  xn2 <= xn1;
  xn3 <= xn2;
  
  yn1 <= yn;
  yn2 <= yn1;
  yn3 <= yn2;
end
  end
end

Endmodule

實(shí)驗(yàn)結(jié)果:
Modelsim

3dac0358-4d0f-11ee-a25d-92fbcf53809c.jpg

圖8 modelsim 時(shí)域波形

由圖8可知,pcm_out1(1khz + 3khz)經(jīng)過IIR濾波器后濾除了3khz,設(shè)計(jì)成功。
Matlab結(jié)果分析:
3de160d4-4d0f-11ee-a25d-92fbcf53809c.jpg

圖9 FPGA輸入波形matlab時(shí)域分析

3e0768c4-4d0f-11ee-a25d-92fbcf53809c.jpg

圖10 FPGA結(jié)果數(shù)據(jù)分析

由圖10的頻域分析結(jié)果可知3khz大概被削弱25db左右,設(shè)計(jì)成功。

審核編輯:湯梓紅

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

    關(guān)注

    1642

    文章

    21920

    瀏覽量

    612162
  • matlab
    +關(guān)注

    關(guān)注

    187

    文章

    2990

    瀏覽量

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

    關(guān)注

    162

    文章

    8011

    瀏覽量

    180514
  • 數(shù)字濾波器
    +關(guān)注

    關(guān)注

    4

    文章

    271

    瀏覽量

    47446
  • IIR
    IIR
    +關(guān)注

    關(guān)注

    1

    文章

    62

    瀏覽量

    23061

原文標(biāo)題:基于FPGA IIR數(shù)字濾波器的設(shè)計(jì)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGA和MATLAB實(shí)現(xiàn)IIR數(shù)字濾波器的設(shè)計(jì)和仿真驗(yàn)證分析

    IIR數(shù)字濾波器在很多領(lǐng)域中都有著廣闊的應(yīng)用。與FIR數(shù)字濾波器相比,IIR數(shù)字濾波器可以用較低的階數(shù)獲得較高的選擇性,而且所用存儲(chǔ)單元少,
    發(fā)表于 07-23 17:05 ?3049次閱讀
    基于<b class='flag-5'>FPGA</b>和MATLAB實(shí)現(xiàn)<b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>的設(shè)計(jì)和仿真驗(yàn)證分析

    IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

    本帖最后由 eehome 于 2013-1-5 10:01 編輯 IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)
    發(fā)表于 08-20 22:16

    基于FPGAIIR數(shù)字濾波器的設(shè)計(jì)和實(shí)現(xiàn)方法介紹

    1.引言數(shù)字濾波器在通信、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。其中IIR數(shù)字濾波器和FIR數(shù)字濾波器是目前人們使用較多的兩種。
    發(fā)表于 07-08 07:18

    基于FPGAIIR數(shù)字濾波器的快捷設(shè)計(jì)

    詳細(xì)討論了IIR數(shù)字濾波器從MATLAB設(shè)計(jì)到FPGA實(shí)現(xiàn)的整個(gè)過程,提出了用遞推算法解決實(shí)現(xiàn)過程中一些關(guān)鍵問題的方法,并在modelsim上進(jìn)行了仿真袁最終在以Xilinx公司的FPGA
    發(fā)表于 03-07 10:09 ?7次下載

    IIR數(shù)字濾波器的設(shè)計(jì)

    實(shí)驗(yàn) IIR數(shù)字濾波器的設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?1.掌握雙線性變換法及脈沖相應(yīng)不變法設(shè)計(jì)IIR數(shù)字濾波器的具體設(shè)計(jì)方法及其原理,熟悉用雙線性變換法及脈沖響應(yīng)不變法設(shè)計(jì)
    發(fā)表于 05-10 09:46 ?134次下載

    IIR數(shù)字濾波器設(shè)計(jì)-在FPGA上實(shí)現(xiàn)任意階IIR數(shù)字濾波器

    IIR數(shù)字濾波器設(shè)計(jì)-在FPGA上實(shí)現(xiàn)任意階IIR數(shù)字濾波器 摘 要:本文介紹了一種采用級(jí)聯(lián)結(jié)構(gòu)在FP
    發(fā)表于 01-16 09:45 ?2650次閱讀
    <b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>設(shè)計(jì)-在<b class='flag-5'>FPGA</b>上實(shí)現(xiàn)任意階<b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>

    FPGA設(shè)計(jì)的四階IIR數(shù)字濾波器

    FPGA設(shè)計(jì)的四階IIR數(shù)字濾波器 常用的數(shù)字濾波器有FIR數(shù)字濾波器IIR
    發(fā)表于 01-16 18:15 ?1506次閱讀
    用<b class='flag-5'>FPGA</b>設(shè)計(jì)的四階<b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>

    IIR數(shù)字濾波器設(shè)計(jì)

    介紹IIR數(shù)字濾波器設(shè)計(jì)的相關(guān)知識(shí) 有興趣的下來看看
    發(fā)表于 12-25 10:39 ?11次下載

    基于LabVIEW平臺(tái)的IIR數(shù)字濾波器設(shè)計(jì)

    基于LabVIEW平臺(tái)的IIR數(shù)字濾波器設(shè)計(jì)
    發(fā)表于 01-20 16:27 ?43次下載

    IIR數(shù)字濾波器FPGA實(shí)現(xiàn)

    本文檔內(nèi)容介紹了基于IIR數(shù)字濾波器FPGA實(shí)現(xiàn),供參考
    發(fā)表于 03-02 13:45 ?36次下載

    基于級(jí)聯(lián)結(jié)構(gòu)和VHDL語言的IIR數(shù)字濾波器FPGA上實(shí)現(xiàn)設(shè)計(jì)

    IIR數(shù)字濾波器在很多領(lǐng)域中有著廣闊的應(yīng)用。與FIR數(shù)字濾波器相比,它可以用較低的階數(shù)獲得高選擇性,所用存儲(chǔ)單元少,經(jīng)濟(jì)而效率高,在相同門級(jí)規(guī)模和相同時(shí)鐘速度下可以提供更好的帶外衰減特性。下面介紹一種在
    發(fā)表于 03-04 10:32 ?2381次閱讀
    基于級(jí)聯(lián)結(jié)構(gòu)和VHDL語言的<b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>在<b class='flag-5'>FPGA</b>上實(shí)現(xiàn)設(shè)計(jì)

    如何使用FPGA實(shí)現(xiàn)IIR數(shù)字濾波器的設(shè)計(jì)

    數(shù)字濾波器在通信、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。其中IIR數(shù)字濾波器和FIR數(shù)字濾波器是目前人們使用較多的兩種。
    發(fā)表于 08-06 18:50 ?3次下載
    如何使用<b class='flag-5'>FPGA</b>實(shí)現(xiàn)<b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>的設(shè)計(jì)

    IIR數(shù)字濾波器FPGA實(shí)現(xiàn)

    一、關(guān)于IIR數(shù)字濾波器 當(dāng)然關(guān)于IIR濾波器的知識(shí),想必大家在教材上都已經(jīng)很熟了,這里我就簡單說一下自己的理解好了。 正如前面說的,IIR
    的頭像 發(fā)表于 04-04 12:21 ?1.3w次閱讀
    <b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>的<b class='flag-5'>FPGA</b>實(shí)現(xiàn)

    FIR數(shù)字濾波器設(shè)計(jì)

    數(shù)字濾波器的輸入輸出均為數(shù)字信號(hào),信號(hào)通過數(shù)字濾波器后,可以改變頻率成分的相對(duì)比例或?yàn)V除某些頻率成分。數(shù)字濾波器可以分為IIR
    的頭像 發(fā)表于 04-05 09:47 ?5921次閱讀

    IIR數(shù)字濾波器時(shí)域濾波效果

    電子發(fā)燒友網(wǎng)站提供《IIR數(shù)字濾波器時(shí)域濾波效果.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 09:58 ?1次下載
    <b class='flag-5'>IIR</b><b class='flag-5'>數(shù)字濾波器</b>時(shí)域<b class='flag-5'>濾波</b>效果