西北工業(yè)大學Matlab實驗報告_第1頁
西北工業(yè)大學Matlab實驗報告_第2頁
西北工業(yè)大學Matlab實驗報告_第3頁
西北工業(yè)大學Matlab實驗報告_第4頁
西北工業(yè)大學Matlab實驗報告_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選文檔西北工業(yè)高?;贛ATLAB的數(shù)字信號處理試驗報告學 院: 計算機學院 學號: 姓名: 專 業(yè): 計算機科學與技術(shù) 西北工業(yè)高校2017年 07 月試驗一 MATLAB基本編程試驗一、試驗目的及要求1生疏MATLAB運行環(huán)境;2. 把握MATLAB的基本語法和函數(shù);3. 把握MATLAB的基本繪圖功能二、試驗設(shè)備(環(huán)境)及要求1 計算機2 Matlab軟件編程試驗平臺三、試驗內(nèi)容與步驟1 設(shè) 求 使2 . 分別用for或while循環(huán)結(jié)構(gòu)編寫程序,求出 。并考慮一種避開循環(huán)語句的程序設(shè)計算法實現(xiàn)同樣的運算。3. 將圖形窗口4等分,按挨次繪制出下列函數(shù)的曲線圖及曲面圖并標記。四、設(shè)計思想

2、 1.,則X=B*inv(A) 2.編寫循環(huán)程序,循環(huán)105次,每次循環(huán)中計算的值 對做數(shù)學運算,可以得到3.使用subplot將圖形窗口分為四個子窗口,在子窗口中進行繪圖五、程序代碼及注釋% question 1*% 計算矩陣B*inv(A)A= 0 2 1 2 -1 3 -3 3 -4;B= 1 2 3 2 -3 1;X=B*inv(A)%*% question2*% 分別使用for及while循環(huán)計算矩陣K的值K=0;for i=1:105 K=K+sqrt(3)/2(i);endK%-K=0;i=1;while i<106 K=K+sqrt(3)/2(i); i=i+1;endK

3、%*% question 3*% 首先計算x,y1,y2,y3,X,Y,Z的值,然后畫圖x=0:0.1:2*pi;y1=cos(x);y2=2*sin(2*x);y3=x.*cos(x);X,Y=meshgrid(-2:0.1:2,-4:0.4:4);Z=X.2/22+Y.2/42;subplot(2,2,1)plot(x,y1)axis(0 6.5 min(y1)-0.1 max(y1)+0.1);xlabel('x')ylabel('y1')title('x-y1 graph') subplot(2,2,2)plot(x,y2)axis(0

4、6.5 min(y2)-0.1 max(y2)+0.1);xlabel('x')ylabel('y2')title('x-y2 graph') subplot(2,2,3)plot(x,y3)axis(0 6.5 min(y3)-0.1 max(y3)+0.1);xlabel('x')ylabel('y3')title('x-y3 graph') subplot(2,2,4)surf(X,Y,Z);axis(-2 2 -4 4 0 2);xlabel('X')ylabel('

5、Y')zlabel('Z')title('X-Y-Z graph')%*六、試驗結(jié)果1.2. K=1.73213.試驗二 MATLAB基本編程試驗一、試驗目的及要求1. 回顧數(shù)字信號處理的主要內(nèi)容;2. 把握利用MATLAB進行信號處理的方法;3. 了解信號處理工具箱中一些函數(shù)的功能;二、試驗設(shè)備(環(huán)境)及要求1 計算機2 Matlab軟件編程試驗平臺三、試驗內(nèi)容1 .任何實數(shù)序列x(n)都能分解成為它的偶部重量和奇部重量之和,編寫一個MATLAB函數(shù)文件,該函數(shù)的功能是將一給定序列分解成為它的偶部重量和奇部重量。并通過M文件或命令行調(diào)用該函數(shù)文件將以下

6、序列分解成為偶部重量和奇部重量。2. 一數(shù)字濾波器由 頻率響應(yīng)函數(shù)描述 1)寫出其差分方程表示; 2)畫出上面濾波器的幅頻和相頻圖; 3)產(chǎn)生信號 的200個樣本,通過該濾波器得到輸出y(n), 試將輸出y(n)的穩(wěn)態(tài)部分與x(n)作比較,說明這兩個正弦信號的幅度和相位是如何受該濾波器影響的。3. 設(shè)計帶通濾波器(Butterworth、橢圓、窗函數(shù)),采樣率fs2000Hz, 通帶范圍為300 -600Hz,階數(shù)自選, 畫出頻率響應(yīng)并分析比較。四、設(shè)計思想 1.首選對原始序列做折疊處理,得到折疊后的序列,再利用計算公式求的序列的奇偶重量 2.差分方程如下 依據(jù)頻率響應(yīng)函數(shù),使用freqz函數(shù)

7、計算幅頻和相頻圖 取樣出x(n)的200個樣本,通過filter函數(shù)求出濾波器作用后的y(n),對比輸入輸出信號,進行分析 3.首先設(shè)定帶通濾波器階數(shù),本試驗設(shè)定為10階,窗函數(shù)部分使用了矩形窗,然后依據(jù)通帶范圍頻率求得各個濾波器設(shè)計所需的參數(shù),然后調(diào)用matlab濾波器生成函數(shù),生成相應(yīng)的濾波器。五、程序代碼及注釋代碼1function xe,xo,m=Calculatexexo(x,n)%輸入一個序列,輸出分解后的奇偶序列%2017-8-19 by Binwangm=-fliplr(n);n2=min(n,m);n3=max(n,m);m=n2:n3; %計算折疊處理之后的橫軸坐標I=fi

8、nd(m=n(1);x1=zeros(1,length(m);x1(I:I+length(n)-1) = x; %在新的橫軸坐標域內(nèi)表示原始序列x=x1;xe=0.5*(x+fliplr(x);xo=0.5*(x-fliplr(x); %計算奇偶重量end%計算序列的奇偶重量 n=0:100; x=exp(-0.05*n).*sin(0.1*pi*n+pi/3); %生成序列 xe,xo,m=Calculatexexo(x,n); %計算序列奇偶重量 subplot(2,1,1) stem(n,x,'ro'); %原始序列 title('original graph&#

9、39;) subplot(2,2,3) stem(m,xe,'*'); %偶重量 title('xe graph') subplot(2,2,4) stem(m,xo,'*'); %奇重量 title('xo graph')代碼2.2fs=1000;b=1 0 0 0 1; %表達式分子系數(shù)a=1 0 0 0 -0.8145 %表達式分母系數(shù)H,w=freqz(b,a,256,fs); mag=abs(H); %計算幅值ph=angle(H); %計算相位ph=ph*180/pi;subplot(2,1,1)plot(w,mag)

10、;grid; xlabel('frequency Hz');ylabel('magnitude');subplot(2,1,2)plot(w,ph);grid;xlabel('frequency Hz');ylabel('phase');代碼2.3n=1:0.025:5; x=sin(pi*n/2)+5*cos(pi*n); stem(n,x) b=1 0 0 0 1; %表達式分子系數(shù) a=1 0 0 0 -0.8145; %表達式分母系數(shù) y=filter(b,a,x); hold on stem(n,real(y),'

11、;r*') legend('x(n)','y(n)'); title('輸入輸出序列對比')代碼3fs=2000; fc1=300; fc2=600; N=10; %階數(shù)設(shè)置為10 wlp=fc1/(fs/2); whp=fc2/(fs/2); wn=wlp,whp; %計算帶通范圍 %矩形窗帶通濾波器 w1=boxcar(N); %矩形窗時域響應(yīng) b1=fir1(N-1,wn,w1); h,w=freqz(b1,1,256,fs); subplot(2,3,1) plot(w,20*log10(abs(h); xlabel('f

12、requency Hz'); ylabel('magnitude /dB'); title('矩形窗函數(shù)的幅頻特性'); subplot(2,3,4) plot(w,180/pi*unwrap(angle(h); xlabel('frequency Hz'); ylabel('phase'); title('矩形窗函數(shù)的相頻特性'); %巴特沃斯帶通濾波器 b,a=butter(N,wn); h1,w1=freqz(b,a,256,fs); subplot(2,3,2) plot(w1,20*log10(a

13、bs(h1)/max(abs(h1); xlabel('frequency Hz'); ylabel('magnitude /dB'); title('巴特沃斯的幅頻特性'); subplot(2,3,5) plot(w1,180/pi*(angle(h1); xlabel('frequency Hz'); ylabel('phase'); title('巴特沃斯的相頻特性'); %橢圓帶通濾波器 rs=60;rp=0.1; %橢圓帶通濾波器的指標 B,A=ellip(N,rp,rs,wn) h2,

14、w2=freqz(B,A,256,fs); subplot(2,3,3) plot(w2,20*log10(abs(h2)/max(abs(h2); xlabel('frequency Hz'); ylabel('magnitude /dB'); title('橢圓濾波器的幅頻特性'); subplot(2,3,6) plot(w2,180/pi*(angle(h2); xlabel('frequency Hz'); ylabel('phase'); title('橢圓濾波器的相頻特性');六、試驗

15、結(jié)果1原始序列及得到的奇偶序列如下圖所示2.1差分方程表示如下2.2計算出的幅頻和相頻圖如下2.3 輸入序列與濾波器的輸出序列如下圖所示分析結(jié)果可知,輸出相對于輸入在相位上有肯定的延遲,幅度上有了提升。兩個正弦信號在對應(yīng)的頻率處均有肯定給成都上的幅度增加和相位延遲3帶通濾波器設(shè)計依據(jù)上圖結(jié)構(gòu)可以看出:巴特沃斯帶通濾波器的通帶無波動,且設(shè)計出來的濾波器結(jié)構(gòu)簡潔,相頻變化表現(xiàn)較差,但帶外衰減速度較慢。橢圓濾波器的通帶有肯定的波動起伏,邊帶截止頻率格外陡峭,相頻表現(xiàn)差。矩形窗函數(shù)帶通濾波器通帶有肯定的波動,邊帶截止頻率變現(xiàn)位于三者的中等,相頻變化表現(xiàn)較好。試驗三 基于MATLAB的圖像處理試驗一、試

16、驗目的及要求1了解圖像處理的基本概念和功能;2. 把握利用MATLAB進行圖像處理的方法;3. 了解圖像處理工具箱中一些函數(shù)的功能;二、試驗設(shè)備(環(huán)境)及要求1 計算機2 Matlab軟件編程試驗平臺三、試驗內(nèi)容1對cameraman.tif圖像分別添加椒鹽噪聲(密度為0.03)和高斯白噪聲(均值為0,方差為0.02)的圖像,利用三種方法進行去噪,顯示原始圖像、加噪圖像和去噪圖像并對試驗結(jié)果進行分析。2. 對lena.bmp 圖像進行DCT變換,分別選取最大的1/5、1/10、1/15個變換系數(shù)(其余置為0),進行反DCT得到重構(gòu)圖像,顯示原圖像和各重構(gòu)圖像并分別計算重構(gòu)圖像的峰值信噪比。四、

17、設(shè)計思想 1.使用matlab的imnoise函數(shù)為圖像添加椒鹽噪聲和高斯白噪聲,并分別使用均值濾波器(fspecial)中值濾波器(medfilt2),維納濾波器(wiener)三種方法進行降噪處理 2.對lena圖片進行灰度化,然后進行分塊DCT變換,塊大小設(shè)置為8x8,則共有64個參數(shù),設(shè)置不同的mask矩陣,分別選取其中的1/5、1/10、1/15個參數(shù)進行反變換。五、程序代碼及注釋代碼1:pic=imread('cameraman.tif'); Jpic=imnoise(pic,'salt & pepper',0.03); %加入椒鹽噪聲 Gp

18、ic=imnoise(pic,'gaussian',0,0.02); %加入高斯白噪聲 subplot(1,3,1) imshow(pic);title('原始圖片'); subplot(1,3,2) imshow(Jpic);title('加入椒鹽噪聲圖片'); subplot(1,3,3) imshow(Gpic);title('加入高斯白噪聲圖片'); %均值濾波復原處理 figure; J1=filter2(fspecial('average',3),Jpic)/255; %模板尺寸為3 J2=filter

19、2(fspecial('average',7),Jpic)/255; %模板尺寸為7 subplot(2,3,1) imshow(Jpic);title('椒鹽噪聲圖片'); subplot(2,3,2) imshow(J1);title('3x3均值濾波'); subplot(2,3,3) imshow(J2);title('7x7均值濾波'); G1=filter2(fspecial('average',3),Gpic)/255; %模板尺寸為3 G2=filter2(fspecial('average

20、',7),Gpic)/255; %模板尺寸為7 subplot(2,3,4) imshow(Gpic);title('高斯白噪聲圖片'); subplot(2,3,5) imshow(G1);title('3x3均值濾波'); subplot(2,3,6) imshow(G2);title('7x7均值濾波'); %中值濾波復原圖像 figure; JJ1=medfilt2(Jpic,3 3); %模板尺寸為3 JJ2=medfilt2(Jpic,7 7); %模板尺寸為7 subplot(2,3,1) imshow(Jpic);titl

21、e('椒鹽噪聲圖片'); subplot(2,3,2) imshow(JJ1);title('3x3中值濾波'); subplot(2,3,3) imshow(JJ2);title('7x7中值濾波'); GG1=medfilt2(Gpic,3 3); %模板尺寸為3 GG2=medfilt2(Gpic,7 7); %模板尺寸為7 subplot(2,3,4) imshow(Gpic);title('高斯白噪聲圖片'); subplot(2,3,5) imshow(GG1);title('3x3中值濾波'); su

22、bplot(2,3,6) imshow(GG2);title('7x7中值濾波'); %維納濾波復原圖像 figure; JJJ1=wiener2(Jpic,3 3); %模板尺寸為3 JJJ2=wiener2(Jpic,7 7); %模板尺寸為7 subplot(2,3,1) imshow(Jpic);title('椒鹽噪聲圖片'); subplot(2,3,2) imshow(JJJ1);title('3x3維納濾波'); subplot(2,3,3) imshow(JJJ2);title('7x7維納濾波'); GGG1=w

23、iener2(Gpic,3 3); %模板尺寸為3 GGG2=wiener2(Gpic,7 7); %模板尺寸為7 subplot(2,3,4) imshow(Gpic);title('高斯白噪聲圖片'); subplot(2,3,5) imshow(GGG1);title('3x3維納濾波'); subplot(2,3,6) imshow(GGG2);title('7x7維納濾波');代碼2pic = imread('lena.bmp'); %輸入灰度圖像subplot(2,2,1);imshow(pic);title('

24、;原始圖片lena');pic=rgb2gray(pic);subplot(2,2,2);imshow(pic);title('灰度圖片lena');pic = im2double(pic);%將lena圖片進行分塊壓縮,塊大小為8x8,共64個DCT變換系數(shù)D = dctmtx(8);C = blkproc(pic,8,8,'P1*x*P2',D,D'); %D'為D的轉(zhuǎn)置%分別保留1/5,1/10, 1/15個系數(shù)進行DCT變換,設(shè)置maskmask1=1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0

25、 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; %保留1/5個系數(shù)mask2=1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; %保留1/10個系數(shù)mask3=1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

26、0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; %保留1/15個系數(shù)X = blkproc(C,8,8,'P1.*x',mask1); %保留1/5個系數(shù)I1= blkproc(X,8,8,'P1*x*P2',D',D); %重構(gòu)圖像X2 = blkproc(C,8,8,'P1.*x',mask2); %保留1/10個系數(shù)I2 = blkproc(X2,8,8,'P1*x*P2',D',D); %重構(gòu)圖像X3

27、= blkproc(C,8,8,'P1.*x',mask3); %保留1/15個系數(shù)I3 = blkproc(X3,8,8,'P1*x*P2',D',D); %重構(gòu)圖像subplot(2,3,4);imshow(I1);title('保留1/5個系數(shù)');subplot(2,3,5);imshow(I2);title('保留1/10個系數(shù)');subplot(2,3,6);imshow(I3);title('保留1/15個系數(shù)');I1p= imPSNR(pic,I1);I2p= imPSNR(pic,I2

28、);I3p= imPSNR(pic,I3);disp('DCT變換保留1/5個系數(shù)的PSNR:',num2str(I1p);disp('DCT變換保留1/10個系數(shù)的PSNR:',num2str(I2p);disp('DCT變換保留1/15個系數(shù)的PSNR:',num2str(I3p); function PSNR = imPSNR( J , I )%imPSNR Summary of this function goes here% I is a image with high quality% J is a image with noise%

29、 the function will return the PSNR of the noise imagewidth = size(I,2);heigh = size(I,1);if( width = size(J,2) | heigh = size(J,1) ) disp('Please check the input image have the same size'); returnendK = (I-J).*(I-J);PSNR = sum(sum(K,1);PSNR = PSNR / (width * heigh);PSNR=10*log10(255*255/PSNR

30、);end六、試驗結(jié)果1.加入噪聲圖片及復原圖片本次試驗分別使用均值濾波,中值濾波,維納濾波三種方法對加入噪聲的圖片進行復原。每種方法分別接受了3x3和7x7的模板大小進行處理,最終得到的結(jié)果如上圖所示。分析圖片結(jié)果可以得到:均值濾波方法更適合處理椒鹽噪聲的圖片,針對椒鹽噪聲圖片,7x7模板處理效果趨于模糊,3x3模板的效果更好。中值濾波同樣更適合處理椒鹽噪聲圖片,3x3模板處理效果格外好,基本接近于原始圖片,7x7模板處理效果有肯定程度上的模糊。維納濾波跟適合處理高斯噪聲,對比不同模板大小的處理效果,7x7模板的處理效果要明顯好于3x3的效果,其處理結(jié)果基本近似原始圖片。2.DCT變換結(jié)果的

31、均方誤差及重構(gòu)圖片結(jié)果如下圖所示:分析上述結(jié)果可以看出,DCT變換保留1/5個數(shù)的系數(shù)時,重構(gòu)的圖像質(zhì)量最好。削減DCT變換系數(shù)的個數(shù),圖像質(zhì)量略有下降。試驗四 基于MATLAB神經(jīng)網(wǎng)絡(luò)編程試驗一、試驗目的及要求1了解神經(jīng)網(wǎng)絡(luò)的基本概念和原理;2. 把握用MATLAB實現(xiàn)神經(jīng)網(wǎng)絡(luò)的思路和方法;3. 了解神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)的功能。二、試驗設(shè)備(環(huán)境)及要求1 計算機2 Matlab軟件編程試驗平臺三、試驗內(nèi)容1、產(chǎn)生2維20組二類可分數(shù)據(jù),進行標記并構(gòu)成訓練集(輸入輸出模式對),利用2輸入的MP模型實現(xiàn)二類分類問題,給出試驗結(jié)果并分析。2、用多層前向網(wǎng)絡(luò)的BP算法擬合下列函數(shù) 說明:1)網(wǎng)絡(luò)結(jié)構(gòu)

32、為三層(輸入層、1個隱層和輸出層); 2)獵取兩組數(shù)據(jù),一組作為訓練集,一組作為測試集; 3)用訓練集訓練網(wǎng)絡(luò); 4)用測試集檢驗訓練結(jié)果。四、設(shè)計思想1.隨機產(chǎn)生一個2x20的數(shù)組P,并利用y=x+2.1直線進行分類,標簽存儲在數(shù)組T中,利用函數(shù)newp生成一個僅包含一個單元的感知器,設(shè)置訓練次數(shù),進行訓練,利用訓練好的網(wǎng)絡(luò)對隨機生成的2x100數(shù)組p進行分類,并顯示最終結(jié)果。 2.生成指定x,y范圍內(nèi)的2001組數(shù)據(jù),隨機選取其中的1900組作為訓練集,其余101組作為測試機,利用newff函數(shù)生成一個三層的BP網(wǎng)絡(luò),隱層包含5個節(jié)點,訓練網(wǎng)絡(luò),并進行最終的測試。五、程序代碼及注釋代碼1:

33、%生成20組數(shù)據(jù),以y=x劃分為兩類load('RandData.mat','P')T=ones(1,20);%以y=x+2.1位曲線劃分為兩類for i=1:20 if P(1,i)+2.1<P(2,i) %x+2.1<y,則標簽為0,否則,標簽為1 T(i)=0; endendnet=newp(min(P(1,:) max(P(1,:);min(P(2,:) max(P(2,:),1);net.trainParam.epochs = 100; %迭代次數(shù)net=init(net); %初始化網(wǎng)絡(luò)net=train(net,P,T); %訓練網(wǎng)絡(luò)c

34、ell2mat(net.iw)cell2mat(net.b)plotpv(P,T)plotpc(net.iw1,1,net.b1);%生成隨機測試數(shù)據(jù)figure;load('Randtest.mat','p')a=sim(net,p);plotpv(p,a) plotpc(net.iw1,1,net.b1);代碼2:x1=-3:0.003:3;x2=-2:0.002:2;p=x1;x2;t=(x1.2-2*x1).*exp(-x1.2-x2.2-x1.*x2); %標準數(shù)據(jù)k=rand(1,2001);m,n=sort(k);train_in=p(:,n(1:

35、1900);train_out=t(:,n(1:1900); %隨機抽取1900組作為訓練數(shù)據(jù)test_in=p(:,n(1901:2001);test_out=t(:,n(1901:2001); %抽取剩余的101組作為測試數(shù)據(jù) inputn,inputps=mapminmax(train_in); %歸一化outputn,outputps=mapminmax(train_out);net=newff(inputn,outputn,5);%初始化參數(shù)net.trainParam.lr=0.3;net.trainParam.mc=0.95;net.trainParam.mem_reduc=1;

36、net.trainParam.epochs=500;net.trainParam.goal=1e-8;%BP神經(jīng)網(wǎng)絡(luò)訓練net=train(net,inputn,outputn);%測試數(shù)據(jù)歸一化inputn_test=mapminmax('apply',test_in,inputps); result=sim(net,inputn_test);%輸出結(jié)果反歸一化BPoutput=mapminmax('reverse',result,outputps); %輸出結(jié)果畫圖plot(BPoutput,':or');hold onplot(test_o

37、ut,'-*');legend('猜測輸出','期望輸出')title('BP網(wǎng)絡(luò)猜測結(jié)果')ylabel('輸出結(jié)果')xlabel('樣本')六、試驗結(jié)果1.試驗結(jié)果呈現(xiàn)模型訓練結(jié)果如上圖所示,所給的樣本被完成的區(qū)分開來。模型訓練過程顯示,經(jīng)過一次迭代就停止。測試結(jié)果如上圖所示,可以看到,針對測試的100組數(shù)據(jù),訓練后的網(wǎng)絡(luò)均實現(xiàn)了正確區(qū)分,未消滅劃分錯誤的狀況2.試驗結(jié)果呈現(xiàn)BP網(wǎng)絡(luò)的訓練過程及誤差變化曲線如上圖所示,最終在測試集上的檢測結(jié)果如下:從圖上可以看到,訓練的BP網(wǎng)絡(luò)在測試集上表現(xiàn)良

38、好,每一個點都擬合的格外好。試驗五 MATLAB的綜合試驗一、試驗目的及要求培育同學利用Matlab解決專業(yè)問題的力量。二、試驗設(shè)備(環(huán)境)及要求1 計算機2 Matlab軟件編程試驗平臺三、試驗內(nèi)容(三題中選擇一題)1、設(shè)計實現(xiàn)一個數(shù)字信號處理的仿真系統(tǒng),要求程序具有界面并實現(xiàn)以下功能: 1)能產(chǎn)生或得到各種數(shù)字信號(sin、方波、三角波、語音、噪聲及其疊加); 2)具有對數(shù)字信號進行DFT、DCT和DWT變換和經(jīng)典功率譜估量功能; 3)具有顯示時域、變換域及功率譜估量波形的功能; 4) 產(chǎn)生或輸入一段帶噪數(shù)字語音信號(信噪比分別為20dB、10dB和5dB),利用3種方法進行降噪處理,并顯

39、示降噪前后的時域波形和信噪比。2、基于數(shù)字圖像處理,實現(xiàn)一個大路交通標志檢測的仿真系統(tǒng)。要求系統(tǒng)具有界面并實現(xiàn)以下功能:1)讀入自然場景下包含交通標志的圖像;2)對圖像進行預處理;3)多種圖像分割功能;4)形態(tài)學濾波等功能;5)交通標志區(qū)域的定位。3、結(jié)合自己的爭辯方向,實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)應(yīng)用的實例,要求用至少3種方法實現(xiàn)(可以包括不同神經(jīng)網(wǎng)絡(luò)方法或經(jīng)典方法)。四、設(shè)計思想本交通標志檢測系統(tǒng)主要使用基于HSV空間的交通標志區(qū)域分割以及基于區(qū)域外形特征的交通標志檢測兩種方法。1. 基于HSV空間的交通標志區(qū)域分割由于交通標志具有特定的顏色(如紅、 黃、 藍), 基于顏色的交通標志分別抽取是交通標志

40、圖像分割的主要方法。而不同的 “顏色系統(tǒng)”, 或稱 “顏色空間”,對應(yīng)著不同的分割閾值。圖像的顏色空間主要有RGB空間、HIS空間、HSV 空間和YUV空間等。由于一般的攝像機和照相機均接受 RGB 顏色空間,基于RGB 空間的圖像分割算法不需要換算,所以較為簡便,但 R、G、B 三個重量之間存在相關(guān)性使得圖像分割效果簡潔受光照的影響;而 YUV 顏色空間主要應(yīng)用于歐美彩色電視信號中,在圖像處理中的應(yīng)用較少; HIS 和 HSV 空間更適合圖像分割,由于 H 和 S 兩個重量在一般狀況下均不受光照強度的影響。故接受HSV顏色空間2. 基于區(qū)域外形特征的交通標志檢測判定基于顏色抽取可以將交通標志

41、區(qū)域從實景圖中提取出來,但由于在自然場景中與交通標志顏色相近或相同的簡單背景普遍存在,僅僅依據(jù)顏色檢測判定是格外不行靠的。而基于外形檢測的方法能夠進一步排解那些顏色相近的背景,由于這些簡單背景往往不具備交通標志的特殊外形。交通標志主要有 3 種外形:圓形、三角形和矩形,不同外形的交通標志具有不同的屬性,如圓形度、矩形度、伸長度、質(zhì)心到邊緣的距離圖等。實現(xiàn)步驟: 首先讀入圖像,進行預處理,將圖像由RGB空間轉(zhuǎn)為HSV空間。選取合適的閾值,做基于顏色的圖像分割。對分割的圖像做二值化處理,并利用圓形結(jié)構(gòu)做圖像匹配,對交通標志做粗檢測。對得到的粗分割圖像,做形態(tài)學濾波,包括膨脹、孔洞填充等操作,最終選

42、出填充塊面積最大的區(qū)域,作為交通標志存在的坐標。五、程序代碼(界面除外)及注釋代碼:交通標志檢測%輸入待檢測圖像,框出圖像中的交通標志,并返回圖像以及Hsv圖,顏色分割圖,膨脹圖,孔洞填充圖及標志裁剪圖function IMG,R2H,ColorCut,Expand,Holefill,Crop=Detection(ima)I=ima;%圖像二值化Hsv=rgb2hsv(I); %將圖像由RGB顏色空間轉(zhuǎn)化為HSV顏色空間R2H=Hsv;I1=Hsv(:,:,1); %記錄色度H的數(shù)據(jù)BW=roicolor(I1,0.0277,0.032); %利用顏色閥值完成圖象的二值化ColorCut=BW

43、;se=strel('disk',10); %創(chuàng)建半徑10的平面圓盤BW1=imclose(BW,se);%將圖象置白色;SE=ones(10);PZ=imdilate(BW1,SE);%圖象膨脹;Expand=PZ;TC=bwfill(PZ,'holes');%圖像填充Holefill=TC;L=bwlabeln(TC); S=regionprops(L,'Area','Centroid','BoundingBox'); %獵取標記圖像L中全部區(qū)域的一系列特征付給Scent=cat(1,S.Centroid);b

44、oud=cat(1,S.BoundingBox); Len=length(S); %記錄S的長度t2=0;t4=0;t7=0;t8=0;for i=1:3 Max(i)=0; MR(i)=0; MX(i)=0; MY(i)=0;endMax1=0;Max2=0;Max3=0;ttq=0;%依據(jù)處理結(jié)果,提取出路標位置;%依據(jù)各填充塊的面積,找出其中最大的三個填充塊for (i=1:Len) if (S(i).Area>=Max1) Max3=Max2; Max(3)=Max(2); Max2=Max1; Max(2)=Max(1); Max1=S(i).Area; Max(1)=i; e

45、lse if(S(i).Area>=Max2) Max3=Max2; Max(3)=Max(2); Max2=S(i).Area; Max(2)=i; else if(S(i).Area>=Max3) Max3=S(i).Area; Max(3)=i; end end endend if(Max(1)&&Max(2)&&Max(3)=0) errordlg('沒有路標!','Warning');elsefor i=1:3 tz(i)=0; Mblen(i)=0; Mbwid(i)=0;endhang,lie,r=siz

46、e(BW);for i=1:3 X=cent(Max(i),1); Y=cent(Max(i),2);%白色為1;取出最大填充快的質(zhì)心坐標; MX(i)=round(X); MY(i)=round(Y);%質(zhì)心坐標取整; bx=boud(Max(i),1); by=boud(Max(i),2); blen=boud(Max(i),4); bwid=boud(Max(i),3);%候選區(qū)域的左頂點坐標; bx1=round(bx); by1=round(by); Mblen(i)=round(blen); Mbwid(i)=round(bwid); if (blen>=bwid) MR=b

47、wid; else MR=blen; end %取候選區(qū)域的寬度; if (MX(i)+round(MR/4)<=lie&&MY(i)+round(MR/6)<=hang&&TC(MY(i)+round(MR/6),MX(i)+round(MR/4)=1) t2=1; end if (MX(i)-round(MR/4)>0&&MY(i)-round(MR/6)>0&&TC(MY(i)-round(MR/6),MX(i)-round(MR/4)=1) t4=1; end if (MY(i)+round(MR/

48、6)<=hang&&MX(i)-round(MR/4)>0&&TC(MY(i)+round(MR/6),MX(i)-round(MR/4)=1) t7=1; end if (MY(i)-round(MR/6)>0&&MX(i)+round(MR/4)<=lie&&TC(MY(i)-round(MR/6),MX(i)+round(MR/4)=1) t8=1; end %取近似區(qū)域ROI; if(t2&&t4&&t7&&t8&&S(Max(i).A

49、rea/(hang*lie)>0.01) %當對象的象素少于1000的時候默認他不是路標 tz(i)=1; t2=0;t4=0;t7=0;t8=0; endend end if tz(3)=1 YC=bwareaopen(TC,Max3);%開運算elseif tz(2)=1 YC=bwareaopen(TC,Max2); else YC=bwareaopen(TC,Max1);endif(tz(1)+tz(2)+tz(3)=0) imshowage=0;errordlg(' 沒有路標!','Warning'); end %找出交通標志位置; flag=0

50、 0 0;for i=1:3 if(tz(i)=1) high=Mblen(i); %Mblen(i)是對應(yīng)矩形的長 liezb=round(MX(i)-Mbwid(i)/2); %MX(i)對應(yīng)質(zhì)心的X坐標 hangzb=round(MY(i)-Mblen(i)/2); %MY(i)對應(yīng)質(zhì)心的Y坐標 width=Mbwid(i); %Mbwid(i)是對應(yīng)矩形的寬 flag(i)=1; Iresult=imcrop(I,liezb hangzb width high); if(i=1) IMG=drawRect(ima,liezb,hangzb,width,high,2); Crop=Ire

51、sult; %截取并返回第一張交通標志 imwrite(Iresult,'result1.bmp','bmp'); %保存 elseif(i=2) imwrite(Iresult,'result2.bmp','bmp'); %保存 elseif(i=3) imwrite(Iresult,'result3.bmp','bmp'); %保存 end endendend代碼:GUI界面代碼function varargout = traffice(varargin)% TRAFFICE MATLAB co

52、de for traffice.fig% TRAFFICE, by itself, creates a new TRAFFICE or raises the existing% singleton*.% H = TRAFFICE returns the handle to a new TRAFFICE or the handle to% the existing singleton*.% TRAFFICE('CALLBACK',hObject,eventData,handles,.) calls the local% function named CALLBACK in TRA

53、FFICE.M with the given input arguments.% TRAFFICE('Property','Value',.) creates a new TRAFFICE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before traffice_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to traffice_OpeningFcn via varargin.% *See GUI Options on G

溫馨提示

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

評論

0/150

提交評論