第一篇:實驗一 VC開發(fā)環(huán)境的使用和常用算法的編程概要
實驗一 VC開發(fā)環(huán)境的使用和常用算法的編程
一、實驗目的
熟悉VC++6.0的集成開發(fā)環(huán)境,學會用它編寫、調(diào)試、運行程序。
二、實驗要求
對VC++6.0集成開發(fā)環(huán)境進行操作,用它編寫、調(diào)試和運行常用的程序,初步掌握使用方法;在課后編程題目中任選一題,編好程序,上機進行調(diào)試和運行,同時養(yǎng)成好的程序書寫風格。
三、實驗報告要求
1.寫出編程題目;
2.寫出題目分析(提取出算法和設計思路); 3.寫出源代碼;
4.寫出多次運行的記錄或出錯調(diào)試信息(上機時寫); 5.寫出實驗后的心得體會(上機后寫)。
四、上交源代碼要求
1.從網(wǎng)絡提交;
2.文件名包含:編程題目名稱、班級、姓名; 3.第二周前提交。
第二篇:實驗一 DSP Builder設計應用概要
湖南文理學院電氣與信息工程學院 《嵌入式系統(tǒng)及應用》 實 驗 指 導 書
指導教師:伍宗富
實驗一 DSP Builder設計應用 實驗學時:4學時 實驗類型:綜合 實驗要求:必做
一、實驗目的
1.掌握DSP Builder設計應用的方法。2.掌握FIR濾波器的設計步驟。
3.掌握MATLAB、DSP Builder、Quartus II的綜合應用。
二、實驗原理
1.4階FIR濾波器子系統(tǒng)設計
] 為了便于調(diào)用子系統(tǒng)模塊的更高級系統(tǒng)進行SignalCompile分析,必須對生成的子系統(tǒng)模塊的“Mask type”進行設置。
使用“Mask Subsystem…”中的“Documentation”設置“Mask type”為“SubSystem AlteraBlockSet”就可以利用SignalCompiler正確地生成VHDL代碼
2.直接I型16階FIR數(shù)字濾波器設計 SignalCompiler 16個常數(shù)端口設置濾波器的系數(shù),可根據(jù)具體要求進行計算而確定。3.使用MATLAB的濾波器設計工具,獲得濾波器系數(shù)。(1打開Matlab的FDATool “start”->“ToolBoxes”->“Filter Design”-> FDATool
(2選擇Design Filter 設計濾波器(階級選N-1=16-1=15(3濾波器分析(查看其幅頻特性曲線(4導出濾波器系數(shù)(File-> Export…
注:在Matlab主窗口的命令窗口中鍵入變量名并乘量級數(shù)轉(zhuǎn)換fir16_data*(2^8會顯示數(shù)據(jù),如FIR濾波器模型使用還需轉(zhuǎn)為整數(shù)round(fir16_data*(2^8。將顯示數(shù)據(jù)記錄并輸入上面 16個常數(shù)端口完成設置濾波器的系數(shù)
4.Quartus工程實現(xiàn)
5.掃頻模塊設計(產(chǎn)生實驗用輸入信號
Adder Subtractor2 D ecrem ent3 注:仿真時將位值改小點,仿真后再改回來
Adder Subtractor2 Decrement3 6.FIR濾波器仿真(濾波器系數(shù)改變,則濾波器性能發(fā)生變化。
三、實驗內(nèi)容
設計一個16階的低通FIR濾波器,對模擬信號的采樣頻率Fs為48KHz,要求信號的截止頻率為Fc=10.8KHz,輸入序列為寬為9位(最高位為符號位。
四、實驗步驟
1.使用DSP Builder完成4階FIR濾波器子系統(tǒng)模型設計。2.使用DSP Builder完成直接I型16階FIR數(shù)字濾波器模型設計。3.使用MATLAB的濾波器設計工具,獲得濾波器系數(shù)。
4.在DSP Builder中修改直接I型16階FIR數(shù)字濾波器模型濾波系數(shù),并將其轉(zhuǎn)換為Quartus工程文件。
5.使用Quartus完成FIR濾波器工程設計調(diào)試。
五、實驗組織運行要求
本實驗利用DSP Builder、MATLAB、Quartus設計一個FIR濾波器,實驗程序并不是很復雜,為了提高學生獨立設計的能力,應采用以學生自主訓練為主的開放模式組織教學,然后在指導老師的監(jiān)督下,由學生自己動手,按實驗要求完成任務,最后由指導老師檢查實驗結果后方可離開。
(1畫出系統(tǒng)的原理框圖,說明系統(tǒng)中各主要組成部分的功能。(2熟悉各個VHDL源程序。(5記錄系統(tǒng)仿真、硬件驗證結果。
(6記錄實驗過程中出現(xiàn)的問題及解決辦法。
六、實驗條件 1.計算機一臺;2.DSP Builder、MATLAB、Quartus開發(fā)工具軟件;3.SOPC開發(fā)板。
七、實驗注意事項
1.做實驗項目要建立工程文件夾,且為英文路徑和名稱。2.學生必須嚴格按實驗操作規(guī)程進行實驗,要用U盤保存數(shù)據(jù)。3.使用實驗開發(fā)板進行硬件驗證時,必須愛護實驗開發(fā)裝置。
八、思考題
1.如何設計其它類型的濾波器,如16階帶通、高通、帶阻的FIR濾波器? 2.如何在MATLAB中使用DSP Builder完成FIR濾波器仿真?
九、實驗報告要求
實驗結束后,學生應根據(jù)做實驗情況,認真完成實驗報告的書寫。實驗報告應包括實驗目的、實驗內(nèi)容、儀器設備、實驗原理或電路、源程序清單、實驗步驟、實驗結果及分析和實驗過程中出現(xiàn)的問題及解決方法等。
附錄: 實驗報告范例(報告用實驗紙手寫,圖手畫)實驗 X(實驗課題)1.實驗目的 1)掌握 DSP Builder 設計應用的方法。2)掌握 FIR 濾波器的設計步驟。3)掌握 MATLAB、DSP Builder、Quartus II 的綜合應用。2.實驗內(nèi)容(……)3.實驗條件 1)計算機一臺; 2)DSP Builder、MATLAB、Quartus 開發(fā)工具軟件; 3)SOPC 開發(fā)板。4.實驗設計 1)設計原理(設計思路、框圖、工作原理……)2)設計實現(xiàn)(各模塊邏輯功能描述及編譯后模型圖等)3)器件選擇及管腳鎖定說明 5.實驗結果及總結 1)系統(tǒng)仿真情況 2)硬件驗證情況 3)實驗過程中出現(xiàn)的問題及解決辦法 6
第三篇:C語言實驗一 熟悉C程序開發(fā)環(huán)境、進行簡單程序的調(diào)試
實驗一 熟悉C程序開發(fā)環(huán)境、進行簡單程序的調(diào)試
實驗目的:
1、初步了解vc++6.0環(huán)境;
2、熟悉掌握調(diào)試C程序的步驟。
實驗內(nèi)容:
1、如何進入vc++6.0環(huán)境?如何新建一C程序文件并進行調(diào)試?
2、對教材中例1.1至例1.3在vc++6.0環(huán)境中進行調(diào)試。
3、上機調(diào)試教材課后習題4、5題。
實驗原理、步驟與分析:
【要求】每個實驗內(nèi)容都要先寫出其實現(xiàn)的基本原理,再寫出實驗步驟,最后根據(jù)每個實驗內(nèi)容的實驗結果進行分析說明。
第四篇:實驗一__Linux下C編程
實驗一 Linux下C編程
一. 實驗目的:
1. 熟練使用vi中的常見操作,并且熟悉vi的3種模式;
2. 熟練掌握gcc編譯命令及gdb的調(diào)試命令;通過對有問題程序的跟蹤調(diào)試,進一步提高發(fā)現(xiàn)問題和解決問題的能力;
3. 通過對包含文件的makefile的編寫,熟悉各種形式的makefile; 4. 通過使用autotools生成包含多文件的makefile。二. 實驗內(nèi)容
1. 熟練使用vi(1)在“/root”目錄下建一個名為“vi”的目錄;(2)進入“vi”目錄;
(3)將文件“/etc/inittab”復制到“vi”目錄下;(4)使用vi打開“vi”目錄下inittab;
(5)設定行號,指出設定initdefault的所在行號;(6)將光標移到該行;(7)復制該行內(nèi)容;
(8)將光標移到最后一行行首;(9)粘貼復制行的內(nèi)容;(10)撤銷第9步操作;
(11)將光標移到最后一行行尾;(12)粘貼復制行的內(nèi)容;
(13)光標移到“si::sysinit:/etc/rc.d/rc.sysinit”;(14)刪除該行;(15)存盤但不退出;(16)將光標移到行首;
(17)插入模式下輸入“Hello,this is vi world!”;(18)返回命令行模式;
(19)向下查找字符串“0:wait”;(20)向上查找字符串“halt”;(21)強制退出vi,不存盤。實驗步驟見書本P87 2. 用gdb調(diào)試程序中的bug(1)使用vi編輯器將一下代碼輸入到名為greet.c的文件中。此代碼的原意為輸出倒序main函數(shù)中定義的字符串,但結果顯示沒有輸出。代碼如下所示:(2)使用gcc編譯這段代碼,注意加上“-g”選項以方便之后的調(diào)試;(3)運行生成的可執(zhí)行文件,觀察運行結果;
(4)使用gdb調(diào)試程序,通過設置斷點,單步跟蹤,一步步找出錯誤所在;(5)糾正錯誤,更改源程序并得到正確結果; 實驗步驟見書本P88
3. 編寫包含多文件的makefile(1)用vi在同一目錄下編輯兩個簡單的hello程序,如下所示:
#hello.c
#include “hello.c”
int main()
{
printf(“Hello everyone!n”);
}
#hello.h
#include
(2)仍在同一目錄下用vi編輯makefile文件,且不使用變量替換,用一個目標體實現(xiàn),然后用make驗證所編寫的makefile是否正確;
(3)仍將上述makefile使用變量替換實現(xiàn),同樣用make驗證所編寫的makefile是否正確;
(4)編輯另一個makefile,取名為makefile1,不使用變量替換,但用兩個目標體實現(xiàn)(首先將hello.c和hello.h編譯為hello.o,再將hello.o編譯為hello),再用make的“-f”選項驗證這個makefile的正確性;(5)將上述makefile1使用變量替換實現(xiàn) 實驗步驟見書本P90 4. 使用autotools生成包含多文件的makefile(1)在原目錄下新建文件夾auto(2)將上例中的兩個代碼文件“hello.c”和“hello.h”復制到該目錄下(3)使用autoscan生成configure.scan(4)編輯configure.scan,修改相關內(nèi)容,并將其重命名為configure.in(5)使用aclocal生成aclocal.m4(6)使用autoconf生成configure(7)使用autoheader生成config.h.in(8)編輯makefile.am(9)使用automake生成makefile.in(10)使用configure生成makefile(11)使用make生成hello可執(zhí)行文件,并在當前目錄下運行hello查看結果(12)使用make install將hello安裝到系統(tǒng)目錄下,并運行,查看結果(13)使用make dist生成hello壓縮包(14)解壓hello壓縮包(15)進入解壓目錄
(16)在該目錄下安裝hello軟件 實驗步驟見書本P91 三. 實驗結果截圖
1.實驗一截圖
Linux下的簡單的運用:
圖一 對inittab文件做完處理后的文件結果:
圖二
圖三
2.實驗二截圖
第一遍運行greet.c的結果:
圖四 用gdb調(diào)試的過程:
圖五
圖六
圖七
圖八
圖九
3.實驗三截圖 第一次運行的結果
圖十 第一次運行makefile的結果:
圖十一 第二次運行makefile的結果:
圖十二 第一次運行makefile1的運行結果:
圖十三 第二次運行makefile的運行結果:
圖十四 四. 實驗心得體會
1.對于實驗一:
復習了linux 下面對于文件編輯的一些知識。
2.對于實驗二:
學會了gdb調(diào)試的簡單運用:gdb l()-查看源代碼;gdb b()-設置斷點;gdb info b-查看斷點情況;gdb r-運行代碼; gdb n-單步運行代碼; gdb p()-查看;gdb c-繼續(xù)運行; gab q-退出;對于以后代碼的改錯很有幫助。
3.對于實驗三:
實驗三是我做的最不開心的一個了,開始在運行makefile,不管怎么樣都是錯的,可是檢查卻沒有任何錯誤,后來想起來以前做makefile的時候要用tab鍵縮進的,這樣之后發(fā)現(xiàn)就可以了。這個實驗雖然讓我很煩,但是想起了以前學liunx的好多東西,幫助很大,也覺得以前知識要常復習,這樣才不容易忘。
第五篇:實驗一 熟悉MATLAB軟件環(huán)境及命令窗口的使用實驗報告
三、實驗內(nèi)容
1.命令窗口的簡單使用
(1)簡單矩陣的輸入
A=[1 2 3;4 5 6;7 8 9] 或者[1,2,3;4,5,6;7,8,9]
——》
A=(2)求[12+2×(7-4)]÷3的算術運算結果——》
a=7;b=4;c=2;d=12;e=3;f=a-b;g=c*f;h=d+g;k=d/e;m=k/e----->m
=2 2.有關向量、矩陣或數(shù)組的一些運算
(1)設A=15;B=20;求C=A+B與c=a+b? A=15;B=20;C=A+B------->C=
35(2)設A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B與A.*B?
A=[1 2 3;4 5 6;7 8 9];B=[9 8 7;6 5 4;3 2 1];C=A*B------->C=
C=A.*B--------->C= 16 21 25 24
16 9
(3)設A=10,B=20;求C=A/B與D=AB? A=10;B=20;C=A/B------------->C=
0.5
D=AB-------->D=
2(4)設a=[1-2 3;4 5-4;5-6 7] 請設計出程序,分別找出小于0的矩陣元素及其位置(單下標、全下標的形式),并將其單下標轉(zhuǎn)換成全下標。n=0;For i=0:1:2 For j=0:1:2 While(a[i][j]<0)b[n]=a[i][j];n=n+1;End B[n](5)在MATLAB命令行窗口運行A=[1,2;3,4]+i*[5,6;7,8];看結果如何?如果改成運行A=[1,2;3,4]+i[5,6;7,8],結果又如何?
(6)請設計出程序完成下列計算:
a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?
a=[1 2 3;3 4 2;5 2 3];b=[1 2 3;3 4 2;5 2 3];c=a*b----------->c=
C=a.*b---------->c=
(7)有一段程序設計如下,請思考并說明運行結果及其原因
clear
X=[1 2;8 9;3 6];
X(:)8)使用兩種方法,創(chuàng)建一對角矩陣