基于MATLAB的數字信號處理實驗報告_第1頁
基于MATLAB的數字信號處理實驗報告_第2頁
基于MATLAB的數字信號處理實驗報告_第3頁
基于MATLAB的數字信號處理實驗報告_第4頁
基于MATLAB的數字信號處理實驗報告_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、西北工業(yè)大學基于matlab的數字信號處理實驗報告學 院: 學號: 姓名: 專 業(yè): 實驗時間: 2014年7月 指導教師: 西北工業(yè)大學2014年 07 月實驗一 matlab基本編程實驗一、實驗目的及要求1熟悉matlab運行環(huán)境;2. 掌握matlab的基本語法和函數;3. 掌握matlab的基本繪圖功能二、實驗設備(環(huán)境)及要求1 計算機2 matlab軟件編程實驗平臺三、實驗內容與步驟1求下列線性方程組的解 2. 分別用for或while循環(huán)結構編寫程序,求出 。并考慮一種避免循環(huán)語句的程序設計算法實現同樣的運算。 3. 在同一坐標系下繪制以下3條曲線,并作標記。 四、設計思想設計思

2、想1.1:對于ax=b類型的方程組求解,需要先對非奇異矩陣a求逆,若存在逆矩陣,然后與b相乘即為所求設計思想1.2:用for或while循環(huán)結構編寫程序時,首先對k初始化為0,確定循環(huán)的起始條件、步長和終值條件;用非循環(huán)語句時,先確定首項、公比,然后帶入到等比數列求和公式中設計思想1.3:首先確定繪制曲線的每兩點之間的間隔,然后在一幅圖上繪制出所有曲線,并進行標注五、程序代碼及注釋程序代碼1:>> a=6 3 4; -2 5 7;8 -4 -3; %矩陣a>> x=inv(a) x = 0.1300 -0.0700 0.0100 0.5000 -0.5000 -0.50

3、00 -0.3200 0.4800 0.3600>> b=3 -4 -7' x=x*b程序代碼2:方法1:for循環(huán)結構實現%結果初始化0k= 0.0;for i = 1: 106 %默認步長為1k=k+sqrt(3)/(2i);end;fprintf('k=%fn',k);方法2:while循環(huán)結構實現k = 0.0;i = 1;while i < 107k = k +sqrt(3)/(2i);i = i + 1;end;fprintf('k=%fn',k);方法3:不使用循環(huán),利用等比數列的前106項和公式實現k = sqrt(3)

4、/2.0; %數列首項k = k *(1-0.5106)/(1-0.5);%公比為0.5fprintf('k=%fn',k);程序代碼3:x=0:0.01:pi; %步長0.01y1=sin(x); y2=sin(x).*sin(10*x);y3=-cos(x);grid on%顯示網格hold on %在一幅圖中繪制多條曲線plot(x, y1, 'r','linewidth',2); %y1紅線表示,線寬為2plot(x, y2, 'g','linewidth',2); %y2綠線表示,線寬為2plot(x,

5、y3, 'b','linewidth',2); %y3藍線表示,線寬為2%x軸范圍03.5,y軸范圍-1.21.2 axis(0,3.5,-1.2,1.2); %圖例注釋自動放在最佳位置legend('sin(x)','sin(x)sin(10x)','-cos(x)'); xlabel('x坐標軸'); %標注橫坐標ylabel('y坐標軸'); %標注縱坐標title('三曲線對比圖'); %標注標題六、實驗結果實驗結果1:x = 0.6000 7.0000 -5

6、.4000所以,x=x1,x2,x3= 0.6000, 7.0000, -5.4000實驗結果2:k=1.732051實驗結果3:三曲線的對比圖如下所示: 圖1.1 三曲線的對比實驗二 基于matlab信號處理實驗一、實驗目的及要求1. 回顧數字信號處理的主要內容;2. 掌握利用matlab進行信號處理的方法;3. 了解信號處理工具箱中一些函數的功能;二、實驗設備(環(huán)境)及要求1 計算機2 matlab軟件編程實驗平臺三、實驗內容1 設序列 其中, 2 . 一數字濾波器由 頻率響應函數描述 1)寫出其差分方程表示; 2)畫出上面濾波器的幅頻和相頻圖; 3)產生信號 的200個樣本,通過該濾波器

7、得到輸出y(n), 試將輸出y(n)的穩(wěn)態(tài)部分與x(n)作比較,說明這兩個正弦信號的幅度和相位是如何受該濾波器影響的。3. 設計fir濾波器(帶通濾波器,四種窗函數, fs2000hz, 帶通頻率300hz600hz,階數自選, 畫頻率特性并分析比較)。四、設計思想設計思想2.1:將求互相關問題轉化為求卷積的問題,互相關的區(qū)間大小為兩信號的區(qū)間端點分別相加,區(qū)間長度為兩信號區(qū)間長度之和設計思想2.2:由系統(tǒng)的差分方程,得到方程的各個項的系數,進而可求出系統(tǒng)的幅頻和相頻響應設計思想2.3:首先選定帶通濾波器的階數,根據采樣頻率、上、下限截止頻率求得濾波器的各個參數,然后得出窗函數的頻率特性五、程

8、序代碼及注釋程序代碼2.1:clc;clear all;x=3,1,7,0,-1,4,2;%沖擊信號x的幅度nx=-3:3; %沖擊信號x的取值范圍%對x進行右移2個單位,得到 x(n-2)ny=nx+2;y=x;w=normrnd(0,1,1,7); %w為均值為0,方差為1的高斯隨機序列nw=ny; %得到 y(n)=x(n-2)+w(n)%對x進行翻折x=fliplr(x);nx=-fliplr(nx);%卷積nyb=ny(1)+nx(1);nye=ny(length(y)+nx(length(x);nrxy=nyb:nye;rxy=conv(y,x);subplot(1,1,1);st

9、em(nrxy,rxy);axis(-5,9,0,90);xlabel('x');title('x(n)與y(n)的互相關');程序代碼2.2.2:clcclear allfs=1000;b=1 0 0 0 1;a=1 0 0 0 -.8145;h,f=freqz(b,a,512,fs);mag=abs(h);%幅度ph=angle(h);%相位subplot(2,1,1);ph=ph*180/pi;%由弧度轉換為角度plot(f,mag);grid;xlabel('frequency/hz');ylabel('magnitude'

10、;);title('幅頻響應');subplot(2,1,2);plot(f,ph);grid;xlabel('frequency/hz');ylabel('phase');title('相頻響應');程序代碼2.2.3:clcclear alln=200;n=linspace(-100,100,n);x=sin(pi*n/2)+5*cos(pi*n);n_fft=2nextpow2(2*n);w=linspace(0,2*pi,n_fft);h_fft=(1+exp(-1j*4*w)./(1-0.8145*exp(-1j*4*w

11、);x_fft=fft(x,n_fft);y_fft=x_fft.*h_fft;y_temp=fftshift(ifft(y_fft);y=y_temp(n_fft/2:n_fft/2+n-1);figure;plot(w,abs(h_fft),'b','linewidth',2);hold on;plot(w,angle(h_fft),'g','linewidth',2);legend('幅度','相位')figure;plot(n,x,'b');hold on;plot(n,re

12、al(y),'g');legend('x(n)','y(n)穩(wěn)態(tài)部分')程序代碼2.3:fs=2000; %采樣頻率fc1=300; %下限截止頻率fc2=600;%上限截止頻率n=31; % 濾波器的階數 wlp=fc1/(fs/2);whp=fc2/(fs/2);wn=wlp,whp; %濾波器歸一化后的上下限截止頻率w1=boxcar(n); %矩形窗的時域響應w2=hanning(n); %漢寧窗的時域響應w3=hamming(n); %海明窗的時域響應w4=blackman(n); %布萊克窗的時域響應%用不同的窗函數設計n階的濾波器b

13、1=fir1(n-1,wn,w1); b2=fir1(n-1,wn,w2); b3=fir1(n-1,wn,w3); b4=fir1(n-1,wn,w4); %求出濾波器的頻率響應h1 f1=freqz(b1,1,512,fs);h2 f2=freqz(b2,1,512,fs);h3 f3=freqz(b3,1,512,fs);h4 f4=freqz(b4,1,512,fs);figure;subplot(2,1,1); plot(f1,20*log10(abs(h1);xlabel('頻率/hz');ylabel('振幅/db'); title('矩形

14、窗的幅頻特性');grid on;subplot(2,1,2); plot(f1,180/pi*unwrap(angle(h1);xlabel('頻率/hz');ylabel('相位'); title('矩形窗的相頻特性');grid on;figure;subplot(2,1,1);plot(f2,20*log10(abs(h2);xlabel('頻率/hz');ylabel('振幅/db'); title('漢寧窗的幅頻特性');grid on;subplot(2,1,2); plot(

15、f2,180/pi*unwrap(angle(h2);xlabel('頻率/hz');ylabel('相位'); title('漢寧窗的相頻特性');grid on;figure;subplot(2,1,1);plot(f3,20*log10(abs(h3);xlabel('頻率/hz');ylabel('振幅/db'); title('海明窗的幅頻特性');grid on;subplot(2,1,2);plot(f3,180/pi*unwrap(angle(h3);xlabel('頻率/h

16、z');ylabel('相位'); title('海明窗的相頻特性');grid on;figure;subplot(2,1,1);plot(f4,20*log10(abs(h4);xlabel('頻率/hz');ylabel('振幅/db');title('布萊克窗的幅頻特性');grid on;subplot(2,1,2); plot(f4,180/pi*unwrap(angle(h4); xlabel('頻率/hz');ylabel('相位'); title('

17、布萊克窗的相頻特性');grid on;六、實驗結果實驗結果2.1:圖2-1 x(n)與y(n)的互相關序列圖由實驗結果可知,x(n)與y(n)的互相關只在區(qū)間-4,8上有能力,剛好是區(qū)間-3,3與右移后的區(qū)間-1,5兩端點之和,與結論一致。且互相關在2處達到最大。實驗結果2.2.1:其表示的差分方程為:y(n)-0.8145y(n-4)=x(n)+x(n-4)實驗結果2.2.2:濾波器的幅頻和相頻圖如下所示:圖2-2 濾波器的幅頻與相頻圖實驗結果2.2.3:由下圖實驗結果可知,輸出信號相對于輸入信號有一小小的延遲,基本上x(n)的頻點都通過了,濾波器是個梳狀filter,正好在想通過

18、的點附近相位為0,也就是附加延遲為0圖2-3 濾波器的幅度和相位變化圖2-4 兩信號波形實驗結果2.3:四種帶通濾波器的窗函數的頻率響應如下所示: 圖2-5 矩形窗的頻率特性 圖2-6 漢寧窗的頻率特性 圖2-7 海明窗的頻率特性圖2-8 布萊克曼窗的頻率特性實驗三 基于matlab的圖像處理實驗一、實驗目的及要求1了解圖像處理的基本概念和功能;2. 掌握利用matlab進行圖像處理的方法;3. 了解圖像處理工具箱中一些函數的功能;二、實驗設備(環(huán)境)及要求1 計算機2 matlab軟件編程實驗平臺三、實驗內容1對一幅分別添加了椒鹽噪聲和高斯白噪聲的圖象進行均值和中值濾波(取三種不同大小的模板

19、),并分析實驗結果。2對一幅圖像進行dct變換,分別將小于5、10、20的變換系數置為0,進行反dct得到重構圖像,顯示原圖像和各重構圖像并分別計算重構圖像的峰值信噪比和置為0的變換系數的個數。 四、設計思想設計思想3.1:任意讀取一幅圖像,利用matlab自帶函數imnoise()向圖像中加入椒鹽噪聲和高斯噪聲,并分別用3*3、5*5、7*7模板進行均值、中值濾波處理。均值濾波是一種線性濾波,也是低通濾波。中值濾波是一種統(tǒng)計濾波器,是非線性的。分別向圖像中加入高斯噪聲和椒鹽噪聲,利用不同的濾波方法,以及不同大小的窗口模板進行濾波,比較結果,得出結論。由實驗可以看出,中值濾波對椒鹽噪聲的處理效

20、果好,均值濾波對高斯噪聲的處理效果好。無論是中值濾波還是均值濾波,都是其模板越大,圖像越模糊。所以選擇模板大小時,以處理圖片效果最佳為宜。設計思想3.2:由于dct變換有使圖像能量幾種在左上方的特性,因此重構圖像保留了原始圖像大部分的圖像特征,其視覺效果與原始圖像相差不大。對比重構前后的圖像易知,重構后的圖像稍顯模糊,這是因為該壓縮算法為有損壓縮,壓縮后的圖像丟失了原始圖像部分數據信息。五、程序代碼及注釋程序代碼3.1:%讀取源圖像i = imread('cameraman.tif');%向圖像中加入椒鹽噪聲j = imnoise(i,'salt & peppe

21、r',0.1);%向圖像中加入高斯噪聲k = imnoise(i,'gaussian',0.02);figure;subplot(2,2,1);imshow(i);title('原圖像');subplot(2,2,3);imshow(j);title('加入椒鹽噪聲');subplot(2,2,4);imshow(k);title('加入高斯噪聲');%進行3*3均值濾波j_average1=filter2(fspecial('average',3),j)/255;%進行5*5均值濾波j_average2=

22、filter2(fspecial('average',5),j)/255;%進行7*7均值濾波j_average3=filter2(fspecial('average',7),j)/255;figure;subplot(2,2,1);imshow(j); title('加入椒鹽噪聲');subplot(2,2,2);imshow(j_average1);title('3*3模板均值濾波');subplot(2,2,3);imshow(j_average2);title('5*5模板均值濾波');subplot(2,

23、2,4);imshow(j_average3);title('7*7模板均值濾波');%進行3*3中值濾波j_med1=medfilt2(j,3 3);%進行5*5中值濾波j_med2=medfilt2(j,5 5);%進行5*5中值濾波j_med3=medfilt2(j,7 7);figure;subplot(2,2,1);imshow(j); title('加入椒鹽噪聲');subplot(2,2,2);imshow(j_med1);title('3*3模板中值濾波');subplot(2,2,3);imshow(j_med2);title(

24、'5*5模板中值濾波');subplot(2,2,4);imshow(j_med3);title('7*7模板中值濾波');%進行3*3均值濾波k_average1=filter2(fspecial('average',3),k)/255;%進行5*5均值濾波k_average2=filter2(fspecial('average',5),k)/255;%進行7*7均值濾波k_average3=filter2(fspecial('average',7),k)/255;figure;subplot(2,2,1);im

25、show(k); title('加入高斯噪聲');subplot(2,2,2);imshow(k_average1);title('3*3模板均值濾波');subplot(2,2,3);imshow(k_average2);title('5*5模板均值濾波');subplot(2,2,4);imshow(k_average3);title('7*7模板均值濾波');%進行3*3中值濾波k_med1=medfilt2(k,3 3);%進行5*5中值濾波k_med2=medfilt2(k,5 5);%進行5*5中值濾波k_med3=m

26、edfilt2(k,7 7);figure;subplot(2,2,1);imshow(k); title('加入高斯噪聲');subplot(2,2,2);imshow(k_med1);title('3*3模板中值濾波');subplot(2,2,3);imshow(k_med2);title('5*5模板中值濾波');subplot(2,2,4);imshow(k_med3);title('7*7模板中值濾波');程序代碼3.2:%讀取源圖像i=imread('cameraman.tif');%第2題 離散余弦

27、變換及反變換%對圖像進行離散余弦變換j=dct2(i);%小于5的變換系數的索引值col row = size(find(abs(j)< 5);a=col*row;%置為0的變換系數的個數%小于10的變換系數的索引值col row= size(find(abs(j)< 10);b=col*row;%置為0的變換系數的個數%小于20的變換系數的索引值col row= size(find(abs(j)< 20);c=col*row;%置為0的變換系數的個數%將小于5的變換系數置為0后做離散余弦反變換j(abs(j) < 5 ) = 0;i1=idct2(j);%將小于10的

28、變換系數置為0后做離散余弦反變換j(abs(j) < 10) = 0;i2=idct2(j);%將小于20的變換系數置為0后做離散余弦反變換j(abs(j) < 20) = 0;i3=idct2(j);%顯示原圖及反變換結果figure(2);subplot(2,2,1);imshow(i);title('原圖');subplot(2,2,2);imshow(i1,0,255);title('系數置0的個數小于5');subplot(2,2,3);imshow(i2,0,255);title('系數置0的個數小于10');subplo

29、t(2,2,4);imshow(i3,0,255);title('系數置0的個數小于20');%計算反重構時,dct的變換系數的置0個數小于5時的峰值信噪比及置為0的變換系數的個數i = double(i);i1 = double(i1);row,col = size(i);row,col = size(i1);mse1 = sum(sum(i-i1).2)/(row * col);psnr1 = 10 * log10(2552/mse1);fprintf('圖像的峰值信噪比:mse1=%fn',mse1);fprintf('置為0的變換系數的個數為:p

30、snr1=%fn',psnr1);%計算反重構時,dct的變換系數的置0個數小于10時的峰值信噪比及置為0的變換系數的個數i = double(i);i2 = double(i2);row,col = size(i);row,col = size(i2);mse2 = sum(sum(i-i2).2)/(row * col);psnr2 = 10 * log10(2552/mse2);fprintf('圖像的峰值信噪比:mse2=%fn',mse2);fprintf('置為0的變換系數的個數為:psnr2=%fn',psnr2);%計算反重構時,dct的

31、變換系數的置0個數小于20時的峰值信噪比及置為0的變換系數的個數i = double(i);i3 = double(i3);row,col = size(i);row,col = size(i3);mse3 = sum(sum(i-i3).2)/(row * col);psnr3 = 10 * log10(2552/mse3);fprintf('圖像的峰值信噪比:mse3=%fn',mse1);fprintf('置為0的變換系數的個數為:psnr3=%fn',psnr3);六、實驗結果實驗結果3.1:由實驗結果可以看出,對于椒鹽噪聲,中值濾波效果明顯優(yōu)于均值濾波

32、,對于高斯噪聲,上圖中中值濾波比均值濾波效果略佳。隨著模板從3*3增加到7*7,對于均值濾波,濾噪效果變好,但圖像變模糊;對于中值濾波,圖像細節(jié)丟失變多,濾除高斯噪聲的效果變好。 圖3-1 加噪前、后圖像對比圖3-2 加椒鹽噪聲的圖像均值濾波前、后的圖像對比圖3-3 加椒鹽噪聲的圖像中值濾波前、后的圖像對比 圖3-4加高斯噪聲的圖像均值濾波前、后的圖像對比圖3-5 加高斯噪聲的圖像中值濾波前、后的圖像對比實驗結果3.2:圖3-6 原圖及重構圖像圖3-7 程序運行結果由實驗結果可知,當dct變換的系數置0個數小于5時,重構圖像與原圖像的峰值信噪比為2.768259,重構圖像置為0的變換系數的個數

33、個數為:43.708737;當dct變換的系數置0個數小于10時,重構圖像與原圖像的峰值信噪比15.922448,重構圖像置為0的變換系數的個數個數為:36.110705;當dct變換的系數置0個數小于5時,重構圖像與原圖像的峰值信噪比為2.768259,重構圖像置為0的變換系數的個數個數為:30.366348;可以發(fā)現,在拋棄部分dct系數后,重構圖像時不會帶來其畫面質量的顯著下降,采用這種方法來實現壓縮算法時,可以通過修改mask變量中的dct系數來更好地比較仿真結果。對比重構前后的圖像易知,重構后的圖像稍顯模糊,這是因為該壓縮算法為有損壓縮,壓縮后的圖像丟失了原始圖像部分數據信息。實驗四

34、 基于matlab神經網絡編程實驗一、實驗目的及要求1了解神經網絡的基本概念和原理;2. 掌握用matlab實現神經網絡的思路和方法;3. 了解神經網絡工具箱函數的功能。二、實驗設備(環(huán)境)及要求1 計算機2 matlab軟件編程實驗平臺三、實驗內容1、 利用2輸入的mp模型是否可實現“與”、“或”、“非”和“異或”功能?若能,編程實現并給出實現各種功能的權值和實驗結果,若不能,請說明原因。2、用人工神經網絡擬合函數 說明:1)網絡結構為三層(輸入層、1個隱層和輸出層) 2)獲取兩組數據,一組作為訓練集,一組作為測試集 3)用訓練集訓練網絡 4)用測試集檢驗訓練結果 四、設計思想設計思想4.1

35、:如果能夠找到一條直線將輸入數據分開,則此功能可以利用2輸入的mp模型實現,否則,此功能不可以利用2輸入的mp模型實現設計思想4.2:bp神經網絡是誤差反向傳播神經網絡的簡稱,是神經網絡的一個重要分支,是有監(jiān)督學習網絡,也是在實際應用中最常見的網絡?;诓⑿械木W絡結構,主要由輸入層、隱含層、輸出層組成,能夠實現m到n維的非線性映射,網絡的學習方法采用梯度下降法。當一對學習模式提供給網絡后,各神經元獲得網絡的輸入響應并產生神經元之間的連接權值,然后按照減小希望輸出與實際輸出誤差的方向傳播,這個過程即為前向傳播。網絡連接的權值的修改從輸出層開始,經各中間層到輸入層(誤差的反向傳輸過程)。正向傳輸和

36、反向傳輸過程反復進行j直到網絡的全局誤差趨向于設定的極小值,這就是bp算法,采用這種算法的多級非循環(huán)網絡被稱之為bp神經網絡。所以設計神經網絡時,首先要確定隱層層數、隱層節(jié)點數,設置網絡參數,同時選定訓練集。若要提高判斷或識別的準確率,可適當地增大測試集數據。五、程序代碼及注釋程序代碼4.1:clc; clear all; close all; % p為輸入矢量 p1 = 0 0 1 1;0 1 0 1; p2 = 0 1; % t為目標矢量 t1 = 0 0 0 1;0 1 1 1; t2 = 1 0;% 與門clc;p=p1;t=t1(1,:);% 定義感知器神經元并對其初始化 net=n

37、ewp(0 1;0 1,1);net.initfcn='initlay'net.layers1.initfcn='initwb'net.inputweights1,1.initfcn='rands'net.layerweights1,1.initfcn='rands'net.biases1.initfcn='rands'net=init(net);% 訓練感知器神經元net=train(net,p,t);cell2mat(net.iw)cell2mat(net.b)% 繪制結果分類曲線figure(1);plotp

38、v(p,t)plotpc(net.iw1,1,net.b1);title('與門結果分類曲線');% 利用訓練完的感知器神經元分類for i=0:1 for j=0:1 p= i;j a= sim(net,p) endend% pause;%或門clc;p=p1;t=t1(2,:);% 定義感知器神經元并對其初始化 net=newp(0 1;0 1,1);net.initfcn='initlay'net.layers1.initfcn='initwb'net.inputweights1,1.initfcn='rands'net.l

39、ayerweights1,1.initfcn='rands'net.biases1.initfcn='rands'net=init(net);% 訓練感知器神經元net=train(net,p,t);cell2mat(net.iw)cell2mat(net.b)% 繪制結果分類曲線figure(2);plotpv(p,t)plotpc(net.iw1,1,net.b1);title('或門結果分類曲線');% 利用訓練完的感知器神經元分類for i=0:1 for j=0:1 p=i;j a = sim(net,p) endend% pause;

40、%非門clc;p=p2;t=t2;% 定義感知器神經元并對其初始化 net=newp(0 1,1);net.initfcn='initlay'net.layers1.initfcn='initwb'net.inputweights1,1.initfcn='rands'net.layerweights1,1.initfcn='rands'net.biases1.initfcn='rands'net=init(net);% 訓練感知器神經元net=train(net,p,t);cell2mat(net.iw)cell2

41、mat(net.b)% 繪制結果分類曲線figure(3);plotpv(p,t)plotpc(net.iw1,1,net.b1);title('非門結果分類曲線');% 利用訓練完的感知器神經元分類for i=0:1 p=i a = sim(net,p)end代碼4.2:clc;clear all;% 產生訓練樣本與測試樣本x1=-3 :0.36:3;x2=-2:0.24:2;p1 = (x1.2-2*x1).*exp(-x1.2-x2.2-x1.*x2); % 訓練樣本t1 = p1; % 訓練目標x3=-3:0.15:3;x4=-2:0.1:2;p2 = (x3.2-2*

42、x3).*exp(-x3.2-x4.2-x3.*x4); % 測試樣本t2 = p2; % 測試目標% 歸一化pn1,minp,maxp,tn1,mint,maxt = premnmx(p1,t1);pn2 = tramnmx(p2,minp,maxp);tn2 = tramnmx(t2,mint,maxt);% 設置網絡參數hidenum=1; % 隱層層數nodenum = 5; % 隱層節(jié)點數 typenum = 1; % 輸出維數tf1 = 'tansig'tf2 = 'purelin' % 判別函數(缺省值)net = newff(minmax(pn1

43、),nodenum typenum,tf1 tf2);net.trainfcn = 'trainlm' net.trainparam.show = 20; % 訓練顯示間隔net.trainparam.lr = 0.3; % 學習步長 - traingd,traingdmnet.trainparam.mc = 0.95; % 動量項系數 - traingdm,traingdxnet.trainparam.mem_reduc = 1; % 分塊計算hessian矩陣net.trainparam.epochs = 1000; % 最大訓練次數net.trainparam.goal

44、= 1e-8; % 最小均方誤差net.trainparam.min_grad = 1e-20; % 最小梯度net.trainparam.time = inf; % 最大訓練時間net = train(net,pn1,tn1); % 訓練yn1 = sim(net,pn1); % 訓練樣本實際輸出yn2 = sim(net,pn2); % 測試樣本實際輸出mse1 = mean(tn1-yn1).2) % 訓練均方誤差mse2 = mean(tn2-yn2).2) % 測試均方誤差y2 = postmnmx(yn2,mint,maxt); % 反歸一化% 結果作圖plot(1:length(

45、t2),t2,'r',1:length(y2),y2,'b');legend('測試集','訓練集'); title('期望輸出與實際輸出對比');六、實驗結果實驗結果4.1: 圖4-1 與門結果分類權值及實驗結果:net.iw = 1.8116 1.2540net.b = -2.3706p =00a =0p =01a =0p =10a =0p =11a =1圖4-2 或門結果分類權值及實驗結果:net.iw = 0.2647 0.1951net.b = -0.1732p =00a =0p =01a =1p =10

46、a =1p =11a =1圖4-3 非門結果分類權值及實驗結果:net.iw = -0.9062net.b = 0.5570p =0a =1p =1a =0由實驗結果可知,與門、或門和非門都能夠找到一條直線將結果分開,所以可以利用2輸入的mp模型是否可實現“與”、“或”、“非”功能。然而異或門卻不能找到一條曲線將結果分開,所以無法使用mp模型來實現異或功能。實驗結果4.3:圖4-4 bp神經網絡的網絡結構圖4-5 bp神經網絡的誤差性能曲線圖4-6 神經網絡的實際值與期望值對比從實驗結果可知,由于訓練集比較多,所以期望值與實際值的差別不是很大。若要提高準確性,可以適當地增大訓練集。實驗五 ma

47、tlab的綜合實驗一、實驗目的及要求培養(yǎng)學生利用matlab解決專業(yè)問題的能力。二、實驗設備(環(huán)境)及要求1 計算機2 matlab軟件編程實驗平臺三、實驗內容(三題中選擇一題)1、實現一個數字信號處理的仿真系統(tǒng),通過該系統(tǒng)可以方便的驗證信號處理所學的內容,要求程序具有界面并實現以下功能: 1)能產生或得到各種數字信號(sin、方波、三角波、語音、噪聲及其疊加); 2)用濾波器實現低通、高通、帶通和帶阻濾波,得到輸出信號的頻域特性和時間序列; 3)具有dft、dct和dwt變換功能; 4)輸入一段(1000采樣點)語音信號,顯示其頻譜特性,在這個語音信號上疊加一個噪聲,通過濾波器對其降噪,得到

48、輸出信號的頻域特性和時間序列。2、編程實現一個簡單的孤立詞(09)語音識別仿真系統(tǒng)。要求具有界面并實現以下功能: 1)讀入語音信號; 2)預處理和端點檢測; 3)多種特征提取方法;4)孤立詞識別并給出識別結果。3、基于數字圖像處理,實現一個汽車車牌字符分割的仿真系統(tǒng)。要求系統(tǒng)具有界面并實現以下功能:1)讀入車牌圖像;2)預處理及車牌定位;3)多種圖像分割功能;4)形態(tài)學濾波等功能;5)對車牌中的數字進行識別。4、結合專業(yè),實現一個神經網絡應用的實例,要求具有多種方法所得結果的比較.四、設計思想車牌字符識別系統(tǒng)的關鍵技術包括數字圖像預處理、車牌定位、車牌字符分割和字符識別技術。車牌識別的基本流程

49、圖為:原圖像預處理區(qū)域定位形態(tài)學處理字符分割字符識別預處理過程中首先需對彩色的車牌圖像進行灰度化;根據牌照字符區(qū)域的固定寬度和高度對車牌區(qū)域進行初定位,初定位結束后對定位區(qū)域進行修正;然后對車牌區(qū)域進行濾波處理;接著根據字符的寬高比對字符進行分割;最后用bp神經網絡對字符進行識別。bp神經網絡的設計步驟:第一步:隱層數。一般認為,增加隱層數可以降低網絡誤差(也有文獻認為不一定能有效降低),提高精度,但也使網絡復雜化,從而增加了網絡的訓練時間和出現“過擬合”的傾向。hornik等早已證明:若輸入層和輸出層采用線性轉換函數,隱層采用sigmoid轉換函數,則含一個隱層的mlp網絡能夠以任意精度逼近

50、任何有理函數。顯然,這是一個存在性結論。在設計bp網絡時可參考這一點,應優(yōu)先考慮3層bp網絡(即有1個隱層)。所以在對集裝箱號進行識別的過程中,選用三層bp網絡。第二步:相關參數的設置及網絡的訓練。通過設置權值和閾值的相關參數,網絡的輸入、輸出,對網絡進行訓練,最終完成網絡的學習過程。設置網絡的訓練模式為自適應lr動量梯度下降法。權值訓練步長為0.05, 最大訓練次數為5000,均方誤差為0.001,訓練顯示間隔為10。第三步:測試網絡。網絡訓練完成后,系統(tǒng)生成了字母及數字網絡系統(tǒng),此時某一幅將被分割出來的車牌字符圖片輸入網絡,觀察網絡的輸出,最終得到車牌號。五、程序代碼(界面除外)及注釋程序

51、代碼:%讀入圖像%function pushbutton1_callback(hobject, eventdata, handles)% hobject handle to pushbutton1 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) global i;filename ,pathname=uigetfile('*.jpg''*.bmp&

52、#39;'*.bmp','選擇圖片');str=pathname filename;i=imread(str);axes(handles.axes1);imshow(i);guidata(hobject, handles);%圖像預處理及車牌定位%function pushbutton2_callback(hobject, eventdata, handles)% hobject handle to pushbutton2 (see gcbo)% eventdata reserved - to be defined in a future version of

53、matlab% handles structure with handles and user data (see guidata)global i;i1=rgb2gray(i);i2=edge(i1,'roberts',0.15,'both');se=1;1;1;i3=imerode(i2,se);se=strel('rectangle',25,25);i4=imclose(i3,se);i5=bwareaopen(i4,2000);y,x,z=size(i);myi=double(i);% 在y 方向收縮車牌區(qū)域 %blue_y=zeros(

54、y,1);for i=1:y for j=1:x if(myi(i,j,1)<=30)&&(myi(i,j,2)<=62)&&(myi(i,j,2)>=51)&&(myi(i,j,3)<=142)&&(myi(i,j,3)>=119) % 藍色rgb的灰度范圍 blue_y(i,1)= blue_y(i,1)+1; % 藍色象素點統(tǒng)計 end end endtemp maxy=max(blue_y); % y方向車牌區(qū)域確定py1=maxy;while (blue_y(py1,1)>=5)&&(py1>1) py1=py1-1;end py2=maxy;while (blue_y(py2,1)>=5)&&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論