freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于matlab16階fir低通濾波器的設(shè)計畢業(yè)設(shè)計論文-資料下載頁

2025-02-26 09:57本頁面
  

【正文】 04 204 204 204 204。 QuartusII仿真波形如圖 57所示,可以看出,在 7個 clkin脈 沖后,得到濾波結(jié)果,且是流水線的輸出方式。 用 Matlab卷積計算并和 QuartusII的仿真結(jié) 果比較, 如表 52所 示。 表 52結(jié) 果的比較,有 一 定的誤差,但不是很大。誤差主要來源是:系數(shù)量化的量 化誤差;計算結(jié)果的取舍誤差等。將 QuartusII仿真結(jié)果經(jīng) Matlab中還 原成波形,如 圖 58; QuartusII輸入 50kHz方波 X_in和通過 FIR濾波 器后的輸出波形 y比較如圖 59所示 。 此圖表明,仿真結(jié)果正確 , 50kHz方 波被濾波器改變了頻率成分。 圖 57 輸入 50kHz方波序列 X_in通過 FIR濾波器的 QuartusII仿真輸出 y序列 圖 58 Matlab輸入 50kHz方波序列 X_in和通過 FIR濾波器后的輸出序列 y比較圖 圖 59 QuartusII輸入 50kHz方波序列 X_in和通過 FIR濾波器后的輸出序列 y比較圖 表 52 輸入 50kHz方波序 列 x(n)的 Matlab卷積計算結(jié)果與 QuartusII的仿真結(jié)果比較 序號 輸入 x( n) Matlab 計算結(jié)果 QuartusII 計算結(jié)果 0 22 3 2 1 22 11 11 2 22 19 19 3 22 23 23 4 22 23 23 5 22 24 22 6 22 21 21 7 22 12 12 8 22 12 12 9 22 46 45 10 204 113 113 11 204 180 180 12 204 214 213 13 204 214 213 14 204 204 204 15 204 199 201 16 204 204 203 17 204 214 213 18 204 214 213 19 204 180 180 ... ... ... ... FIR數(shù)字濾波器的濾波系數(shù),輸入輸出序列值和運算過程中的中間結(jié)果,都是用有限字長的二進(jìn)制表示。往往位數(shù)越長,數(shù)據(jù)的精度越高。這樣,不論是選用串行 DA算法還是并行 DA算法,都要求更大的硬件資源,如果對運算速度還有限制的話,則串行 DA算法不能滿足要求。因此,在數(shù)據(jù)位數(shù)有 限的情況下,便會產(chǎn)生誤差,使輸出結(jié)果偏離預(yù)期值,并使系統(tǒng)不能滿足預(yù)期的設(shè)計要求。這種誤差主要包括三個方面 【 20】 : ( 1) A/D 轉(zhuǎn)換器的量化誤差 A/D 轉(zhuǎn)換器用于將模擬信號轉(zhuǎn)換為一定位寬的數(shù)字信號。數(shù)字信號可看作模擬信號的一種逼近,因而會產(chǎn)生偏差,我們把這種偏差稱為量化偏差,用符號 )(ne 表示。 )(ne 的存在降低了輸出端的信噪比。適當(dāng)?shù)卦黾?A/D 轉(zhuǎn)換器的轉(zhuǎn)換位數(shù),會增加輸出端的信噪比,以滿足實際的需求。 ( 2)系數(shù)量化偏差 FIR 濾 波器在實際實現(xiàn)時,要對所有的濾波器系數(shù)進(jìn)行量化以有限長的二進(jìn)制碼表示。這樣,便會產(chǎn)生由系數(shù)量化而引起的誤差,這種誤差會引起頻率響應(yīng)的變動,進(jìn)而不能滿足實際需要。系數(shù)量化誤差和 FIR濾波器的結(jié)構(gòu)及儲存系數(shù)的寄存器的長度有關(guān)。 ( 3)中間結(jié)果的舍入誤差 由于設(shè)計中采用的是定點制運算,在預(yù)相加和移位累加的過程中,會使得到結(jié)果的尾數(shù)增長,這時需要進(jìn)行尾數(shù)處理,在這個過程中便引入了誤差。例如,在設(shè)計中,預(yù)相加模塊的輸入數(shù)據(jù)為 8 位,為保證結(jié)果正確性,需要先擴(kuò)展一位符號位,然后再相加,得到 9位的結(jié)果,而我們需要的是 8位字 長的結(jié)果,所以需要截取高8 位,也就是將預(yù)相加模塊的輸出結(jié)果縮小 2 倍,使得數(shù)據(jù)精度隨之減小。而后在移位相加過程中,將輸出結(jié)果擴(kuò)大 2倍,由于數(shù)據(jù)精度發(fā)生變化,而產(chǎn)生了誤差 [13]。 結(jié) 論 在介紹 FIR 濾波器的基本理論的基礎(chǔ)上,設(shè)計利用 基于 Matlab 設(shè)計工具設(shè)計出了 16階 FIR 低通濾波器,達(dá)到了預(yù)期的性能。 對于 FIR濾波器的硬件實現(xiàn),設(shè)計采用了自頂向下的層次化、模塊化的設(shè)計思想,用 VHDL 語言描述了各個子模塊,使用 QUARTUSII 軟件進(jìn)行了時序仿真,最 后的結(jié)果證明所設(shè)計的 16 階 FIR 低通濾波器功能正確,能夠滿足一般應(yīng)用的要求。 附錄 一、預(yù)處理 library ieee。 use 。 use 。 entity signed_buma is port ( X_in : in std_logic_vector(7 downto 0)。輸入 clk : in std_logic。輸入信 號 50MHz buma : out std_logic_vector(7 downto 0)補(bǔ)碼輸出 )。 end signed_buma。 architecture arc of signed_buma is signal temp:std_logic_vector(7 downto 0)。中間信號 signal b:std_logic。中間信號 begin b=X_in(7)。 a:process(clk) begin if clk39。event and clk=39。139。 then if b=39。139。 then temp=(X_in(7)amp。(not X_in(6))amp。(not X_in(5))amp。(not X_in(4))amp。 (not X_in(3))amp。(not X_in(2))amp。(not X_in(1))amp。(not X_in(0)))+39。139。 else temp=X_in。 end if 。 end if。 end process。 buma=temp。 end arc。 二、移位寄存器 library ieee。 use 。 entity delay is 延時 port ( X_in : in std_logic_vector(7 downto 0)。濾波器輸入 clk : in std_logic。輸入時鐘 a0,a1,a2,a3,a4,a5,a6,a7: buffer std_logic_vector(7 downto 0)。 寄存器 a8,a9,a10,a11,a12,a13,a14,a15:buffer std_logic_vector(7 downto 0)寄存器 )。 end delay。 architecture one of delay is begin process(clk) begin if clk39。event and clk=39。139。 then a15=a14; a14=a13; a13=a12; a12=a11; a11=a10; a10=a9; a9=a8; a8=a7; a7=a6; a6=a5; a5=a4; a4=a3; a3=a2; a2=a1; a1=a0; a0=X_in; end if; end process; end one; 三、加法與地址碼形成單元 VHDL 代碼如下: library ieee。 use 。 use 。 use 。 輸入預(yù)加和地址碼產(chǎn)生 entity Address is port( a0,a1,a2,a3,a4,a5,a6,a7: in std_logic_vector(7 downto 0)。輸入寄存器 a8,a9,a10,a11,a12,a13,a14,a15: in std_logic_vector(7 downto 0)。輸入寄存器 clk :in std_logic。輸入時鐘 y0,y1,y2,y3,y4,y5,y6,y7,y8:out std_logic_vector(7 downto 0))。地址輸出 end Address。 architecture arc of Address is signal b0,b1,b2,b3,b4,b5,b6,b7:std_logic_vector(8 downto 0)。 begin b0=(a0(0)amp。a0)+(a8(0)amp。a8)。 b1=(a1(0)39。amp。a1)+(a9(0)amp。a9)。 b2=(a2(0)amp。a2)+(a10(0)amp。a10)。 b3=(a3(0)amp。a3)+(a11(0)amp。a11)。 b4=(a4(0)amp。a4)+(a12(0)amp。a12)。 b5=(a5(0)amp。a5)+(a13(0)amp。a13)。 b6=(a6(0)amp。a6)+(a14(0)amp。a14)。 b7=(a7(0)amp。a7)+(a15(0)amp。a15)。 process(clk) begin if clk 39。event and clk=39。139。then下面產(chǎn)生的 8位位矢量將作為 LUT 的地址 y0=b7(0)amp。b6(0)amp。b5(0)amp。b4(0)amp。b3(0)amp。b2(0)amp。b1(0)amp。b0(0)。 y1=b7(1)amp。b6(1)amp。b5(1)amp。b4(1)amp。b3(1)amp。b2(1)amp。b1(1)amp。b0(1)。 y2=b7(2)amp。b6(2)amp。b5(2)amp。b4(2)amp。b3(2)amp。b2(2)amp。b1(2)amp。b0(2)。 y3=b7(3)amp。b6(3)amp。b5(3)amp。b4(3)amp。b3(3)amp。b2(3)amp。b1(3)amp。b0(3)。 y4=b7(4)amp。b6(4)amp。b5(4)amp。b4(4)amp。b3(4)amp。b2(4)amp。b1(4)amp。b0(4)。 y5=b7(5)amp。b6(5)amp。b5(5)amp。b4(5)amp。b3(5)amp。b2(5)amp。b1(5)amp。b0(5)。 y6=b7(6)amp。b6(6)amp。b5(6)amp。b4(6)amp。b3(6)amp。b2(6)amp。b1(6)amp。b0(6)。 y7=b7(7)amp。b6(7)amp。b5(7)amp。b4(7)amp。b3(7)amp。b2(7)amp。b1(7)amp。b0(7)。 y8=b7(8)amp。b6(8)amp。b5(8)amp。b4(8)amp。b3(8)amp。b2(8)amp。b1(8)amp。b0(8)。 end if。 end process。 end arc。 低 4位 LTU 程序 library ieee。 use 。 package FIR_ROM1 is function LUT1(y: in std_logic_vector(3 downto 0)) return std_logic_vector。 end FIR_ROM1。 package body FIR_ROM1 is function LUT1(y: in std_logic_vector(3 downto 0)) return std_logic_vector is variable m: std_logic_vector(11 downto 0)。 begin case y is when 0000=m:=x000。 when 0001=m:=xfae。 when 0010=m:=xfb3。 when 0011=m:=xf61。 when 0100=m:=xfdd。 when 0101=m:=xf8b。 when 0110=m:=xf90。 when 0111=m:=xf3e。 when 1000=m:=xfd4。 when 1001=m:=xf82。 when 1010=m:=xf87。 when 1011=m:=xfb1。 when 1100=m:=xf35。 when 1101=m:=xf5f。 when 1110=m:=xf64。 when 1111=m:=xf12。 when others=m:=x000。 end case。 return m。 end LUT1。 end FIR_ROM1。 高四位和低四位 LUT 輸出數(shù)據(jù)要拼在一起, VHDL 代碼如下: library ieee。 use 。 use 。 use 。 use 。 use 。 use 。 use 。 entity firrom is port( ADD0,ADD1,ADD2,ADD3,ADD4: in std_logic_vector(7 downto 0)。 ADD5,ADD6,ADD7,ADD8:in st
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1