第一篇:DSP實驗學習心得大全
DSP實驗學習心得
論DSP發展前景
DSP 即為數字信號處理器(Digital Signal Processing),是在模擬信號變換成數 字信號以后進行高速實時處理的專用處理器。它的工作原理是將現實世界的模擬信號轉換 成數字信號,再用數學方法處理此信號,得到相應的結果。自從數字信號處理器(Digital Signal Processor)問世以來,由于它具有高速、靈活、可編程、低功耗和便于接口等特 點,已在圖形、圖像處理,語音、語言處理,通用信號處理,測量分析,通信等領域發揮 越來越重要的作用。隨著成本的降低,控制界已對此產生濃厚興趣,已在不少場合得到成 功應用。DSP 數字信號處理器 DSP 芯片采用了數據總線和程序總線分離的哈佛結構及改 進的哈佛結構,較傳統處理器的馮?諾依曼結構具有更高的指令執行速度。其處理速度比最 快的 CPU 快 10-50 倍。在當今數字化時代背景下,DSP 已成為通信、計算機、消費類電 子產品等領域的基礎器件,被譽為信息社會革命的“旗手”。
最初的 DSP 器件只是被設計成用以完成復雜數字信號處理的算法。DSP 器件 緊隨著數字信號理論的發展而不斷發展。DSP發展最快,現在的 DSP 屬于第五代產品,它與第四代相比,系統集成度更高,將 DSP 芯核及外圍組件綜合集成在單一芯片上。這種集成度極高的 DSP 芯片不僅在通信、計算機領域大顯身手,而且逐漸滲透 到人們日常消費領域,前景十分可觀。近年來,隨著通信技術的飛速發展,DSP已經成為信號與信息處理領域里一門十分重要的新興學科,它代表著當今無線系統的主流發展方向?,F在,通信領域中許多產品 都與 DSP 密切聯系,例如,Modem、數據加密、擴頻通信、可視電話等。而尋找 DSP 芯片來實現算法最開始的目標是在可以接受的時間內對算法做仿真,隨后是將波形存儲起 來,然后再加以處理。
在短短的十多年 時間,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用。目前, DSP 芯片的價格也越來越低,性能價格比日益提高,具有巨大的應用潛力。DSP 芯片的應用主要有:(1)
信號處理--如,數字濾波、自適應濾波、快速傅里葉變換、相關運算、頻譜分析、卷積等。(2)通信--如,調制解調器、自適應均衡、數據加密、數據壓縮、回坡抵消、多路復用、傳真、擴頻通信、糾錯編碼、波形產生等。(3)語音--如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音儲存等。(4)圖像/圖形--如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等。(5)軍事--如保密通信、雷達處理、聲納處理、導航等。
(6)儀器儀表--如頻譜分析、函數發生、鎖相環、地震處理等。(7)
自動控制--如引擎控制、深空、自動駕駛、機器人控制、磁盤控制。(8)
醫療--如助聽、超聲設備、診斷工具、病人監護等。(9)家用電器--如高保真音響、音樂合成、音調控制、玩具與游戲、數字 電話/電視等 DSP 的發展前景 DSP 的功能越來越強,應用越來越廣,達到甚至超過了微控制器的功能,比 微控制器做得更好而且價格更便宜,許多家電用第二代 DSP 來控制大功率電機就 是一個很好的例子。汽車、個人通信裝置、家用電器以及數以百萬計的工廠使用 DSP 系統。數碼相機、IP 電話和手持電子設備的熱銷帶來了對 DSP 芯片的巨大需 求。而手機、PDA、MP3 播放器以及手提電腦等則是設備個性化的典型代表,這 些設備的發展水平取決于 DSP 的發展。新的形勢下,DSP 面臨的要求是處理速度 更高,功能更多更全,功耗更低,存儲器用量更少。
DSP 的技術發展將會有以下 一些走勢:(1)系統級集成 DSP 是潮流。小 DSP 芯片尺寸始終是 DSP 的技術發展方向。當前的 DSP 尺寸小、功耗低、性能高。各 DSP 廠商紛紛采用新工藝,改進 DSP 芯核,并將幾個 DSP 芯核、MPU 芯核、專用處理單元、外圍電路單元、存儲單元 統統集成在一個芯片上,成為 DSP 系統級集成電路。(2)追求更高的運算速度和進一步降低功耗和幾何尺寸。由于電子設備的 個人化和客戶化趨勢,DSP 必須追求更高更快的運算速度,才能跟上電子設備的 更新步伐。同時由于 DSP 的應用范圍已擴大到人們工作生活的各個領域,特別是 便攜式手持產品對于低功耗和尺寸的要求很高,所以
DSP 有待于進一步降低功 耗。按照 CMOS 的發展趨勢,依靠新工藝改進芯片結構,DSP 運算速度的提高和 功耗尺寸的降低是完全可能的。
(3)DSP 的內核結構進一步改善。DSP 的結構主要是針對應用,并根據應用 優化 DSP 設計以極大改進產品的性能。多通道結構和單指令多重數據、超長指令 字結構、超標量結構、超流水結構、多處理、多線程及可并行擴展的超級哈佛結 構(SHARC)在新的高性能處理器中將占據主導地位。(4)DSP 嵌入式系統。DSP 嵌入式系統是 DSP 系統嵌入到應用電子系統中 的一種通用系統。這種系統既具有 DSP 器件在數據處理方面的優勢,又具有應用 目標所需要的技術特征。在許多嵌入式應用領域,既需要在數據處理方面具有獨 特優勢的 DSP,也需要在智能控制方面技高一籌的微處理器(MCU)。因此,將 DSP 與 MCU 融合在一起的雙核平臺,將成為 DSP 技術發展的一種新潮流。DSP 的發展非常迅速,而銷售價格逐年降低目前 DSP 的結構、總線、資源和 接口技術都趨于標準化,尤其接口的標準化進展更快。這給從事系統設計的工程 技術人員帶來很大機遇,采用先進的 DSP 將會使開發的產品具有更強的市場競爭 力。
近幾年來,DSP芯片、應用軟件和系統的發展非常迅速,每年增長速度高達40%。其市場驅動力主要是因特網、無線通信、硬盤驅動器、可視電話和會議電視以及其它消費 類電子產品。也就是說,DSP產業的發展依賴于通信技術和通信市場。隨著新的通信體 制、傳輸方式和多媒體智能終端的迅速發展,其算法、標準和規程都需要在實踐中不斷發 展、改進和優化。DSP編程的靈活性和不斷增強的運算能力,同時又將使通信技術向更 高層次邁進。這對通信領域的廣大科技人員是一個機遇。抓住這個機遇,我們將大有作為。
通過這幾次實驗,我初步的對dsp有了一定了解。雖然是在老師們的指導下完成實驗要求的,但是我想我還是收獲蠻多的。希望在以后的學習生活中能對dsp有更多的學習和研究。
第二篇:DSP實驗學習心得
DSP實驗學習心得
DSP即為數字信號處理器(Digital Signal Processing),是在模擬信號變換成數字信號以后進行高速實時處理的專用處理器。它的工作原理是將現實世界的模擬信號轉換成數字信號,再用數學方法處理此信號,得到相應的結果。自從數字信號處理器(Digital Signal Processor)問世以來,由于它具有高速、靈活、可編程、低功耗和便于接口等特點,已在圖形、圖像處理,語音、語言處理,通用信號處理,測量分析,通信等領域發揮越來越重要的作用。隨著成本的降低,控制界已對此產生濃厚興趣,已在不少場合得到成功應用。DSP 數字信號處理器DSP 芯片采用了數據總線和程序總線分離的哈佛結構及改進的哈佛結構,較傳統處理器的馮諾依曼結構具有更高的指令執行速度。其處理速度比最快的CPU快10-50倍。在當今數字化時代背景下,DSP 已成為通信、計算機、消費類電子產品等領域的基礎器件,被譽為信息社會革命的“旗手”。
最初的DSP器件只是被設計成用以完成復雜數字信號處理的算法。DSP器件緊隨著數字信號理論的發展而不斷發展。DSP發展最快,現在的DSP屬于第五代產品,它與第四代相比,系統集成度更高,將DSP 芯核及外圍組件綜合集成在單一芯片上。這種集成度極高的DSP 芯片不僅在通信、計算機領域大顯身手,而且逐漸滲透到人們日常消費領域,前景十分可觀。近年來,隨著通信技術的飛速發展,DSP已經成為信號與信息處理領域里一門十分重要的新興學科,它代表著當今無線系統的主流發展方向?,F在,通信領域中許多產品都與DSP 密切聯系,例如,Modem、數據加密、擴頻通信、可視電話等。而尋找DSP芯片來實現算法最開始的目標是在可以接受的時間內對算法做仿真,隨后是將波形存儲起
來,然后再加以處理。在短短的十多年時間,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用。目前, DSP 芯片的價格也越來越低,性能價格比日益提高,具有巨大的應用潛力。DSP 芯片的應用主要有:(1)信號處理--如,數字濾波、自適應濾波、快速傅里葉變換、相關運算、頻譜分析、卷積等。(2)通信--如,調制解調器、自適應均衡、數據加密、數據壓縮、回坡抵消、多路復用、傳真、擴頻通信、糾錯編碼、波形產生等。(3)語音--如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音儲存等。(4)圖像/圖形--如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等。(5)軍事--如保密通信、雷達處理、聲納處理、導航等。(6)儀器儀表--如頻譜分析、函數發生、鎖相環、地震處理等。(7)自動控制--如引擎控制、深空、自動駕駛、機器人控制、磁盤控制。(8)醫療--如助聽、超聲設備、診斷工具、病人監護等。(9)家用電器--如高保真音響、音樂合成、音調控制、玩具與游戲、數字電話/電視等DSP 的發展前景DSP的功能越來越強,應用越來越廣,達到甚至超過了微控制器的功能,比微控制器做得更好而且價格更便宜,許多家電用第二代DSP 來控制大功率電機就是一個很好的例子。汽車、個人通信裝置、家用電器以及數以百萬計的工廠使用DSP 系統。數碼相機、IP 電話和手持電子設備的熱銷帶來了對DSP芯片的巨大需求。而手機、PDA、MP3 播放器以及手提電腦等則是設備個性化的典型代表,這些設備的發展水平取決于DSP 的發展。新的形勢下,DSP面臨的要求是處理速度更高,功能更多更全,功耗更低,存儲器用量更少。
這學期我們學習了DSP的理論課程,也進行了相應的實驗,實際操作讓我們學習的更加深入。我們的主處理芯片: TMS320VC5502PGF300;
低功耗設計,比上一代 C54XX 器件功耗低 30%左右;
處理速度更快,雙乘法器結構,處理速度 600MMACS;
軟件程序兼容 C54XX DSP;
片內存貯空間 32K× 16Bit(DARAM)(64K Bytes);
最大外部尋址空間 8M× 16Bit; SDRAM: 1M× 16Bit; 2 路 8bit 板上 A/D 接口;
路的 TLC7528 轉換,5M/S,8Bit;
片上 UART 接口,符合 RS232 標準;
8Mbit 擴展 FLASH,存儲大量固化程序和數據;
設計有用戶可以自定義的開關和測試指示燈;
3U 標準的 DSP 擴展總線,包括數據、地址、I/O、控制; 4 組標準擴展連接器,為用戶進行二次開發提供條件;
具有 IEEE1149.1 相兼容的邏輯掃描電路,該電路僅用于測試和仿真; +5V 電源輸入,內部+3.3V、+1.26V 電源管理;
高保真語音接口設計,雙路語音采集,每路 48K/S; 4 層板設計工藝,穩定可靠;
具有自啟動功能設計,可以實現脫機工作;
可以選配多種應用接口板,包括圖像板,網絡板等; 開發環境
開發 TMS320C55xx 應用系統一般需要以下設備和軟件調試工具: 1.通用 PC 一臺,安裝 Windows2000 或 WindowsXP 操作系統及常用軟件(如: WinRAR 等)。
2. TMS320C55xx 評估板及相關電源。如: ICETEK– VC5502-A 評估板。
3.通用 DSP 仿真器一臺及相關連線。如: ICETEK-5100USB 仿真器。
4.控制對象(選用)。如: ICETEK-CTR 控制板。
5. TI 的 DSP 開發集成環境 Code Composer Studio。如: CCS3.1。
6.仿真器驅動程序。7.實驗程序及文檔。
ICETEK-DSP 教學實驗箱的硬件連接 .連接電源:打開實驗箱,取出三相電源連接線(如右圖),將電源線的
一端插入實驗箱外部左側箱壁上的電源插孔中。確認實驗箱面板上電源總
開關(位于實驗箱底板左上角)處于“關”的位置,連接電源線的另一端至
220V 交流供電插座上,保證穩固連接。
2.使用電源連接線(如右圖,插頭是帶孔的)連接各模塊電源:確認實驗
箱總電源斷開。連接 ICETEK-CTR 板上邊插座到實驗箱底板上+12V 電源
插座; ICETEK-CTR 板下邊插座到實驗箱底板上+5V 電源插座;如使用
PP(并口)型仿真器,則連接仿真器上插座到實驗箱底板上+5V 電源插座;
連接 DSP 評估板模塊電源插座到實驗箱底板上+5V 電源插座。注意各插
頭要插到底,防止虛接或接觸不良。
3.連接 DSP 評估板信號線:當需要連接信號源輸出到 A/D 輸入插座時,使用信號連接線(如右圖)分別連接相應插座。
4. 接通電源: 檢查實驗箱上 220V 電源插座(箱體左側)中保險管是否完好,在連接電源線以后,檢查各模塊供電連線是否正確連接,打開實驗箱上的電源總開關(位于實驗箱底板左上角),使 開關位于“開”的位置,電源開關右側的指示燈亮。構造 DSP 開發軟件環境
1.安裝 CCS 軟件(此文檔假定用戶將 CCS 安裝在默認目錄 C:CCStudio_v3.1 中,同時也建議
用戶按照默認安裝目錄安裝)⑵將實驗箱附帶的教學光盤插入計算機光盤驅動器。⑶打開教學光盤的“ CCS3.1”目錄。⑷雙擊其中的“ Setup.exe”,進入安裝程序。⑸選擇“ Code Composer Studio”
按照安裝提示進行安裝,并重新啟動計算機。⑹安裝完畢,桌面上出現兩個新的圖標 2.安裝 DSP 通用仿真器驅動
需要安裝兩部分:(1)仿真器的 Windows 驅動程序(并口無需,usb 口要安裝);(2)根據仿真的 DSP 芯片不同,設置仿真器在 CCS 環境中的對應驅動程序。
⑴雙擊光盤中的“開發系統驅動USB”目錄下的 usbdrv54x.exe 文件,然后再打開的頁
面中輸入 ccs 的安裝路徑,例如 C:CCStudio_v3.1 ⑵此時驅動已經被拷貝到 C:CCStudio_v3.1icetek 目錄下。⑶然后把 usb 電纜連接到計算機的 usb 接口和 usb 仿真器上,計算機將提示找到新硬件,選擇否,然后點下一步。3.安裝實驗程序
雙擊光盤中的實驗安裝文件,自動解壓縮后安裝到 C:ICETEK 目錄下。
例如:實驗安裝文件為“ Setup5502A.exe” 4.安裝初始化仿真器程序
將光盤中“工具”子目錄下的“ xdsresetUSB”目錄拷貝到硬盤上的任意路徑下,建
議和實驗程序目錄放在一起,便一管理。然后用單擊鼠標右鍵選擇“ xdsresetUSB”目
錄下 “ xdsrstusb”批處理文件,選擇“發送到”->“桌面快捷方式”。注: 如果您的 CCS 系統未安裝在默認的 C:CCStudio_v3.1 目錄,請用鼠標右鍵單擊桌面上“ xdsrstusb”圖標,選擇“屬性”,將“快捷方式”項和“起始位置”中的路徑改成您所安裝的路徑。
啟動 CCS 啟動 Emulator 方式:
⑴ 首先將實驗箱電源關閉。連接實驗箱的外接電源線。⑵ 檢查 ICETEK-5100USB 仿真器的黑色 JTAG 插頭是否正確連接到 ICETEK– VC5502-A板的 J1 插頭上。注:仿真器的插頭中有一個孔加入了封針,與 J1 插頭上的缺針位置應重合,保證不會插錯。
⑶ 檢查是否已經用電源連接線連接了 ICETEK– VC5509-A 板上的POW1插座和實驗箱底板上+5V 電源插座。⑷ 檢查其他連線是否符合實驗要求。檢查實驗箱上三個撥動開關位置是否符合實驗要求。
⑸ 打開實驗箱上電源開關(位于實驗箱底板左上角),注意開關邊上紅色指示燈點亮。
ICETEK– VC5502-A 板上指示燈 D5 和 D6 點亮。如果打開了 ICETEK-CTR 的電源開關,ICETEK-CTR 板上指示燈 L1、L2 和 L3 點亮。如果打開了信號源電源開關,相應開關邊的指示燈點亮。
⑹ 用實驗箱附帶的 USB 信號線連接 ICETEK-5100USB 仿真器和 PC 機后面的 USB 插座,注意 ICETEK-5100USB 仿真器上指示燈 Power 和 Run 燈點亮。
⑺ 雙擊桌面上仿真器初始化圖標:
(8)如果進入 CCS 提示錯誤,先選“ Abort”,然后用“初始化 ICETEK-5100 USB2.0 仿真器”初始化仿真器,如提示出錯,可多做幾次。如仍然出錯,拔掉仿真器上 USB 接頭(白色方形),按一下 ICETEK– VC5509-A 板上 S1 復位按鈕,連接 USB 接頭,再做“初始化 ICETEK-5100 USB2.0仿真器”。
(9)如果遇到反復不能連接或復位仿真器、進入 CCS 報錯,請打開 Windows 的“任務管理器”,在“進程”卡片上的“映像名稱”欄中查找是否有“cc_app.exe”,將它結束再試。
退出 CCS 指示燈實驗
了解 ICETEK-VC5502-AE 板在 TMS320VC5502DSP 外部擴展存儲空間上的擴展。了解 ICETEK-VC5502-AE 板上指示燈擴展原理。學習在 C 語言中使用擴展的控制寄存器的方法。
TMS320VC5502DSP 的 EMIF 接口:
存儲器擴展接口(EMIF)是 DSP 擴展片外資源的主要接口,它提供了一組控制信號和地
址、數據線,可以擴展各類存儲器和寄存器映射的外設。-ICETEK-VC5502-AE 評估板在 EMIF 接口上除了擴展了片外 SDRAM 外,還擴展了指
示燈、DIP 開關和 D/A 設備。具體擴展地址如下: 0x400009,0x40000b: D/A 轉換控制寄存器 0x400007: 板上 DIP 開關控制寄存器 0x400005: 板上指示燈控制寄存器
-與 ICETEK-VC5502-AE 評估板連接的 ICETEK-CTR 顯示控制模塊也使用擴展空間控制
主要設備:
608001h: 讀-鍵盤掃描值,寫-液晶控制寄存器 608002h: 液晶輔助控制寄存器
608003h、608004h: 液晶顯示數據寄存器 608005h: 發光二極管顯示陣列控制寄存器 撥碼開關控制實驗
了解 ICETEK-VC5502-AE 板在 TMS320VC5502DSP 外部擴展存儲空間上的擴展。了解 ICETEK-VC5502-AE 板上撥碼開關擴展原理。熟悉在 C 語言中使用擴展的控制寄存器的方法。
TMS320VC5502DSP 的 EMIF 接口:
存儲器擴展接口(EMIF)是 DSP 擴展片外資源的主要接口,它提供了一組控制信號和地址、數據線,可以擴展各類存儲器和寄存器映射的外設。
-ICETEK-VC5502-AE 評估板在 EMIF 接口上除了擴展了片外 SDRAM 外,還擴展了指
示燈、DIP 開關和 D/A 設備。具體擴展地址如下: 0x400009,0x40000b: D/A 轉換控制寄存器 0x400007: 板上 DIP 開關控制寄存器 0x400005: 板上指示燈控制寄存器
-與 ICETEK-VC5502-AE 評估板連接的 ICETEK-CTR 顯示控制模塊也使用擴展空間控制
主要設備:
608001h: 讀-鍵盤掃描值,寫-液晶控制寄存器 608002h: 液晶輔助控制寄存器
608003h、608004h: 液晶顯示數據寄存器 608005h: 發光二極管顯示陣列控制寄存器 DSP 的定時器
通過實驗熟悉 VC5502A 的定時器;掌握 VC5502A 定時器的控制方法;掌握 VC5502A 的中斷結構和對中斷的處理流程;學會 C 語言中斷程序設計,以及運用中斷程序控制程序流程。通用定時器介紹及其:
TMS320VC5502A 內部有兩個 64 位通用定時器(GP), 控制方法詳見spru618.pdf。中斷響應過程(詳見 spru371.pdf):
外設事件要引起 CPU 中斷,必須保證: IER 中相應使能位被使能,IFR 相應中斷也被使能。在軟件中,當設置好相應中斷標志后,開中斷,進入等待中斷發生的狀態;外設(如定時器)中斷發生時,首先跳轉到相應中斷級高的服務程序中(如:定時器 1 會引起 TINT中斷),程序在進行服務操作之后,應將本外設的中斷標志位清除以便能繼續中斷,然后返回。中斷程序設計:
-程序中應包含中斷向量表,VC5502A 默認向量表從程序區 0xffff00 地址開始存放,根據IPVD 和 IPVH 的值確定向量表的實際地址。
-注意觀察程序中 INTR_init()函數的定義部分,其中 IPVD 和 IPVH 的值都為 0x0001;同時
觀察配置文件 ICETEK-VC5502-AE.cmd 中的 VECT 段描述中 o=0x0100。
-向量表中每項為 8 個字,存放一個跳轉指令,跳轉指令中的地址為相應服務程序入口地址。
第一個向量表的首項為復位向量,即 CPU 復位操作完成后自動進入執行的程序入口。
-服務程序在服務操作完成后,清除相應中斷標志,返回,完成一次中斷服務。單路,多路數模轉換(DA)
了解數模轉換的基本操作。了解 ICETEK-VC5502-AE 板擴展數模轉換方式。掌握數模轉換程序設計方法。
1.數模轉換操作:數模轉換芯片使用 TLC7528C。TLC7528C 是雙路、8 位數字-模擬轉換器,內部具有各自單獨的數據鎖存器,其特性包括兩 DAC 非常精密的一致性,數據通過公共 8 位輸入口轉送至兩DAC 數據鎖存器的任意一個??刂戚斎攵?DACA/DACB 決定哪一個 DAC 被裝載。器件的裝載周期與隨機存取存儲器的寫周期類似,能方便地與大多數通用微處理器總線或端口相接口。器件的工作電壓 5V 至 15V,功耗小于 15mW(典型值)。2 或 4 象限的乘法功能使該器件成為許多微處理器的增益設置和信號控制的良好選擇。它可工作于電壓模式,與電流輸出相比較,更適合于電壓輸出。TLC7528C 的工作溫度范圍從 0℃至 70℃。
2. TLC7528C 與 TMS320VC5502A 的連接:由于 TMS320VC5502A DSP 沒有數模轉換輸出設備,采用外擴數模轉換芯片的方法。在 ICETEK-VC5502-AE 板上選用的是 TLC7528C。TLC7528C 的轉換寄存器被映射到了 DSP的 CE2 空間,兩路 DA 轉換通道的地址分別是: 0x400009,0x40000b。在 TLC7528C 的輸出端,為了增加輸出功率,經過一級運放再輸出到板上插座上。
實驗學習讓我們更好的學習到了理論知識,不只是停留在理論上,實踐才是真理。
第三篇:dsp學習心得
一.我是已經從事DSP開發有幾年了,看到許多朋友對DSP的開發非常感興取,我結合這幾年對DSP的開發寫一寫自己的感受,一家之言,歡迎指教。我上研究生的第一天起根據老板的安排就開始接觸DSP,那時DSP開發在國內高校剛剛開始,一臺DSP開發器接近一萬還是ISA總線的,我從206開始240、2407A都作過產品,對5402、2812、5471在產品方案規劃制定和論證時也研究過。由于方向所限對6X、8X系列沒有接觸。我發現在國內無論在公司或高校許多地方為了加快開發周期往往把一個產品開發分為硬件和軟件兩個相對獨立部分,由不同的人完成。這在具有一定技術和管理基礎的公司,由總設計師統一規劃協調,分任務并行完成的情況下是可行的,也是符合現代產品開發規律的。但是在高校人員的流動很大,研究生的有效科研時間很短、基礎差(許多研究生起步時對電熔、電阻、三極管的分類和選型都很困難,我也是這樣過來的)更不用說系統規劃設計了,況且許多老板自己也不太懂,師兄有自己的任務,他們搞明白時也畢業了。在許多高校做DSP就是找一個算法加到自己的主程序里,在板子上跑一下,基本達到效果就可以了,至于可靠性是次要的,產業化無從談起,這已經算不錯的了。其實我覺得一個系統的完成,系統的規劃是最重要的,在規劃時對硬件設計的知識和認識是決定性的,它可以讓你知道什么是可行的,什么是不可行的,當你同時具有軟件設計能力時,就可以合理的分配系統功能,完成使用VHDL進行系統行為描述-―系統功能劃分―― 系統子結構設計這樣的自頂向下的設計規劃流程,成為系統設計專家、項目經理,否則只是硬件工程師、軟件工程師。無論作51、196、還是DSP都是這樣。下面分別談談我對硬件和軟件設計的感受硬件設計是系統設計的關鍵,國內和國外產品的差距往往是硬件設計水平高低決定的,任何軟件設計思想沒有可靠的物理載體都是空中樓閣,紙上談兵。學校的研究生很多都想避開硬件設計,對于一個全新的設計與其說不屑不如說不敢。試想一下燒幾個片子的壓力要比跑飛幾段程序的壓力大的多,尤其是功率器件,一旦燒掉,弄不好火光沖天,人的自信都沒了。況且改一次板周期長,經費高,還不知行不行。其實在國外實力一般的公司也是盡量避免硬件的更新設計,產品一旦定型往往通過軟件升級,這是公司的發展策略,對個人而言物以希為貴,培養一個硬件設計師往往要比軟件設計師時間長花費多。在設計dsp硬件時,開始設計最小系統板,系統按功能分板設計調試,注意分板電路的穩定性可能不如整板電路,要多加入抗干擾環節,分板間的引線包括電源線地線要短,盡量在10公分以內,實在不行加入光耦隔離、采用隔離電源。切記電源線、地線的干擾遠比信號干擾對系統的危害大得多,又常常被人忽視。電路板工作正常的先決條件就是電源正常!當分板電路正常后再更居情況設計整板電路。在調試時發現的問題一定要找到原因解決,即使是飛線,割線,不要寄希望于下一板改了再看,除非原理性錯誤。每一個功能環節多準備幾套方案。DSP的選型要根據系統功能而定,2000是一個功能比較全的控制器,但運算性能相對低,但目前大部分控制類、家電類包括中低層次的工業總線通信產品足夠了,281X不錯但太貴,而且開發技術不成熟。54XX更像一個協處理器,其實高端產品5471就很好,功能完*,但BGA封裝對產品的開發有一定難度。如果沒有從事過嵌入式系統開發的朋友其實可以從51看起,許多思想是共通的,51很經典沒有哪一款微處理器像51那樣使用持久和普遍。在硬件設計時更多的精力放在外圍電路設計上,外圍電路設計的靈活性要比DSP本身高得多,難度大得多。建議多考慮CPLD。軟件設計上,著眼點不要僅局限于某種算法和控制策略,而是軟件系統框架的制定,即操作系統的選擇和實現,算法和控制策略只是其中技巧性很強的子程序和子程序間參數相互關系,建議設計軟件時能具有操作系統、數據結構和編譯原理方面的知識,特別是使用C。對DSP的內部硬件結構一定要掌握,特別是中斷結構和流程、流水線操作,不然飛都不知道怎么飛的。在語言選擇上我當時是這么給自己規定的先編20個左右的匯編程序,每個代碼量超過4K,使用語句范圍覆蓋全部語句的60%-70%,在此基礎上使用C?,F在發現用C構建程序的主體框架(操作系統)比較快而其不容易出錯,(我現在正在用ASM根據UCOSII的思想重寫自己的操作系統)但對系統實時性影響比較大的運算算法一般采用MATLAB――C――ASM的辦法仿真調試優化,這里的優化不單單是利用優化器優化,而是根據數據的特點改變運算方法,以除法為例C里的/號其實掩蓋了許多技巧,當除數為常數時就可以放大倒數移位相乘移位的辦法進行,精度高速度快。這些辦法只有掌握了ASM語言并用ASM語言思考才會熟練應用。另外我想告訴一些作算法特別是控制算法的朋友,千萬不要隨意評判一個算法的優劣,在程序中程序和代碼優化的程度往往影響了控制效果好壞,而不是算法本身的思想。其實在實際中往往PID甚至PI、PD就夠了,神經元、模糊、小波適用于研究和寫論文,模糊在實際中用的多一點,主要是小日本用的比較成熟,我再恨日本人,這點也服氣,小日本就是滑,許多物理現象搞不透,就用這法,還管用,題外話。最后我想說的是,當我們面對市場要求時,產品往往考慮的是可靠性、性能、價格而不是你用的什么芯片,在滿足性能的基礎上結構越簡單就越可靠,芯片越通用價格就越低,能用51就不用196,能用2407就不用2812,除非把芯片本身作買點利用高成本贏取高利潤。無論2000還是5000、6000系列都有市場前景,關鍵是要做深做透獲取知識的方法、處理項目的能力是相通的,具體的說就是不要把目光盯在做硬件還是做軟件上,用ASM還是C,要勤動手打好基礎,提高自己對系統總體設計的能力,從系統的眼光看問題。為什么都是做DSP的有的畢業拿3000,有的5000、8000,除了運氣和關系外,重要的是你對事物的認識深度和高度。我一直都記住這句話:有前途的人做什么都有前途,沒前途的人做什么都沒前途。二.與其說是鉆在里面,畢業設計是搞240,在老師的壓力做出了一點東西,這期間主要是對DSP的各種基礎知識的熟悉與理解,對DSP的真正深入是在公司工作以后。當初進公司,因為正有一個項目需要用5410要我接手。說實話,在學校期間我5000的書都沒有看過一眼,可沒辦法,只能靠自己了。不過好的是我2000DSP的基礎很好。接過項目后,我第一個星期就全部看的是5000的指令,DSP的結構倒沒怎么看,因為項目硬件已成型,主要是算法。這樣,花了一個星期熟悉指令與項目相關的程序,第二個星期也就開始編程了。半個月以后我對5410也就用很熟了的,當然主要還是講在算法方面。這個項目太概做了四個月吧,系統程序是我編寫的,主要有如64位加減乘除乘方開方、及時域方面的一些算法?,F在又做一個控制系統,用2407開發的,硬件主要有直交變頻,并把2407的所有外設資源全部用到了?,F在我可以這樣自夸一句吧:TI的2000系列與5000系列的我都熟悉,要我去以此做個系統,沒問題。上面是把我搞DSP的經歷簡單說了一下的吧,在這里我想對正在學及想學DSP的難兄們說一句的是,DSP并不是很難。當然,這個前提是你的基礎要好,我單片機,接口都還行,當初就是從單片機改成DSP的。有了單片機的基礎再去學2000第列的DSP(下面的DSP單指2000系列,另有說明為止),你就可以把DSP看成一個super microcontroller了。相比之下,DSP除了比單片機多了更豐的外設接口(SPI,SCI、CAN、PWM、CAP、QEP等等),他就是一塊單片機,只不過在單片機來說你要另加芯片的工作,DSP全部把它做在一塊芯片去了,我現在看DSP也真就這么簡單。前面有人提到DSP主要是做算法,這句話有一定的片面性: TI有很多系列的DSP,現在主流的DSP主要為2000系列、3000系列、4000系列、5000系列、6000系列。除了2000與5000系列是定點DSP外,其余的均為浮點系列。TI的2000系列主要長處是在用于控制系統,因為它的資源非常豐富,前面提到,在控制系統中用到的一些外設2000系列均在片內集成了。TI的5000系列主要長處是用于數字信號的算法處理,這里所講算法處理主要是指在數字信號處理時的一些算法,如FIR、IIR、FFT等等。5000系列的DSP的速度比2000快,2407最快只能到40M,2800系列除外,5410的DSP可以達到160M,如現在我們主要用來做數字信號方面的處理以及簡單的靜態圖像處理等這樣一些在資源需要處于中等的一些算法。TI的6000系列主要是用在實時圖像處理,這個就更則重于算法處理。一般的硬件很少自制,我們是用TI的DSK板再加上自主板相結合。三.使用C/C++語言編寫基于DSP程序的注意事項
1、不影響執行速度的情況下,可以使用c或c/c++語言提供的函數庫,也可以自己設計函數,這樣更易于使用“裁縫師”優化處理,例如:進行絕對值運算,可以調用fabs()或abs()函數,也可以使用if...else...判斷語句來替代。
2、要非常謹慎地使用局部變量,根據自己項目開發的需要,應盡可能多地使用全局變量和靜態變量。
3、一定要非常重視中斷向量表的問題,很多朋友對中斷向量表的調用方式不清楚。其實中斷向量表中的中斷名是任意取定的,dsp是不認名字的,它只認地址!中斷向量表要重新定位。這一點很重要。
4、要明確dsp軟件開發的第一步是對可用存儲空間的分析,存儲空間分配好壞關系到一個dsp程序員的水平。對于dsp,我們有兩種名稱的存儲空間,一種是物理空間,另一種是映射空間。物理空間是dsp上可以存放數據和程序的實際空間(包括外部存儲器),我們的數據和程序最終放到物理空間上,但我們并不能直接訪問它們。我們要訪問物理空間,必須借助于映射空間才行!但是映射空間本身是個“虛”空間,是個不存在的空間。所以,往往是映射空間遠遠大于實際的物理空間,有些映射空間,如io映射空間,它本身還代表了一種接口。只有那些物理空間映射到的映射空間才是我們真正可訪問(讀或寫)的存儲空間。
5、盡可能地減少除法運算,而盡可能多地使用乘法和加法運算代替。
6、如果ti公司或第三方軟件合作商提供了dsplib或其他的合法子程序庫供調用,應盡可能地調用使用。這些子程序均使用用匯編寫成,更為重要之處是通過了tms320算法標準測試。而且,常用的數字信號處理算法均有包括!
7、盡可能地采用內聯函數!而不用一般的函數!可以提高代碼的集成度。
8、編程風格力求簡煉!盡可能用c語言而不用c++語言。我個人感到雖然c++終代碼長了一些,好象對執行速度沒有影響。
9、因為在c5000中double型和float型均占有2個字,所以都可以使用,而且,可以直接將int型賦給float型或double型,但,盡可能地多使用int數據類型代替!這一點需要注意!
10、程序最后至少要加上一個空行,編譯器當這個空行為結尾提示符。
11、大膽使用位運算符,非常好用!
12、2003年6月份從ti的網站上下到了關于tms320c67x系列dsp的快速算法庫,于是,tms320c5000和c6000全系列的快速算法庫都問世了,這些算法庫均可供c/c++語言直接調用,優化程度100%,實際編程時盡可能地使用
第四篇:DSP學習心得
數字信號處理—DSP課程學習的認識
今年學習了DSP這門課程后,有了一些自己的認識和見解,并且體會到了它強大的功能和作用,它不但在高端的技術領域有很重要的地位,如通信、雷達、聲納、語音合成和識別、圖像處理、高速控制等;而且在生活中有它不小的作用,如,影視、儀器儀表、醫療設備、家用電器等眾多領域。
但是,由于DSP技術發展很快,生產DSP芯片的廠家又多,這既是它的優點同時又是缺點,因為這樣會導致產品更新換代的周期越來越短,還有,每一種芯片,都有其獨特的硬件結構和一套專門的指令系統與開發工具,這更加的帶來了學習DSP技術的困難。在我自己的學習體系里,有自己的一點經驗可以用來輔助的學習這門課程。古時候的一個習語說的是“窺一斑而知全豹”這個同時可以用來指導學習DSP,盡管它的更新換代很快,但也只是為了完善它而更好用和借助其它的技術為它添加一些別的功能而使其更強大,其實質的理論還沒有變話,所以,我們可以就其某一個芯片的知識來指導其它的芯片的學習和利用。這里,以TMS320系列DSP芯片為例來進行知識的梳理。
x(t)→抗混疊濾波器→A/D→數字信號處理器→D/A→低通濾波器→y(t)
數字信號處理系統簡化框圖
這個作為基本的理論模型,然后開始主要內容:1.1,TMS320系列DSP芯片的概述﹑分類及應用、平臺;1.2,主要特性有①CPU,②存儲器,③指令系統,④在片外圍電路,⑤電源,⑥在片仿真接口,⑦速度、組成框圖;1.3,總線結構;
1.4,存儲器空間分配、存儲器(程序存儲器、數據存儲器);1.5,中央處理單元中,算術邏輯運算單元①ALU的輸入,②ALU的輸出,③溢出處理,④進位位,⑤雙16位算術運算,累加器A和B(保存累加器的內容、累加器移位和循環移位、專用指令),桶形移位器乘法器/加法器單元,比較、選擇和存儲單元,指數編碼器,CPU狀態和控制寄存器;1.6,數據尋址方式①立即尋址,②絕對尋址,③累加器尋址,④直接尋址,⑤間接尋址;⑥存儲器映像寄存器尋址,⑦堆棧尋址;1.7程序存儲器地址生成方式,程序計數器,分支轉移,調用與返回,條件操作,重復操作(重復執行單條指令、程序塊重復操作),復位操作,中斷(中斷類型、中斷標志寄存器和中斷屏蔽寄存器、中斷處理過程),省電方式;
1.8,流水線①流水線操作,②延遲分支轉移,③條件執行,④雙尋址存儲器與流水線,⑤單尋址存儲器與流水線,⑥流水線沖突和插入等待周期(流水線沖突、等待周期表);1.9,在片圍電路①并行I/O口及通用I/O引腳,②定時器,③時鐘發生器(硬件配置的PLL軟件可編程PLL),④主機接口;1.10,串行口;串行口概述(標準串行口、緩沖串行口、時分多路串行口、多通道緩沖串行口);
1.11,DMA控制器①DMA控制器的基本特征,②子地址尋址方式,③DMA通道優先級和使能控制寄存器,④DMA通道現場寄存器,⑤DMA編程舉例;1.12,外部總線①外部總線接口,②外部總線操作的優先級別,③等待狀態發生器,④分區切換邏輯,⑤外部總線接口定時器(存儲器尋址定時圖、I/O尋址定時圖);⑥復位和IDLE3省電工作方式(外部總線復位定時圖、“喚醒”IDLE3省電方式的定時圖);1.13,TMS320C54x引腳信號說明。
第五篇:DSP實驗5
實驗五 FIR數字濾波器的設計(設計性實驗)
實驗名稱:FIR數字濾波器的設計 實驗項目性質:編程設計 所屬課程名稱:數字信號處理 計劃學時:4
一、實驗目的
1.掌握用窗函數法、頻率采樣法設計FIR濾波器的原理及方法,熟悉響應的計算機編程;
2.熟悉線性相位FIR濾波器的幅頻特性和相頻特性; 3.了解各種不同窗函數對濾波器性能的影響。
二、預習與參考
2.1窗口法
窗函數法設計線性相位FIR濾波器步驟
? ? 確定數字濾波器的性能要求:臨界頻率{ωk},濾波器單位脈沖響應長度N; 根據性能要求,合理選擇單位脈沖響應h(n)的奇偶對稱性,從而確定理想頻率響應Hd(ejω)的幅頻特性和相頻特性;
? 求理想單位脈沖響應hd(n),在實際計算中,可對Hd(ejω)按M(M遠大于N)點等距離采樣,并對其求IDFT得hM(n),用hM(n)代替hd(n);
? 選擇適當的窗函數w(n),根據h(n)= hd(n)w(n)求所需設計的FIR濾波器單位脈沖響應;
? 求H(e),分析其幅頻特性,若不滿足要求,可適當改變窗函數形式或長度N,重復上述設計過程,以得到滿意的結果。jω窗函數的傅式變換W(ejω)的主瓣決定了H(ejω)過渡帶寬。W(ejω)的旁瓣大小和多少決定了H(ejω)在通帶和阻帶范圍內波動幅度,常用的幾種窗函數有:
? ? 矩形窗 w(n)=RN(n); Hanning窗
;
? Hamming窗 ;
? Blackmen窗 ;
? Kaiser窗。
式中Io(x)為零階貝塞爾函數。2.2頻率采樣法
頻率采樣法是從頻域出發,將給定的理想頻率響應Hd(ejω)加以等間隔采樣
然后以此Hd(k)作為實際FIR數字濾波器的頻率特性的采樣值H(k),即令
由H(k)通過IDFT可得有限長序列h(n)
將上式代入到Z變換中去可得
其中Φ(ω)是內插函數
三、設計指標
(1)矩形窗設計線性相位低通濾波器(參數自主設定)(2)改用Hanning 窗,設計(1)中的低通濾波器。
四、實驗要求(設計要求)
(1)編寫窗函數法FIR濾波器設計代碼,觀察幅頻和相位特性的變化,注意長度N變化的影響; 觀察并記錄窗函數對濾波器幅頻特性的影響,比較兩種窗的特點;(2)要求所編的程序能正確運行;畫出波形,完成并提交實驗報告。
五、調試及結果測試 提交帶注釋的(或給出每個操作所涉及的算法)且運行正確的源程序,說明調試過程中所遇到的問題、解決方法及經驗與體會。
六、考核形式
理論課程閉卷考試,實驗部分提交實驗報告。
七、實驗報告要求
1.實驗報告必須獨立完成,抄襲、復制他人作無效處理: 2.實驗報告要求:
(1)要按規定從教學網站下載樣板文件格式書寫。
(2)實驗報告要注明姓名,學號,實驗名稱,完成日期,聯系電話。(3)內容不真實、不認真、不能按時完成的,不記成績。(4)簡要說明設計題目、內容、原理。
3.附濾波器設計代碼及要求的圖形。對實驗結果和實驗中的現象進行簡練明確的分析并作出結論或評價,對本人在實驗全過程中的經驗、教訓、體會、收獲等進行必要的小結。4.報告要求獨立完成,篇幅為A4紙不超過5頁,突出自己的設計。5.對改進實驗內容、安排、方法、設備等的建議和設想,(此部分可選作)。6.不能完成實驗報告者,不能參加課程考試。
八、思考題
1.不同窗函數對濾波器性能的影響如何?
2.線性相位FIR濾波器的幅頻特性和相頻特性如何?
附:實驗內容
%N=45,計算并畫出矩形框、漢明窗、布萊克曼窗的歸一化的幅度譜,并比較各自的主要特點 %(1)矩形窗(Rectangle Window)調用格式:w=boxcar(n),根據長度 n 產生一個矩形窗 w。
%(2)三角窗(Triangular Window)調用格式:w=triang(n),根據長度 n 產生一個三角窗 w。
%(3)漢寧窗(Hanning Window)調用格式:w=hanning(n),根據長度 n 產生一個漢寧窗 w。
%(4)海明窗(Hamming Window)調用格式:w=hamming(n),根據長度 n 產生一個海明窗 w。
%(5)布拉克曼窗(Blackman Window)調用格式:w=blackman(n),根據長度 n 產生一個布拉克曼窗 w。
%(6)愷撒窗(Kaiser Window)調用格式:w=kaiser(n,beta),根據長度 n 和影響窗函數旁瓣的β參數產生一個愷撒窗w 1 clear all %清零
close all %關閉其他程序 N=45;w1=boxcar(N);%矩形窗的調用 w2=hamming(N);%漢明窗的調用
w3=blackman(N);%布萊克曼窗的調用 [h,w]=freqz(w1,N);%矩形窗的幅頻特性
figure(1)%第一張圖
plot(w/pi,20*log10(abs(h)));%繪制圖形
axis([0,1,-80,10]);%橫軸0到1,縱軸是-80到10 grid on%畫格
xlabel('歸一化頻率/π');%x軸標簽 ylabel('幅度/dB');%y軸標簽 title('矩形窗');%標題 figure(2)[h,w]=freqz(w2,N);plot(w/pi,20*log10(abs(h)));axis([0,1,-80,10]);grid on xlabel('歸一化頻率/π');ylabel('幅度/dB');title('漢明窗');figure(3)[h,w]=freqz(w3,N);plot(w/pi,20*log10(abs(h)));axis([0,1,-150,10]);grid on xlabel('歸一化頻率/π');ylabel('幅度/dB');title('布萊克曼窗');2 %N=15,帶通濾波器的兩個通帶邊界分別是w1=0.3π,w2=0.5π。用漢寧窗設計此線性相位濾波器,觀察
%它的實際3dB和20dB帶寬。N=45,重復這一設計,觀察幅頻和相位特性的變化,注意N變化的影響。
close all %關閉其他程序 clear all%清零 N=15;w1=0.3;w2=0.5;w=hanning(N);%漢寧窗的調用 n=0:N-1;alfa=(N-1)/2;%對稱軸
h=fir1(N-1,[w1 w2],w);%設計加窗函數的有效濾波器,w1,w2通帶的兩個范圍,w指漢寧窗
[h1,w3]=freqz(h,1);% %漢寧窗的幅頻特性 figure(1)%第一張圖
subplot(2,1,1);%兩張圖的第一張圖
plot(w3/pi,20*log10(abs(h1)));%繪制圖形
grid on;%畫格
axis([0,1,-80,10]);;%橫軸0到1,縱軸是-80到10 xlabel('歸一化頻率/π');%x軸標簽 ylabel('幅度/dB');%y軸標簽
subplot(2,1,2);%兩張圖的第二張圖 plot(w3/pi,angle(h1));grid on;axis([0,1,-4,4]);xlabel('歸一化頻率/π');ylabel('角度/rad');N=45;w=hanning(N);n=0:N-1;alfa=(N-1)/2;h=fir1(N-1,[w1 w2],w);[h1,w3]=freqz(h,1);figure(2)subplot(2,1,1);plot(w3/pi,20*log10(abs(h1)));grid on;axis([0,1,-80,10]);xlabel('歸一化頻率/π');ylabel('幅度/dB');subplot(2,1,2);plot(w3/pi,angle(h1));grid on;axis([0,1,-4,4]);xlabel('歸一化頻率/π');ylabel('角度/rad');3 close all%關閉其他程序 clear all%清零 N=15;w1=0.3;w2=0.5;wn1=boxcar(N);%矩形窗的調用
wn2=blackman(N);%布萊克曼窗的調用
hn1=fir1(N-1,[w1 w2],wn1);%設計加窗函數的有效濾波器,w1,w2通帶的兩個范圍,w指漢寧窗
hn2=fir1(N-1,[w1 w2],wn2);[h1,w3]=freqz(hn1,1);%矩形窗的幅頻特性 figure(1)%第一張圖%繪制圖形
plot(w3/pi,20*log10(abs(h1)));%繪制圖形 grid on;%畫格
axis([0,1,-80,10]);%橫軸0到1,縱軸是-80到10 xlabel('歸一化頻率/π');%x軸標簽 ylabel('幅度/dB');%y軸標簽 title('矩形窗,N=15');%標題 [h1,w3]=freqz(hn2,1);figure(2)plot(w3/pi,20*log10(abs(h1)));grid on;axis([0,1,-80,10]);xlabel('歸一化頻率/π');ylabel('幅度/dB');title('布萊克曼窗,N=15');N=45;wn1=boxcar(N);wn2=blackman(N);hn1=fir1(N-1,[w1 w2],wn1);hn2=fir1(N-1,[w1 w2],wn2);[h1,w3]=freqz(hn1,1);figure(3)plot(w3/pi,20*log10(abs(h1)));grid on;axis([0,1,-80,10]);xlabel('歸一化頻率/π');ylabel('幅度/dB');title('矩形窗,N=45');[h1,w3]=freqz(hn2,1);figure(4)plot(w3/pi,20*log10(abs(h1)));grid on;axis([0,1,-110,10]);xlabel('歸一化頻率/π');ylabel('幅度/dB');title('布萊克曼窗,N=45');4:
close all%關閉其他程序 clear all%清零 N=40;%beta=4 for n=1:3 %or循環 if n==1 %if語句 beta=4;elseif n==2 beta=6;else beta=10;end;w=kaiser(N,beta);%凱塞窗的調用
h=fir1(N-1,[0.2 0.4 0.6 0.8],w);%設計加窗函數的有效濾波器,w指漢寧窗 [h1,w1]=freqz(h,1);%凱塞窗的幅頻特性 figure(n)%第n張圖
subplot(2,1,1);%兩張圖的第一張圖 plot(w1/pi,20*log10(abs(h1)));%繪制圖形 grid on;%畫格
axis([0,1,-80,10]);%橫軸0到1,縱軸是-80到10 xlabel('歸一化頻率/π');%x軸標簽 ylabel('幅度/dB');%y軸標簽 if n==1 %if語句
title('beta=4');elseif n==2 title('beta=6');else title('beta=10');end;subplot(2,1,2);plot(w1/pi,angle(h1));grid on;axis([0,1,-4,4]);xlabel('歸一化頻率/π');ylabel('角度/rad');end 5 clear all%清零
close all%關閉其他程序 N=45;k=0:N-1;for k=0:N-1 %for循環 w=2*pi/N*k;%取樣 hk(1,k+1)=0;if((w>=0.2*pi)&&(w<=0.4*pi))||(w>=0.6*pi && w<=0.8*pi)||(w>=1.2*pi && w<=1.4*pi)||(w>=1.6*pi && w<=1.8*pi)hk(1,k+1)=1;end end k=0:N-1;hk(1,5)=0.5;hk(1,11)=0.5;hk(1,14)=0.5;hk(1,20)=0.5;hk(1,27)=0.5;hk(1,33)=0.5;hk(1,36)=0.5;hk(1,42)=0.5;thetak=-k*2*pi/N*((N-1)/2);%表示相位 hk1=hk.*exp(j*thetak);%定義式子 hn=ifft(hk1);%快速傅立葉逆變換 [h1,w1]=freqz(hn,1);%幅頻特性
plot(w1/pi,20*log10(abs(h1)));%繪制圖形 grid on;%畫格
axis([0,1,-80,10]);%橫軸0到1,縱軸是-80到10 xlabel('歸一化頻率/π');%x軸標簽 ylabel('幅度/dB');%y軸標簽
六、實驗分析及心得體會