色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

基于FPGA的橫向FIR濾波器設計詳解

FPGA之家 ? 來源:YXQ ? 2019-07-08 08:33 ? 次閱讀

關于FIR濾波器的設計,大多數(shù)文獻和資料都偏向于理論的介紹與闡述,使讀者在學習完這類文獻后只是明白了如何解決例題與習題,真正的動手設計FIR濾波器依然會覺得抽象很陌生,本文則是在理論的基礎上詳細闡述了如何基于Verilog HDL搭建的數(shù)字電路,來完成來完成FIR橫向濾波器的設計。

橫向FIR濾波器的設計

設經(jīng)過AD采集得到的輸入序列為x(n),其通過單位沖激響應為h(n)的因果FIR濾波器后,輸出y(n)在時域可表示為線性卷積和的形式:

其中N-1為FIR濾波器階數(shù)(也稱抽頭數(shù)),可以明顯的看出h(n)是長度為抽頭數(shù)加一的有限長序列,不失一般性的設抽頭數(shù)為3的FIR單位沖激響應h(n)為,

依卷積和畫出信號流程圖如下,

我們必須明確這里的自變量n表示的并非是連續(xù)時間,而是第N次AD采樣。

首先根據(jù)流程圖所示,我們需要設計一個關于x(n)的移位電路,其RTL視圖如下,

如圖所示的x(n)的移位功能在Verilog中可以通過如下代碼實現(xiàn),注意clk是與數(shù)據(jù)同步的AD的采樣率時鐘(AD當前數(shù)據(jù)建立后,采用一個脈沖標志可實現(xiàn))。

input clk;input signed[8:0] x_in;output reg signed [8:0] xn;output reg signed [8:0] xn_1;output reg signed [8:0] xn_2;output reg signed [8:0] xn_3;always@(posedge clk)	begin		xn   <= x_in;	//x(n)		xn_1 <= xn;	//x(n-1)		xn_2 <= xn_1;	//x(n-2)		xn_3 <= xn_2;	//x(n-3)	end

其次,為了設計方便,需要將浮點數(shù)轉換為定點運算,注意,N位的數(shù)據(jù)完成N*N乘法后,其結果的長度為2N位,為了配合乘法運算,我們需要采用18位補碼表示有符號數(shù)據(jù)(MSB為符號位),并對浮點數(shù)進行8位的量化處理(乘以256轉換為定點數(shù)運算,運算結果除以256可得到相應的浮點數(shù)),那么上述的系統(tǒng)的沖激響應h(n)可表示為(這里不可避免的引入了量化誤差),

對應的18位補碼有符號十進制數(shù)為,

電路RTL視圖如下,

如圖所示的x(n)移位后對應的乘法功能在Verilog中可以通過如下代碼實現(xiàn)。

input clk;input signed[8:0] x_in;output signed [17:0] mult0;output signed [17:0] mult1;output signed [17:0] mult2;output signed [17:0] mult3;reg signed [8:0] xn;reg signed [8:0] xn_1;reg signed [8:0] xn_2;reg signed [8:0] xn_3;always@(posedge clk)	begin		xn   <= x_in;		//x(n)		xn_1 <= xn;		//x(n-1)		xn_2 <= xn_1;		//x(n-2)		xn_3 <= xn_2;		//x(n-3)		endassign mult0 = xn * 18'd162;	//x(n)  *h(0)assign mult1 = xn_1 * 18'd134;	//x(n-1)*h(1)assign mult2 = xn_2 * 18'd218;	//x(n-2)*h(2)assign mult3 = xn_3 * 18'd262062;//x(n-3)*h(3)

最后,采用一級加法電路完成整個求卷積和的過程,需要注意的是,有符號的加法操作,需要對符合位進行保護,完成加法后數(shù)據(jù)的長度應設為2*N+log2(Tap+1)-1(其中Tap表示抽頭數(shù)),則本文需要的加法寄存器的長度為為19位(2*9+log(4)-1),并且取其高11位作為y(n)輸出(該操作等于除以256)其電路RTL視圖如下,

該結構的總體Verilog代碼如下。

module fir(	input clk,	input signed[8:0] x_in,	output signed [10:0] y_out);reg signed [8:0] xn;reg signed [8:0] xn_1;reg signed [8:0] xn_2;reg signed [8:0] xn_3;wire signed [17:0] mult0;wire signed [17:0] mult1;wire signed [17:0] mult2;wire signed [17:0] mult3;wire signed [18:0] adder0;always@(posedge clk)	begin		xn   <= x_in;		//x(n)		xn_1 <= xn;			//x(n-1)		xn_2 <= xn_1;		//x(n-2)		xn_3 <= xn_2;		//x(n-3)		endassign mult0 = xn * 18'd162;		//x(n)  *h(0)assign mult1 = xn_1 * 18'd134;	//x(n-1)*h(1)assign mult2 = xn_2 * 18'd218;	//x(n-2)*h(2)assign mult3 = xn_3 * 18'd262062;//x(n-3)*h(3)	assign adder0 = mult0 + mult1 + mult2 + mult3; //adder0(n)=x(n)*h(0)+x(n-1)*h(1)+x(n-2)*h(2)+x(n-3)*h(3)assign y_out = adder0[18:8];	//y(n)=adder0(n)/256endmodule

基于ModelSim求系統(tǒng)沖激響應與矩形脈沖響應

列寫testbench如下,

`timescale 1ns/1ns`define ad_clk 20module fir_tb;	reg						clk;	reg signed[8:0] 		x_in;	wire signed [10:0] 	y_out;		fir fir(		.clk(clk),		.x_in(x_in),		.y_out(y_out)	);	initial clk = 1;	always#(`ad_clk/2) clk = ~clk;		initial		begin			x_in = 9'd0;			#(`ad_clk*20);			#3;			x_in = 9'd100;			#(`ad_clk);			x_in = 9'd0;			#(`ad_clk*20);			x_in = 9'd100;			#(`ad_clk);			x_in = 9'd100;			#(`ad_clk);			x_in = 9'd100;			#(`ad_clk);			x_in = 9'd100;			#(`ad_clk);			x_in = 9'd100;			#(`ad_clk);			x_in = 9'd0;			#(`ad_clk*20);				$stop;			endendmodule

仿真求得對應的響應為

顯然,當輸入為x(n)=100δ(n)時,輸出為y(n)=100h(n)(存在著量化誤差),輸入為x(n)=100[u(n)-u(n-5)]時,輸出y(n)=[63δ(n) 115δ(n-1) 200δ(n-2) 168δ(n-3) 168δ(n-4) 105δ(n-5) 53δ(n-6) -33δ(n-7)]。

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

    關注

    1629

    文章

    21754

    瀏覽量

    604233
  • fir濾波器
    +關注

    關注

    1

    文章

    95

    瀏覽量

    19054

原文標題:基于FPGA的橫向FIR濾波器設計詳解——Bryan

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于FPGA實現(xiàn)FIR數(shù)字濾波器

    在數(shù)字信號處理系統(tǒng)中,有限脈沖響應(finite impulse response,FIR)數(shù)字濾波器是一個非常重要的基本單元。近年來,由于FPGA具有高速度、高集成度和高可靠性的特點而得到快速發(fā)展
    的頭像 發(fā)表于 11-05 16:26 ?714次閱讀
    基于<b class='flag-5'>FPGA</b>實現(xiàn)<b class='flag-5'>FIR</b>數(shù)字<b class='flag-5'>濾波器</b>

    具有可編程FIR和IIR濾波器的Δ-Σ ADC的優(yōu)點

    電子發(fā)燒友網(wǎng)站提供《具有可編程FIR和IIR濾波器的Δ-Σ ADC的優(yōu)點.pdf》資料免費下載
    發(fā)表于 09-03 11:48 ?0次下載
    具有可編程<b class='flag-5'>FIR</b>和IIR<b class='flag-5'>濾波器</b>的Δ-Σ ADC的優(yōu)點

    FIR濾波器的工作原理和特點

    FIR(Finite Impulse Response)濾波器,即有限長單位沖激響應濾波器,又稱為非遞歸型濾波器,是數(shù)字信號處理系統(tǒng)中最基本的元件之一。其名稱“有限長單位沖激響應”意味
    的頭像 發(fā)表于 08-05 16:33 ?1308次閱讀
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的工作原理和特點

    如何區(qū)分IIR濾波器FIR濾波器

    IIR(無限脈沖響應)濾波器FIR(有限脈沖響應)濾波器是數(shù)字信號處理領域中兩種非常重要的濾波器類型。它們在許多應用中都發(fā)揮著關鍵作用,如音頻處理、圖像處理、通信系統(tǒng)等。 1. 引言
    的頭像 發(fā)表于 07-19 09:44 ?5058次閱讀

    iir濾波器fir濾波器的優(yōu)勢和特點

    IIR濾波器FIR濾波器是數(shù)字信號處理領域中兩種非常重要的濾波器類型。它們各自具有獨特的優(yōu)勢和特點,適用于不同的應用場景。本文將介紹IIR濾波器
    的頭像 發(fā)表于 07-19 09:28 ?1647次閱讀

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

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

    matlab與FPGA數(shù)字信號處理系列 Verilog 實現(xiàn)并行 FIR 濾波器

    FPGA 實現(xiàn) FIR 濾波器時,最常用的是直接型結構,簡單方便,在實現(xiàn)直接型結構時,可以選擇串行結構/并行結構/分布式結構。 并行結構即并行實現(xiàn) FIR
    發(fā)表于 05-24 07:48

    DSP教學實驗箱_DSP算法實驗_嵌入式教程:4-3 有限沖激響應濾波器FIR)算法(CCS顯示)

    一、實驗目的 了解FIR濾波器的特點,掌握程序算法生成濾波器系數(shù)的方法,并實現(xiàn)FIR濾波器濾除高頻信號 二、實驗原理
    發(fā)表于 05-16 09:30

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

    在Vivado調用fir濾波器時,我們會遇到需要填充濾波器抽頭系數(shù)的問題,手工計算又不現(xiàn)實,所以在此向大家介紹一個生成系數(shù)的工具。 首先,我們打開matlab軟件,在命令窗口輸入fdatool并回
    發(fā)表于 04-30 16:17

    Vivado 使用Simulink設計FIR濾波器

    今天給大俠帶來Vivado經(jīng)典案例:使用Simulink設計FIR濾波器,話不多說,上貨。 FIR(Finite Impulse Response)濾波器:有限長單位沖激響應
    發(fā)表于 04-17 17:29

    基于多速率DA的根升余弦濾波器FPGA實現(xiàn)

    ,運算速度較慢。分布式算法(Distribute Arithmetic,DA)是另一種應用在FPGA中計算乘積和的算法。根據(jù)文獻[2],分布式算法結構的FIR濾波器利用FPGA中的查找
    發(fā)表于 03-25 14:21

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

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

    Vivado經(jīng)典案例:使用Simulink設計FIR濾波器

    FIR(Finite Impulse Response)濾波器:有限長單位沖激響應濾波器,又稱為非遞歸型濾波器,是數(shù)字信號處理系統(tǒng)中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格
    的頭像 發(fā)表于 03-25 09:18 ?2177次閱讀
    Vivado經(jīng)典案例:使用Simulink設計<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>

    FIR濾波器和IIR濾波器的區(qū)別與聯(lián)系有哪些

    FIR濾波器和IIR濾波器是數(shù)字信號處理中的兩種常見濾波器類型,它們在原理、結構和性能等方面存在顯著的差異與聯(lián)系。
    的頭像 發(fā)表于 01-29 16:41 ?2835次閱讀
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>和IIR<b class='flag-5'>濾波器</b>的區(qū)別與聯(lián)系有哪些

    全文詳解IIR濾波器原理與設計方法

    IIR濾波器具有很高的濾波效率,在相同幅頻響應條件下,所需的濾波器階數(shù)明顯比FIR濾波器低。其次,IIR
    發(fā)表于 01-22 09:25 ?1w次閱讀
    全文<b class='flag-5'>詳解</b>IIR<b class='flag-5'>濾波器</b>原理與設計方法
    主站蜘蛛池模板: 亚洲AV久久无码精品国产网站| 再深点灬舒服灬太大了在线视频 | 乌克兰粉嫩摘花第一次| 成人在线视频国产| 性生生活大片又黄又| 久久久精品免费视频| asian极品呦女xx农村| 偷拍亚洲色自拍| 久久热精品18国产| 超碰日韩人妻高清视频| 亚洲精品国产在线观看| 男污女XO猛烈的动态图| 国产精品麻豆高潮刺激A片| 中文日韩亚洲欧美字幕| 色欲AV亚洲午夜精品无码| 激情A片久久久久久久| 99蜜桃在线观看免费视频网站 | 国产成人小视频| 中文字幕日本一区| 沈阳熟女露脸对白视频| 久久影院午夜理论片无码| 观赏女性排尿| 在线亚洲免费| 乌克兰女人与动ZOZO| 么公在浴室了我的奶| 国产看午夜精品理论片| 99视频在线免费看| 亚洲一区国产| 思思久久99热只有频精品66| 恋孩癖网站大全在线观看| 国产精品女上位在线观看 | 亚洲无吗视频| 日韩欧美中文字幕在线| 久青草影院| 果冻传媒2021在线观看| 办公室韩国电影免费完整版| 淫品色影院| 亚洲精品123区在线观看| 日日噜噜大屁股熟妇| 免费看大黄高清网站视频在线| 好男人好资源在线观看|