第一篇:實驗一-信息熵與圖像熵計算-正確
實驗一信息熵與圖像熵計算(2 學時)
一、實驗目的
1.復習MATLAB的基本命令,熟悉MATLAB下的基本函數; 2.復習信息熵基本定義,能夠自學圖像熵定義和基本概念。
二、實驗內容
1.能夠寫出MATLAB源代碼,求信源的信息熵;
2.根據圖像熵基本知識,綜合設計出MATLAB程序,求出給定圖像的圖像熵。
三、實驗儀器、設備
1.計算機-系統最低配置256M內存、P4 CPU; 2.MATLAB編程軟件。四 實驗流程圖
五 實驗數據及結果分析
四、實驗原理
1.MATLAB中數據類型、矩陣運算、圖像文件輸入與輸出知識復習。
2.利用信息論中信息熵概念,求出任意一個離散信源的熵(平均自信息量)。自信息是一個隨機變量,它是指某一信源發出某一消息所含有的信息量。所發出的消息不同,它們所含有的信息量也就不同。任何一個消息的自信息量都代表不了信源所包含的平均自信息量。不能作為整個信源的信息測度,因此定義自信息量的數學期望為信源的平均自信息量:
1()1()[log ]()log()i n i i p a i H E p a p a ????? X 信息熵的意義:信源的信息熵H是從整個信源的統計特性來考慮的。它是從平均意義上來表征信源的總體特性的。對于某特定的信源,其信息熵只有一個。不同的信源因統計特性不同,其熵也不同。
3.學習圖像熵基本概念,能夠求出圖像一維熵和二維熵。
圖像熵是一種特征的統計形式,它反映了圖像中平均信息量的多少。圖像的一維熵表示圖像中灰度分布的聚集特征所包含的信息量,令Pi表示圖像中灰度值為i的像素所占的比例,則定義灰度圖像的一元灰度熵為: 2550 log i ii p p??? H 圖像的一維熵可以表示圖像灰度分布的聚集特征,卻不能反映圖像灰度分布的空間特征,為了表征這種空間特征,可以在一維熵的基礎上引入能夠反映灰度分布空間特征的特征量來組成圖像的二維熵。選擇圖像的鄰域灰度均值作為灰度2 分布的空間特征量,與圖像的像素灰度組成特征二元組,記為(i,j),其中i表示像素的灰度值(0<=i<=255),j表示鄰域灰度(0<=j<=255), 2(,)/ ij p f i j N ?
上式能反應某像素位置上的灰度值與其周圍像素灰度分布的綜合特征,其中f(i,j)為特征二元組(i,j)出現的頻數,N為圖像的尺度,定義離散的圖像二維熵為: 2550 logijij i p p??? H 構造的圖像二維熵可以在圖像所包含信息量的前提下,突出反映圖像中像素位置的灰度信息和像素鄰域內灰度分布的綜合特征。
五、實驗步驟
1.求解信息熵過程:
(1)輸入一個離散信源,并檢查該信源是否是完備集;(2)去除信源中符號分布概率為零的元素;(3)根據平均信息量公式,求出離散信源的熵。2.圖像熵計算過程:
(1)輸入一幅圖像,并將其轉換成灰度圖像;(2)統計出圖像中每個灰度階象素概率;
(3)統計出圖像中相鄰兩象素的灰度階聯合分布矩陣;(4)根據圖像熵和二階熵公式,計算出一幅圖像的熵。
六、實驗報告要求
1.按照本節內容后實驗報告形式書寫;
2.實驗總結和心得要詳細,可以根據自己實驗情況,寫出建議。
七、實驗注意事項
1.MATLAB語言課下多復習,盡量采用模塊化編程方法,通過函數調用形式運行程序。
2.仔細理解、體會圖像熵的概念,能夠將其聯合熵的概念理解透徹。
八、思考題
舉例說明圖像熵、信息熵在現實中有何實踐指導意義? 附錄1:實驗報告樣式: 實驗報告
班級:姓名:學號:組別:同組人: 課程名稱:實驗室:實驗時間:
(使用實驗報告紙的,以上內容可按照實驗報告紙格式填寫)實驗一信息熵與圖像熵計算3
一、實驗目的:
二、實驗內容與原理:
三、實驗器材(設備、元器件、軟件工具、平臺):
四、實驗步驟:
五、程序流程圖:
六、實驗數據及結果分析:
七、實驗結論:
八、思考題:
九、編程、調試過程中遇到的問題及解決方法:
十、其他:實驗總結、心得體會及對本實驗方法、手段及過程的改進建議等。附錄2:圖像一維二維熵程序:
close all;clc;I=imread('11.bmp');img=rgb2gray(I);imview(I),imview(img);[ix,iy]=size(img);P1=imhist(img)/(ix*iy);temp=double(img);temp=[temp,temp(:,1)];CoefficientMat=zeros(256,256);for x=1:ix for y=1:iy i=temp(x,y);j=temp(x,y+1);CoefficientMat(i+1,j+1)=CoefficientMat(i+1,j+1)+1;end end P2 = CoefficientMat./(ix*iy);H1=0;H2=0;for i=1:256 if P1(i)~=0 H1=H1-P1(i)*log2(P1(i));end for j=1:256 if P2(i,j)~=0 H2=H2-P2(i,j)*log2(P2(i,j));end end end H2=H2/2;sprintf('1 ord image entropy is:%d',H1)sprintf('2 ord image entropy is:%d',H2)
實驗二香農編碼(2 個學時)
一、實驗目的
1.了解香農編碼的基本原理及其特點; 2.熟悉掌握香農編碼的方法和步驟; 3.掌握MATLAB 編寫香農編碼的程序。
二、實驗內容
1.根據香農編碼的方法和步驟,用香農編碼編寫程序; 2.用編寫的源程序驗證書中例題的正確性。
三、實驗儀器、設備
1.計算機-系統最低配置256M 內存、P4 CPU; 2.MATLAB 編程軟件。
四、實驗原理 1.香農編碼原理:
香農第一定理指出了平均碼長與信源之間的關系,同時也指出了可以通過編 碼使平均碼長達到極限值,這是一個很重要的極限定理。香農第一定理指出,選 擇每個碼字的長度i K 滿足下式: I(Xi)?K ?I(Xi)?1,?i 就可以得到這種碼,這種編碼方法就是香農編碼。2.香農編碼算法:
1.將信源消息符號按其出現的概率大小依次排列: 1 2 n P(X)?P(X)?, ,?P(X)2.確定滿足下列不等式整數碼長i K ; log2p()log2()1 i ii?x ?K ??p x ?
3.為了編成唯一可譯碼,計算第i 個消息的累加概率; 1 1()i i k k pp x ? ? ??
4.將累加概率i P變成二進制數; 5.取i P 二進制數的小數點后i K 位即為該消息符號的二進制碼字。
五、實驗步驟
1.根據實驗原理,設計香農編碼程序;
2.輸入一組信源消息符號概率,可以求香農編碼、平均碼長和編碼效率。
六、實驗報告要求 5 1.按照本節內容后實驗報告形式書寫;
2.實驗總結和心得要詳細,可以根據自己情況寫出建議。
七、實驗注意事項
1.香農編碼是符號概率大的用短表示,小長程序中 香農編碼是符號概率大的用短表示,小長程序中 香農編碼是符號概率大的用短表示,小長程序中 需要對概率進行排序,此我們調用 MATLAB MATLABMATLABMATLABMATLAB的庫函數; 2.最后需要注意的是,求得碼字依次與排序符號概率對應 ; 3.向無窮方取最小正整數位 ceilceilceil 函數。
八、思考題
舉例說明香農編碼在現實中有際作用,列一個子并簡要說明? 附錄 1:實驗報告樣式: 實驗報告
班級:姓名:學號:組別:同組人: 課程名稱:實驗室:實驗時間:
(使用實驗報告紙的,以上內容可按照實驗報告紙格式填寫)
實驗二香農編碼
一、實驗目的:
二、實驗內容與原理:
三、實驗器材(設備、元器件、軟件工具、平臺):
四、實驗步驟:
五、程序流程圖:
六、實驗數據及結果分析:
七、實驗結論:
八、思考題:
九、編程、調試過程中遇到的問題及解決方法:
十、其他:實驗總結、心得體會及對本實驗方法、手段及過程的改進建議等。附錄 2:香農編碼 程序 : close all;clc;n=input('輸入信源符號個數:');p=zeros(1,n);for i=1:n p(1,i)=input('輸入信源符號概率:');end if sum(p)<1||sum(p)>1 error('輸入概率不符合概率分布')end 6 y=fliplr(sort(p));D=zeros(n,4);D(:,1)=y';for i=2:n D(1,2)=0;D(i,2)=D(i-1,1)+D(i-1,2);end for i=1:n D(i,3)=-log2(D(i,1));D(i,4)=ceil(D(i,3));end D A=D(:,2)';B=D(:,4)';Code_length=0;for j=1:n Code_length=Code_length+p(j)*D(j,4);end H=0;for j=1:n H=H+p(j)*log2(1/p(j));end for j=1:n fprintf('輸入信源符號概率為%f的碼字為:',p(1,j));C=deczbin(A(j),B(j));disp(C)end Efficiency=H/(Code_length)fprintf('平均碼長:n');disp(Code_length)fprintf('n 香農編碼效率:n');disp(Efficiency)A:累加概率; B:碼子長度。:碼子長度。function [C]=deczbin(A,B)C=zeros(1,B);temp=A;for i=1:B temp=temp*2;if temp>1 temp=temp-1;C(1,i)=1;else C(1,i)=0;end end 7 實驗三費諾編碼(2 學時)
一、實驗目的
掌握費諾編碼方法的基本步驟及優缺點。
二、實驗內容
對于給定的信源的概率分布,按照費諾編碼的方法進行計算機實現。
三、實驗儀器、設備
1.計算機-系統最低配置256M 內存、P4 CPU; 2.MATLAB 編程軟件。
四、實驗原理 1.費諾編碼原理:
費諾編碼就是通過使編碼中各個句號出現的概率大致相等,實現概率均勻化,從而減少冗余度,提高編碼效率。凡是能載荷一定的信息量,且碼字的平均長度 最短,可分離的變長碼的碼字集合稱為最佳變長碼。在編N 進制碼時首先將信 源消息符號按其出現的額概率一次又小到大排列開來,并將排列好的心愿符號按 概率值分N 大組,使N 組的概率之和近似相同,并對各組賦予一個N 進制碼元 0、1...N-1。之后再針對每一個大組內的心愿符號做如上處理,即再分為概率相 同的N 組,賦予N 進制碼元。如此重復,直到每組只剩下一個心愿符號為止。此時每個信源符號所對應的碼字即為費諾碼。針對同一個心愿,費諾碼比香農碼平均碼長小,消息出書速率大,編碼效率高。費諾編碼是一種信源編碼,它編碼 后的費諾碼要比香農碼的平均碼長小,消息傳輸速率大,編碼效率高。但它屬于 概率匹配編碼它不是最佳的編碼方法。2.費諾編碼算法:
(1)將信源消息符號按其出現的概率大小依次排列: 1 2()()...()n P X ?P X ?P X(2)將依次排列的信源符號按概率值分為兩大組,使兩個組的概率之和近似相同,并對各組賦予一個二進制碼元“0”和“1”;
(3)將每一大組的信源符號再分成兩組,使劃分后的兩個組的概率之和近似相同,并對各組賦予一個二進制符號“0”和“1”;(4)如此重復,直至每個組只剩下一個信源符號為止;(5)信源符號所對應的碼子即為費諾碼。
五、實驗步驟
1.根據實驗原理,設計費諾編碼程序;
2.輸入一組信源消息符號概率,可以求費諾編碼,平均碼長和編碼效率。8
六、實驗報告要求
1.按照本節內容后實驗報告形式書寫;
2.實驗總結和心得要詳細,可以根據自己情況寫出建議。
七、實驗注意事項 1.MATLAB 1.MATLAB1.MATLAB1.MATLAB1.MATLAB語言課下多復習,盡量采用模塊化編程方法通過函數調形式 語言課下多復習,盡量采用模塊化編程方法通過函數調形式 語言課下多復習,盡量采用模塊化編程方法通過函數調形式 語言課下多復習,盡量采用模塊化編程方法通過函數調形式 運行程序; 2.仔細理解、體會費諾編碼。
八、思考題
舉例說明 費諾編碼 在現實中際應用,列舉一個例子并簡要說明? 附錄 1:實驗報告樣式: 實驗報告
班級:姓名:學號:組別:同組人: 課程名稱:實驗室:實驗時間:
(使用實驗報告紙的,以上內容可按照實驗報告紙格式填寫)實驗三費諾編碼
一、實驗目的:
二、實驗內容與原理:
三、實驗器材(設備、元器件、軟件工具、平臺):
四、實驗步驟:
五、程序流程圖:
六、實驗數據及結果分析:
七、實驗結論:
八、思考題:
九、編程、調試過程中遇到的問題及解決方法:
十、其他:實驗總結、心得體會及對本實驗方法、手段及過程的改進建議等。附錄2:費諾編程程序: clc;clear all;N=input('輸入信源符號的個數:');s=0;l=0;H=0;for i=1:N fprintf('第%d個',i);p(i)=input('p=');if(p(i)<=0)||(p(i)>=1)error('不符合分布概率');end s=s+p(i);9 H=H+(-p(i)*log2(p(i)));end if(s<=0.999999||s>=1.000001)error('不符合分布概率')end for i=1:N-1 for j=i+1:N if p(i)
一、實驗目的
1.掌握哈夫曼編碼原理;
2.熟練掌握哈夫曼樹的生成方法;
3.學會利用 MATLAB MATLABMATLABMATLABMATLAB實現 哈夫曼 編碼 ; 4.提高獨立進行算法編程的能力。
二、實驗內容
1.用 MATLAB MATLABMATLABMATLABMATLAB實現 哈夫曼 哈夫曼 編碼算法程序; 2.要求程序輸出顯示所有的碼字以及編效率;
3.設計簡單的輸入界面(可以是文字提示信息),程序運行時用 設計簡單的輸入界面(可以是文字提示信息),程序運行時用 設計簡單的輸入界面(可以是文字提示信息),程序運行時用 設計簡單的輸入界面(可以是文字提示信息),程序運行時用 設計簡單的輸入界面(可以是文字提示信息),程序運行時用 戶輸入代表信源符號概率的向量;要對用進行合法性檢查 戶輸入代表信源符號概率的向量;要對用進行合法性檢查 ;
4.(選做)隨機生成一幅圖像,隨機生成一幅圖像,實現 哈夫曼 圖像編碼,比較前后 圖像編碼,比較前后 圖片 大小。
三、實驗儀器設備
1.計算機-系統最低配置 256M 內存、P4 CPUCPUCPU;
2.MATLAB MATLABMATLABMATLABMATLAB編程軟件。編程軟件。
四、實驗原理
1.二進制 哈夫曼 編碼的基本原理及算法
(1)把信源符號集中的所有按概率從大到小排隊 把信源符號集中的所有按概率從大到小排隊 ;
(2)取概率最小的兩個符號作為片葉子合并(縮減)到一節點 取概率最小的兩個符號作為片葉子合并(縮減)到一節點 ;
(3)視此節點為新符號,其概率等于被合并(縮減)的兩個之和參 視此節點為新符號,其概率等于被合并(縮減)的兩個之和參 與概率排隊 ;
(4)重復(2)(3)(2)(3)兩步驟,直至全部符號都被合并(縮減)到根 兩步驟,直至全部符號都被合并(縮減)到根 ;(5)從根出發,對各分枝標記 從根出發,對各分枝標記 從根出發,對各分枝標記 0和 1。從根到葉的 路徑就給出了各個碼字。從根到葉的 路徑就給出了各個碼字編碼和長。
2.哈夫曼 樹的編碼原理
(1)程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 程序的輸入:以一維數組形式要進行 哈夫曼 哈夫曼 哈夫曼 編碼的 信源符號編碼的 信源符號編碼的 信源符號編碼的 信源符號編碼的 信源符號編碼的 信源符號編碼的 信源符號編碼的 信源符號概率,在運行該程序前顯示文字提信息所要輸入的矢量; 概率,在運行該程序前顯示文字提信息所要輸入的矢量; 概率,在運行該程序前顯示文字提信息所要輸入的矢量; 概率,在運行該程序前顯示文字提信息所要輸入的矢量; 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 然后對輸入的概率矢量進行合法性判斷,原則為:如果中存在 小于 0的項,則輸入不合法提示重新;如果概率矢量求和大于 1,則輸入也不合法,提示重新。
(2)在輸入的概率矩陣 p正確的前提條件下 ,對 p進行排序,并用矩陣 L記 錄 p排序之前各元素的順,然后將概率數組 p的前兩項,即 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 概率最小的兩個數加和,得到新一組序列重復以上過程后 得到一個記錄概率加和過程的矩陣 p以及每次排序之前概率順的矩陣 ; 12(3)新生成一個 n-1行 n列,并且每個元素含有 n個字符的空白矩陣,然后 進行 哈夫曼 編碼。
五、實驗步驟
1.輸入一個離散信源,并檢查該是否完備集;
2.使用 哈夫曼 編碼原理進行 哈夫曼 程序編寫 ;
3.輸出離散信源中每個符號的 哈夫曼 編碼 及平均碼長 和編碼效率,并與手工,并與手工 運算的結果進行比較。
六、實驗報告要求
1.按照本節內容后實驗報告形式書寫;
2.實驗總結和心得要詳細,可以根據自己情況寫出建議。
七、實驗注意事項 1.比較大小 在 MATLAB MATLABMATLABMATLABMATLAB中,調用的是 sort 函數 ; 2.仔細理解、體會 哈夫曼 編碼思想。
八、思考題
比較香農編碼、費諾哈夫曼并說出他們的優缺點? 附錄 1:實驗報告樣式: 實 驗 報 告
班級: 姓名: 學號: 組別: 同組人: 課程名稱: 實驗室: 實驗時間:
(使用實驗報告紙的,以上內容可按照實驗報告紙格式填寫)實驗四 哈夫曼編碼
一、實驗目的:
二、實驗內容與原理:
三、實驗器材(設備、元器件、軟件工具、平臺):
四、實驗步驟:
五、程序流程圖:
六、實驗數據及結果分析:
七、實驗結論:
八、思考題:
九、編程、調試過程中遇到的問題及解決方法:
十、其他:實驗總結、心得體會及對本實驗方法、手段及過程的改進建議等。附錄 2:哈夫曼編碼程序 : clear all;close all;clc;13 n=input('輸入信源符號數:');p=zeros(1,n);for i=1:n p(1,i)=input('輸入信源符號概率:');end q=p;if sum(p)<1||sum(p)>1 error('輸入概率不符合概率分布')end a=zeros(n-1,n);n=length(p);for i=1:n-1 [q,l]=sort(q);a(i,:)=[l(1:n-i+1),zeros(1,i-1)];q=[q(1)+q(2),q(3:n),1];end for i=1:n-1 c(i,1:n*n)=blanks(n*n);end c(n-1,n)='1';c(n-1,2*n)='0';for i=2:n-1 c(n-i,1:n-1)=c(n-i+1,n*(find(a(n-i+1,:)==1))-(n-2):n*(find(a(n-i+1,:)==1)));c(n-i,n)='1';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='0';for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(a(n-i+1,:)==j+1)-1)+1:n*find(a(n-i+1,:)==j+1));end end for i=1:n h(i,1:n)=c(1,n*(find(a(1,:)==i)-1)+1:find(a(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));end Code_length=0;for i=1:n Code_length=Code_length+p(1,i)*ll(i);End Efficiency=H/(Code_length);fprintf('n 哈夫曼編碼:n');disp(h)fprintf('n平均碼長:n');disp(Code_length)fprintf('n 哈夫曼編碼效率:n');disp(Efficiency)14 實驗五 算術編碼(2學時)
一、實驗目的
1.掌握算數編碼原理;
2.學習算術編碼基本流程 ,學會調試算術編碼程序 ; 3.根據給出資料,自學適應 0階算術編碼 方法。
二、實驗內容
1.利用 MATLAB MATLABMATLABMATLABMATLAB編寫程序實現算數碼; 編寫程序實現算數碼;
2.對文件符號進行概率統計,生成編碼表; 3.對文件進行壓縮編碼;
3.(選做)對文件進行解壓縮,比較原始數據和后的之間是否有損(選做)對文件進行解壓縮,比較原始數據和后的之間是否有損(選做)對文件進行解壓縮,比較原始數據和后的之間是否有損(選做)對文件進行解壓縮,比較原始數據和后的之間是否有損 耗。三實驗儀器、設備
1.計算機-系統最低配置 256M 內存、P4 CPUP4 CPU P4 CPUP4 CPU; 2.MATLAB MATLABMATLABMATLABMATLAB編程軟件。
四、實驗原理 算術編碼的編碼對象是一則消息或一個字符序列,其編碼思路是將該消息或字符序列表示成0和1之間的一個間隔(Interval)上的一個浮點小數。在進行算術編碼之前,需要對字符序列中每個字符的出現概率進行統計,根據各字符出現概率的大小,將每個字符映射到[0,1]區間上的某個子區間中。然后,再利用遞歸算法,將整個字符序列映射到[0,1]區間上的某個Interval中。在進行編碼時,只需從該Interval中任選一個小數,將其轉化為二進制數。
符號序列越長,編碼表示它的Interval的間隔就越小,表示這一間隔所需的二進制位數就越多,編碼輸出的碼字就越長。
五、實驗步驟
項目文件建立步驟同實驗二,下面列出對給定序的算術編碼:
1.編碼器在開始時將“當前間隔”[L,H)設置為 設置為 [0,1); 2.對每一事件,編碼器按步驟(a)和(b)進行處理 ;(a)編碼器將“當前間隔”分為子,每一個事件;
(b)一個子間隔的大小與下將出現事件概率成比例,編碼器選擇 子間 隔對應于下一個確切發生的事件相,并使它成為新“當前子間 隔對應于下一個確切發生的事件相,并使它成為新“當前子間 隔對應于下一個確切發生的事件相,并使它成為新“當前隔”。隔”。
3.最后輸出的“當前間隔”下邊界就是該給定事件序列算術編碼。
六、實驗報告要求
1.按照本節內容后實驗報告形式書寫; 15 2.算術編碼學習心得,特別是根據自適應模型 算術編碼學習心得,特別是根據自適應模型 0階編碼,調整概率分布方法。階編碼,調整概率分布方法。根據自己實驗情況,寫出的做中遇到具體問題對本提建 根據自己實驗情況,寫出的做中遇到具體問題對本提建 根據自己實驗情況,寫出的做中遇到具體問題對本提建 議。
七、實驗注意事項
1.編碼概論累加分布;
2.編碼區間上限和下迭代算法; 3.自適應模型 0階的編碼原理。
八、思考題
算術編碼的優缺點? 附錄 1:實驗報告樣式: 實驗報告
班級:姓名:學號:組別:同組人: 課程名稱:實驗室:實驗時間:
(使用實驗報告紙的,以上內容可按照實驗報告紙格式填寫)實驗五算術編碼
一、實驗目的:
二、實驗內容與原理:
三、實驗器材(設備、元器件、軟件工具、平臺):
四、實驗步驟:
五、程序流程圖:
六、實驗數據及結果分析:
七、實驗結論:
八、思考題:
九、編程、調試過程中遇到的問題及解決方法:
十、其他:實驗總結、心得體會及對本實驗方法、手段及過程的改進建議等。附錄二:算術編碼程序
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%start%%%%%%%%%%%%%%%%%%%%%%%')disp('程序限定字符為:a b c d e');str=input('請輸入編碼的字符串:');[j,k]=size(str);l=0;r=1;d=1;p=[0.2 0.3 0.1 0.15 0.25];pa=0.2;pb=0.3;16 pc=0.1;pd=0.15;pe=0.25;n=length(str);disp('a b c d e')disp(num2str(p))for i=1:k if i==1 switchstr(i)case 'a' m=1;a1=0;a2=pa;case 'b' m=2;a1=pa;a2=pa+pb;case 'c' m=3;a1=pa+pb;a2=pa+pb+pc;case 'd' m=4;a1=pa+pb+pc;a2=pa+pb+pc+pd;case 'e' m=5;a1=pa+pb+pc+pd;a2=pa+pb+pc+pd+pe;end l=a2-a1;end if(i>=2)&(i<=k)switchstr(i)case 'a' aa=a1;ab=a1+l*pa;a1=aa;a2=ab;case 'b' aa=a1+l*pa;ab=a1+l*(pa+pb);a1=aa;a2=ab;case 'c' 17 aa=a1+l*(pa+pb);ab=a1+l*(pa+pb+pc);a1=aa;a2=ab;case 'd' aa=a1+l*(pa+pb+pc);ab=a1+l*(pa+pb+pc+pd);a1=aa;a2=ab;case 'e' aa=a1+l*(pa+pb+pc+pd);ab=a1+l*(pa+pb+pc+pc+pd+pe);a1=aa;a2=ab;end l=a2-a1;end strl=strcat('input',int2str(i),' 編碼區間起始值為:');disp(strl);disp(a1)strl=strcat('input',int2str(i),' 編碼區間的終止值為:');disp(strl);disp(a2)strl=strcat('input',int2str(i),' 本程序選擇區間中點作為編碼是:');disp(strl);disp((a1+a2)/2)end disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%code_finish%%%%%%%%%%%%%%%%%')disp('是否要譯碼,請選擇')disp('
1、譯碼')disp('
2、不譯碼?')disp('說明:輸入相應的數字進行選擇')disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%choice%%%%%%%%%%%%%%%%%%%%%%')YN=input('您選擇的是:');if YN==1 bm=(a1+a2)/2;SuansuJiema(bm,k)end if YN==2 disp('你選擇了不譯碼。')disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')end 解碼函數:
functionSuansuJiema(bm,num)18 format long pa=0.2;pb=0.3;pc=0.1;pd=0.15;pe=0.25;i=1;ym={};ym{1}(1)=YM(bm);bm0=bm;while i>=1&i functionym=YM(A)pa=0.2;pb=0.3;pc=0.1;pd=0.15;pe=0.25;switch 1 case 0<=A&A =1|A<0 disp('該碼子為錯誤編碼')end 19 實驗六線性分組碼的信道編碼和譯碼(2 學時) 一、實驗目的 1.熟悉MATLAB 工作環境及工具箱; 2.掌握線性分組碼的編碼、譯碼原理以及糾錯原理。 二、實驗內容 用MATLAB 軟件編程實現線性分組碼的信道編碼和譯碼。 三、實驗儀器、設備 1.計算機-系統最低配置256M 內存、P4 CPU; 2.MATLAB 編程軟件。 四、實驗原理 1.線性分組碼基本原理 首先,將信息序列分成K 個符號一組,然后,在信息組中加入一些校驗碼 元,組成N 長碼字,由此得到(N,K)分組碼。(N,K)分組碼中任一碼字的 碼長為N,所含的信息位數目為K,校驗位數目為r=N-K,且碼中任意兩個碼 字的和仍為碼字。例如,對于(5,2)分組碼,N=5,K=2,其編碼函數f 為: 1 1 C ?M 2 2 C ?M 3 1 2 1 2 C ?M ?M ?C ?C 4 1 1 C ?M ?C 5 1 2 1 2 C ?M ?M ?C ?C 編碼函數可知:c(碼字)=m(信息矩陣)G(生成矩陣)其中,生成矩陣為: 1 0 1 1 1 0 1 1 0 1 G ?? ??? ?? 當生成矩陣G 確定后,編碼的問題就解決了。又由編碼函數的后3 個方程 可以確定校驗方程,對應的矩陣形式為0 T CH ? 或0 T GH ?,式中,H 稱為一致 性校驗矩陣,一致性校驗矩陣如下: 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 H ?? ?? ? ?? ???? H 和G 的關系為:??K*K K*r G ?I A,??K*r r*r H ?A I。 糾錯譯碼時,若發送碼字為C,則接收序列為y,校正子* * T T s ?y H ?e H,因此,可以得到譯碼c ?y?e(模2 和)。其中,e 稱為差錯圖樣。S 是傳輸 是否出錯的標志,稱為伴隨式。(5,2)線性分組碼的最小漢明距離為dmin=3,20 能夠檢出2 位錯誤或糾正1 位錯誤。2.線性分組編碼、譯碼算法:(1)線性分組碼信道編碼:(a)輸入生成矩陣G 和原序列;(b)由矩陣G 得到n,k 和H;(c)根據公式生成編碼。(2)線性分組碼信道譯碼: (a)輸入生成矩陣G 和接收序列;(b)由矩陣G 得到n,k 和H;(c)根據公式生得到校正S;(d)求錯誤圖樣e;(e)譯碼c ?y ?e。 五、實驗步驟 1.根據實驗原理能設計出線性分組編碼、譯碼程序; 2.輸入矩陣G 和原序列驗證編碼程序是否正確; 3.輸入矩陣G 和接收序列驗證譯碼程序是否正確。 六、實驗報告要求 1.按照本節內容后實驗報告形式書寫; 2.實驗總結和心得要詳細,可以根據自己實驗情況,寫出建議。 七、實驗注意事項 1.線性分組碼中生成矩陣、校驗矩陣、伴隨式之間的關系。2.在計算矩陣時,注意位操作運算。 八、思考題 優化程序,提高運算速度? 附錄1:實驗報告樣式: 實驗報告 班級:姓名:學號:組別:同組人: 課程名稱:實驗室:實驗時間: (使用實驗報告紙的,以上內容可按照實驗報告紙格式填寫)實驗六線性分組碼的信道編碼和譯碼 一、實驗目的: 二、實驗內容與原理: 三、實驗器材(設備、元器件、軟件工具、平臺): 四、實驗步驟: 21 五、程序流程圖: 六、實驗數據及結果分析: 七、實驗結論: 八、思考題: 九、編程、調試過程中遇到的問題及解決方法: 十、其他:實驗總結、心得體會及對本實驗方法、手段及過程的改進建議等。附錄二: 附錄二: 線性分組碼的信道編碼和譯碼 close all;clc;G=input('請輸入生產矩陣G,例如:G=[1 0 1 1 1;0 1 1 0 1]n G=');G;[k,n]=size(G);r=n-k;m=input('請輸入需傳送消息m,如m=[0 0 0 1 1 0 1 1]n m=');l=length(m);if(mod(l,k))disp('輸入消息有誤');else ge=l/k;temp1=[];for i=1:ge temp1(i,:)=m(k*(i-1)+1:i*k);end m=temp1;c=mod(m*G,2);A=G(:,k+1:n);H=[A',eye(r)];disp('校驗矩陣');H disp('編碼矩陣');c end disp('敲回車鍵繼續');pause y=input('輸入接收序列y,如:y=[0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0]n y=');temp2=[];for i=1:ge temp2(i,:)=y(1,n*(i-1)+1:i*n);end y=temp2 s=mod(y*H',2);e=s*pinv(H');22 for i=1:ge for j=1:n if(e(i,j)>0.5-eps)e(i,j)=1;else e(i,j)=0;end end end cc=mod(y+e,2);sc=cc(:,1:2);disp('差錯圖樣);e disp('估計值');cc disp('譯碼序列');sc__ clear all;close all;clc;13 n=input('ê?è?D??′·?o?êy:');p=zeros(1,n);for i=1:n p(1,i)=input('ê?è?D??′·?o????ê:');end q=p;if sum(p)<1||sum(p)>1 error('ê?è????ê2?·?o????ê·?2?')end a=zeros(n-1,n);n=length(p);for i=1:n-1 [q,l]=sort(q);a(i,:)=[l(1:n-i+1),zeros(1,i-1)];q=[q(1)+q(2),q(3:n),1];end for i=1:n-1 c(i,1:n*n)=blanks(n*n);end c(n-1,n)='1';c(n-1,2*n)='0';for i=2:n-1 c(n-i,1:n-1)=c(n-i+1,n*(find(a(n-i+1,:)==1))-(n-2):n*(find(a(n-i+1,:)==1)));c(n-i,n)='1';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='0';for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(a(n-i+1,:)==j+1)-1)+1:n*find(a(n-i+1,:)==j+1));end end for i=1:n h(i,1:n)=c(1,n*(find(a(1,:)==i)-1)+1:find(a(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));end Code_length=0;for i=1:n Code_length=Code_length+p(1,i)*ll(i);end Efficiency=h/(Code_length);fprintf('n 1t·ò?ü±à??:n');disp(h)fprintf('n ???ù??3¤:n');disp(Code_length)fprintf('n 1t·ò?ü±à??D§?ê£on');disp(Efficiency) close all;clc;G=input('??ê?è?éú2ú???óG,àyè?:G=[1 0 1 1 1;0 1 1 0 1]n G=');G;[k,n]=size(G);r=n-k;m=input('??ê?è?Dè′??í???¢m,è?m=[0 0 0 1 1 0 1 1]n m=');l=length(m);if(mod(l,k))disp('ê?è????¢óD?ó');else ge=l/k;temp1=[];for i=1:ge temp1(i,:)=m(k*(i-1)+1:i*k);end m=temp1;c=mod(m*G,2);A=G(:,k+1:n);H=[A',eye(r)];disp('D£?é???ó');H disp('±à?????ó');c end disp('????3μ?ü?ìD?');pause y=input('ê?è??óê?DòáDy,è?:y=[0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0]n y=');temp2=[];for i=1:ge temp2(i,:)=y(1,n*(i-1)+1:i*n);end y=temp2 s=mod(y*H',2);e=s*pinv(H');22 for i=1:ge for j=1:n if(e(i,j)>0.5-eps)e(i,j)=1;else e(i,j)=0;end end end cc=mod(y+e,2);sc=cc(:,1:2);disp('2?′íí??ù');e disp('1à???μ');cc disp('ò???DòáD');sc 三 四 哈夫曼編碼 五算術編碼 六線性分組碼的信道編碼和譯碼 第5講 隨機變量的信息熵 在概率論和統計學中,隨機變量表示隨機試驗結果的觀測值。隨機變量的取值是不確定的,但是服從一定的概率分布。因此,每個取值都有自己的信息量。平均每個取值的信息量稱為該隨機變量的信息熵。 信息熵這個名稱是馮諾依曼向香農推薦的。在物理學中,熵是物理系統的狀態函數,用于度量一個物理系統內部狀態和運動的無序性。物理學中的熵也稱為熱熵。信息熵的表達式與熱熵的表達式類似,可以視為熱熵的推廣。香農用信息熵度量一個物理系統內部狀態和運動的不確定性。 信息熵是信息論的核心和基礎概念,具有多種物理意義。香農所創立的信息論是從定義和研究信息熵開始的。這一講我們學習信息熵的定義和性質。 1.信息熵 我們這里考慮離散型隨機變量的信息熵,連續型隨機變量的信息熵以后有時間再討論,讀者也可以看課本上的定義,先簡單地了解一下。定義1.1 設離散型隨機變量X的概率空間為 ?X??x1?P???p???1x2p2...xn? ...pn??我們把X的所有取值的自信息的期望稱為X的平均自信息量,通常稱為信息熵,簡稱熵(entropy),記為H(X),即 n H(X)?E[I(X)]??pilogi?11(比特)pi 信息熵也稱為香農熵。 注意,熵H(X)是X的概率分布P的函數,因此也記為H(P)。 定義1.2 信息熵表達式中的對數底可取任何大于等于2的整數r,所得結果稱為r-進制熵,記為Hr(X),其單位為“r-進制單位”。我們有 H?X?Hr?X?? logr注意,在關于熵的表達式中,我們仍然約定 0log0?0,0log信息熵的物理意義: 信息熵可從多種不同角度來理解。 x?0 0(1)H(X)是隨機變量X的取值所能提供的平均信息量。 (2)統計學中用H(X)表征隨機變量X的不確定性,也就是隨機性的大小。 例如,假設有甲乙兩只箱子,每個箱子里都存放著100個球。甲里面有紅藍色球各50個,乙里面紅、藍色的球分別為99個和1個。顯然,甲里面球的顏色更具有不確定性。從兩個箱子各摸出一個球,甲里面摸出的球更不好猜。 (3)若離散無記憶信源的符號概率分布為P,則H(P)是該信源的所有無損編碼的“平均碼長”的極限。 令X是離散無記憶信源的符號集,所有長度為n的消息集合為 Xn?{1,2,?,M} 每個消息i在某個無損編碼下的碼字為wi,碼字長為li比特。假設各消息i出現的概率為pi,則該每條消息的平均碼長為 Ln??pili i?1M因此,平均每個信源符號的碼長為 Ln1M??pili nni?1這個平均每個信源符號的碼長稱為該編碼的平均碼長,其量綱為(碼元/信源)。 我們有 LnL?H(X)且 limn?H(X) n??nn這是信源編碼定理的推論。 例1.3 課本第26頁例2.4.天氣預報的平均信息量。 練習: 在電腦主板上,串行接口(Serial Interface)用于向外設輸出數據,每次輸出1比特符號,若某段時間內輸出符號的概率分布為 1??X??0??p??1/32/3? ????求此時段內該串行接口的信息率,即平均每符號所傳遞的信息(單位為“比特/符號”)。 練習解答:輸出0所傳遞的信息為 ??log? I(0)輸出1所傳遞的信息為 13log比特3() I(1)??log因此,輸出符號的信息熵為 H(X)?2?log3?1(比特)3122log3?(log3?1)?log3??0.919(比特) 333于是所求的信息速率為0.919比特每符號。 說明:上述信息熵H(X)反映了串行接口傳輸信息的速率,稱為該接口的信息率。 2.熵函數H(P)的性質 性質1.非負性和確定性 H(P)≥0 其中H(P)=0 當且僅當P為退化分布。 一個隨機變量的概率分布為退化分布,當且僅當該隨機變量是常量,即取值唯一(所以其取值是確定的)。 性質2.對稱性 H(p1,?,pi,?,pj,?,pn)?H(p1,?,pj,?,pi,?,pn)性質3.連續性 H(p1,?,pn)對于其中任何變量pi是連續的。 性質4.擴展性 可擴展性1: H(p1,?,pn,0)?H(p1,?,pn)可擴展性2: limH(p1,p2,?,pn?1,pn??,?)?H(p1,p2,?,pn?2,pn?1,pn)??0證明:由連續性和可擴展性1立即可得。 證畢 意義:可擴展性表明,一個小概率事件對于熵的影響很小,可以忽略不計。在熵的計算中,可以忽略其中一部分小概率事件。 例2.1《中華字?!分惺珍浟?5000多個漢字,而常用漢字僅有3000個左右。(據統計現代漢語中這2400個漢字在一般書刊文章中所占的字數比例是99%)在計算漢字的熵時,大部分漢字都可以忽略不計,僅統計常用漢字出現的頻率,以此作為這些漢字出現的概率,從而計算出漢字的熵。 性質5.可加性 注意:即課本第31頁的“遞增性”。課本上的“可加性”事實上是聯合熵的鏈法則,涉及到條件熵,放在此處不妥,后面再討論。我們將賦予“遞增性”更貼切的含義。定理2.2(可加性公式) ?qqq?H(p1,p2,?,pn?1,q1,q2,?,qm)?H(p1,p2,?,pn)?pnH?1,2,?,m?pn??pnpn其中令pn?q1?q2???qm 證明:可用熵函數的定義證明,細節留給讀者完成。 證畢 可加性公式讓我們不斷降低信息熵中概率分布的維度,將高維計算簡化為低維計算。有的教材稱可加性為遞推性。例2.3 應用熵函數的可加性計算 1111H(,,)33665 解: 1111111111H(,,)?H(,)?H(,)33663333221?log3? 3?1.918(bit)注意,可連續應用可加性公式: 111121211111H(,,)?H(,)?H(,)?H(,)33663332232221?H(,)?1 33連續應用可加性公式,我們有 定理2.4(更一般的可加性公式)H(p11,?,p1r1,p21,?,p2r2,?,pn1,?,pnrn)piri??pi1pi2?H(p1,p2,?,pn)??piH?,?,?(2.1)pi?i?1?pipin 其中pi??pj?1riij 解釋:我們可以把可加性理解為分步試驗結果的熵等于各步試驗結果熵的加權組合。 ?,n,其概率分布為設一個隨機試驗分為兩個步驟。第1步共有n個可能結果X1?1,2,(p1,p2,?,pn)。這一步試驗結果的熵為H(p1,p2,?,pn)。 在第1步試驗結果的基礎上進行第2步試驗。假設當第1步試驗結果X1?i時,第2步試驗共有ri個可能結果,并且其概率分布為 piri??pi1pi2,?,?? pppii??i6 對應的熵為 piri??pi1pi2H?,?,? pppii??i因此,第2步傳遞的平均信息量為 piri??pi1pi2pH,?,?? ?ipppi?1ii??in兩步所獲得的平均信息量之和就是上述(2.1)中的右式。左式可解釋為第2步試驗的所有可能結果的平均信息量。練習:應用熵函數的可加性計算 H(1/6,1/6,1/6,1/9,1/9,1/12,1/12) 性質6.遞增性 低維分布分解為高維分布時,信息熵嚴格遞增。 定理2.5 將n-維概率分布分解為n+1維分布后,熵增大: H(p1,p2,?,pn)?H(p1,p2,?,pn?1,pn??,?)(0?pn)證明:由可加性立即可得。 證畢 性質7.嚴格上凸性 定理2.6 熵函數H(P)是嚴格上凸函數。 證明:根據嚴格上凸性定義,我們設P=(p1, p2, …, pn)與Q=(q1,q2, …, qn)是兩個不同的概率分布并且設(?1,?2)為非退化分布,只需證明下列不等式 ?1H(P)??2H(Q)?H(?1P??2Q)(1) 即 ??1?plogp???qii2i?1i?1nnilogqi????1(pi??2qi)lo?1g(pi??2 qii?1n)合并同類項后,上述不等式等價變換為 n?1pi??2qi?p??q?1?pilog??2?qilog1i2i?0 piqii?1i?1 n注意,?1P??2Q是一個n-維概率分布,根據預備知識中所證明的“信息不等式”,我們有 n?pilogi?1?1pi??2qipi?0(2) 其中等號成立當且僅當P??1P??2Q,即P=Q。我們前面已假設P≠Q,所以上述不等式中的等號不成立。同理我們有 n?qilogi?1?1pi??2qiqi?0(3) 由(2)和(3)可得(1)。 證畢 不等式(1)也可以用基本對數不等式證明。 不等式(1)的第二個證明:取x??1pi??2qipi,由 ln得 1?1?x xpilnpi?pi??1pi??2qi??2(pi?qi)(4)?1pi??2qi根據預備知識中證明的基本對數不等式,(4)中等號成立的充要條件是P??1P??2Q,即P=Q。我們前面已假設P≠Q,所以不等式(4)中的等號不成立。因此,我們有 ?pilni?1npi?0(5) ?1pi??2qi同理我們有 n?qilni?1qi?0(6) ?1pi??2qi由(5)和(6)可得(1)。 證畢 性質8.極值性(最大離散熵原理) 定理2.7(最大離散熵原理)對于任何n維概率分布p,H(p)?logn 其中,等號成立的充要條件是p為均勻分布,即 p?(1/n,1/n,?,1/n) 證明: 令q為均勻分布(1/n,1/n,…,1/n),應用信息不等式立刻可得該定理成立。 證畢 記號:我們用H0表示一個隨機變量的最大熵。當且僅當某隨機變量共有n種取值時,H0?logn(比特) 例2.8 二十問題游戲(the game of twenty problems)。甲心里想到一個事物,讓乙猜。乙可以向甲提問,甲只回答是或者不是。若乙在20個問題之內猜出答案,則乙勝,否則甲勝。猜數:一個比較簡單的實例是猜數。要猜出一個100以內的正整數至少需要幾個問題?至多需幾個問題? 練習: 設一條電線上串聯了8個燈泡,如圖所示。假設其中有且只有一個燈泡壞了,并且各燈泡 的損壞概率相同,用萬用電表通過測量斷路找出壞燈泡。(1)平均需要獲得多少信息,才能找出其中的壞燈泡。(2)一次測量所獲得的信息的最大期望值是多少? (3)試設計一個最佳測量方案,即測量次數的期望值最小的測量方案。 作業 1.試證明信息熵的可加性。 2.偽幣稱量問題:今有12枚金幣,其中1枚是偽幣,其重量不同于真幣。用一臺沒有砝碼的天平通過比較金幣重量可以找出這枚偽幣。(1)用這臺天平找出偽幣并知道其偏重還是偏輕需獲得多少信息?(2)求天平的3種稱量結果,即等重、左重和右重,的最大平均自信息。(3)試證明找出這枚偽幣至少需要稱量3次。(4)試設計最優的第1次稱量方案。 (5)若第1次稱量結果為1-4號錢幣的總重量大于5-8號錢幣的總重量,試設計最優的第2次稱量方案。 3.編程2:輸入有限維概率分布,輸出該分布的熵。 附錄:熱熵 1854年克勞修斯定義了物理系統的一種狀態函數S,他之稱為熵(entropy),現在也稱為熱熵。一個物理系統從狀態o到狀態A的熵增量定義為 S?So?其中 ?AodQ T克勞修斯的熱力學第二定律:dS?0 德國物理學家玻爾茲曼的熵公式:劃時代的發現 S?klogeW 其中W是物理系統的(宏觀)狀態所對應的所有可能微觀狀態數,k稱為玻爾茲曼常數。偉大意義: (1)將宏觀量S與微觀狀態數W相聯系,架設了宏觀與微觀之間的橋梁。 (2)物理概念第一次用概率形式表達,意義深遠。 (3)已成為物理學中最重要公式之一。 棋盤游戲:40X40的棋盤中間10X10位置上放著100顆棋子。這10X10位置構成系統I,其它位置構成系統II。將I中棋子挪動到II中,兩個系統的狀態都發生改變。求兩個系統各自的熵與總熵,有 SI?II?SI?SII 龍源期刊網 http://.cn 關于大學物理中熵的教學探討與思考 作者:劉廣生 李新營 孫建敏 黃明舉 尹國盛 來源:《科技創新導報》2012年第04期引言 《數字圖像處理》實驗報告 實驗一 圖像增強 班級: 姓名: 學號: 實驗目的 一、熟悉MATLAB中的圖像處理工具箱。 二、熟悉MATLAB中常用的圖像處理函數。 三、掌握圖像增強的基本原理與實現方法,掌握基本的空間域操作。 四、了解imread、imshow、imhist、imwrite、rgb2gray、mat2gray、imresize、imrotate、imtransform等函數的使用方法。 五、實驗內容 1. 熟悉MATLAB圖像處理工具箱的功能及常用的圖像處理函數。 2.實現“DIPUM2E_PROJECT_STATEMENTS”中的PROJECT 2.1、2.2、2.3、2.5、3.1、3.5、3.6 六、實驗結果 第一題 function I = isinteger(A)if ~isnumeric(A)error('A must be a numeric array.');end A = double(A);I = A == floor(A);A=[6.1 2.1;0.1 2] isinteger(A)結果ans = 0 0 0 1 2.2代碼 function E = iseven(A)if ~isnumeric(A)error('A must be a numeric array.');end A = double(A);E = floor(A/2)==(A/2);A=[3 5;0.1 6] iseven(A)結果ans = 《數字圖像處理》實驗報告 0 0 0 1 2.3代碼 function D = isodd(A)if ~isnumeric(A)error('A must be a numeric array.');end A = double(A);D = floor((A + 1)/2)==((A + 1)/2);A=[2 3;6 1] isodd(A)結果 ans = 0 1 0 1 2.5代碼 function [I, map] = imagein1(path)if nargin < 1 path = pwd;end original_directory = pwd;[file, pathname] = uigetfile('*.*', 'Image Open');if isequal(file, 0)| isequal(pathname, 0)disp('Image input canceled.');I = [];map = [];else [I, map] = imread(file);end 結果 >>imagein1 Image input canceled.ans = [] 3.1、代碼 《數字圖像處理》實驗報告 function z = intxform(s, map)classin = class(s);[s, revertclass] = tofloat(s);x = linspace(0, 1, numel(map))';y = map(:);z = interp1(x, y, s, 'linear');z = revertclass(z);A=imread('Fig0210(a).tif');subplot(2,1,1);imshow(A);t = linspace(0, 1, 256);map = t.^2;z = intxform(A, map);subplot(2,1,2);imshow(z);結果: 3.5、代碼 function w = genlaplacian(n)if ~isinteger1(n)| n <= 0 | iseven(n)error('n must be a positive, odd integer')end center =(n^2)imfilter(fd, genlaplacian(3), 'replicate');g5 = fdimfilter(fd, genlaplacian(9), 'replicate');g15 = fdimfilter(fd, genlaplacian(25), 'replicate');subplot(2,3,1);imshow(fd);title('a');subplot(2,3,2);imshow(g3);title('b');subplot(2,3,3);imshow(g5);title('c');subplot(2,3,4);imshow(g9);title('d');subplot(2,3,5);imshow(g15);title('e');subplot(2,3,6);imshow(g25);title('f');結果: 《數字圖像處理》實驗報告 3.6 代碼: w = fspecial('unsharp', 0);f = imread('Fig0217(a).tif');imshow(f)g = imfilter(f, w, 'replicate');figure, imshow(g) 結果 七、本實驗的心得體會 通過本實驗的學習與實踐,我學到了很多圖像處理的技巧,掌握圖像增強的基本原理與實現方法,掌握基本的空間域操作,也對學習圖像處理產生了更多的興趣。 信息熵在學生評教結果分析中的應用探析,信息熵方法及其在教育信息處理中的應用,信息熵在數據集分割中的應用,信息熵在電子數據取證領域中的應用,信息熵在圖書分類決策中的應用,信息熵在網絡流量矩陣估算中的應用,信息熵在體繪制視圖選取中的應用 信息熵在工程造價風險分析中的應用研究,信熵在建設工程評標中的應用,信息熵在建筑工程管理中的應用,信信息熵在煤田勘探中的應用,息熵理論在煤炭企業經濟效益評價中的應用等。 信息熵在入侵檢測中的應用,信息熵理論在安全系統中的應用,信息熵在泥沙研究中的應用,信息熵在水系統中的應用研究,信息熵在大型水利水電工程網絡管理系統信息集成中的應用,信息熵在水污染物總量區域公平分配中的應用,信息熵方法在胃癌診斷中的應用,信息熵在臨床定量診斷分析中的應用,信息熵在臨床醫學中的應用,信息熵在現代生物醫學中的應用,信息熵在缺陷漏磁信號量化中的應用,信息熵在粗糙集信息檢索模型中的應用,信息熵在導航傳感器故障診斷中的應用研究,信息熵在設計風險管理中的應用研究,信息熵在體育綜合服務質量模糊評價中的應用,信息熵在項目溝通管理中的應用,信息熵在競爭情報計量分析中的應用,信息熵在基因調控網絡構建中的應用,信息熵在農業技術擴散中的應用研究,信息熵在電子測量誤差分析中的應用,信息熵在粗糙集理論中的應用,信息熵在優化問題中的應用,第二篇:第5講 信息熵
第三篇:關于大學物理中熵的教學探討與思考
第四篇:實驗一圖像增強
第五篇:信息熵在學生評教結果分析中的應用探析