【文章內(nèi)容簡(jiǎn)介】
處理的學(xué)習(xí)以及完成實(shí)驗(yàn)的過(guò)程中,已經(jīng)使用過(guò)Matlab,對(duì)其有了一些基礎(chǔ)的了解和認(rèn)識(shí),通過(guò)這次的課程設(shè)計(jì)使我進(jìn)一步了解了信號(hào)的產(chǎn)生,采樣及頻譜分析的方法,以及其中產(chǎn)生信號(hào)和繪制信號(hào)的基本命令和一些基礎(chǔ)編程語(yǔ)言。讓我感受到只有在了解課本知識(shí)的前提下,才能更好的應(yīng)用這個(gè)工具,并且熟練的應(yīng)用Matlab也可以很好的加深我對(duì)課程的理解,方便我的思維。這次課程設(shè)計(jì)使我了解了Matlab的使用方法,提高了自己的分析和動(dòng)手實(shí)踐能力。同時(shí)我相信,進(jìn)一步加強(qiáng)對(duì)MATLAB的學(xué)習(xí)與研究對(duì)我今后的學(xué)習(xí)將會(huì)起到很大的幫助。這次的課程設(shè)計(jì)是對(duì)本學(xué)期所學(xué)知識(shí)的一次重要鞏固,使得在課堂上掌握的知識(shí)得到了真正的運(yùn)用。在學(xué)習(xí)的過(guò)程中和同學(xué)討論,更明白了理論知識(shí)與實(shí)踐的聯(lián)系。書(shū)到用時(shí)方恨少,有些知識(shí)學(xué)會(huì)是一回事,掌握是一回事,但應(yīng)用起來(lái),確實(shí)不是那么簡(jiǎn)單的,需要很多知識(shí)的融會(huì)貫通。程序運(yùn)行調(diào)試初期,曾經(jīng)多次出現(xiàn)錯(cuò)誤、不能產(chǎn)生圖形等問(wèn)題,但在我翻閱資料認(rèn)真改正及老師同學(xué)的幫助下基本功能還是完成了,經(jīng)過(guò)1個(gè)星期的上機(jī)實(shí)習(xí),程序已得到一些完善,能完成基本的要求的功能。最后經(jīng)過(guò)努力,又深入學(xué)習(xí)了圖形用戶(hù)界面(GUI),完成了選做要求的人機(jī)對(duì)話(huà)界面。學(xué)習(xí)就是一個(gè)了解,疑惑,進(jìn)而解惑的過(guò)程,這次實(shí)習(xí)就是提供了這樣一個(gè)發(fā)現(xiàn)自己知識(shí)漏洞,與同學(xué)老師探討進(jìn)行解惑的的機(jī)會(huì)。通過(guò)這次課程設(shè)計(jì)實(shí)習(xí),我更深刻的了解了Matlab的運(yùn)用,重新復(fù)習(xí)了FFT 中的重要的序列倒序和蝶形變換的程序,對(duì)課本上的知識(shí)有了更深的理解,使我對(duì)數(shù)字信號(hào)處理有了系統(tǒng)的認(rèn)知。在這里特別感謝董老師和李老師,他們給了我們很大的發(fā)揮空間,讓我們真正自己動(dòng)手真正掌握了知識(shí),感謝他們細(xì)心指導(dǎo)。也非常感謝我的同學(xué),他們解開(kāi)了我在實(shí)習(xí)中出現(xiàn)的諸多知識(shí)死角,謝謝大家!參考文獻(xiàn)[1]范壽康 DSP :電子工業(yè)出版社[2]:清華大學(xué)出版社出版,2001[3]高西全 :電子工業(yè)出版社,2009[4] 李勇 [5] [6] 蘇金明 張蓮花 ,電子工業(yè)出版社附錄Ⅰfs=input(39。輸入采樣頻率fs=39。)。 %語(yǔ)音信號(hào)采樣頻率為fsN1=input(39。輸入所需變換的起點(diǎn)N1=39。)。N2=input(39。輸入所需變換的終點(diǎn)N2=39。)。fn=input(39。 Enter WAV filename:39。,39。s39。)。 %獲取一個(gè)*.wav的文件[x,fs,nb]=wavread(fn,[N1 N2])。 %讀取語(yǔ)音信號(hào)的數(shù)據(jù)sound(x,fs,nb)。 %播放語(yǔ)音信號(hào)%n=N2N1+1。%當(dāng)語(yǔ)音信號(hào)文件較大時(shí)用這兩條%x1=reshape(x,1,2*n)。%語(yǔ)句替換x1=x39。x1=x39。y1=fft(x1)。figure(1)plot(x1) %做原始語(yǔ)音信號(hào)的時(shí)域圖形title(39。語(yǔ)音信號(hào)時(shí)域波形39。)xlabel(39。n39。)。ylabel(39。幅值39。)。M=nextpow2(x1)。 % 求x的長(zhǎng)度對(duì)應(yīng)的2的最低冪次m N=2^M。if length(x1)N x1=[x1,zeros(1,Nlength(x1))]。 % 若x的長(zhǎng)度不是2的冪,補(bǔ)零到2的整數(shù)冪 end %數(shù)據(jù)倒序操作J=0。%給倒序數(shù)賦初值for I=0:N1。%按序交換數(shù)據(jù)和算倒序數(shù) if IJ。%條件判斷及數(shù)據(jù)交換 T=x1(I+1)。x1(I+1)=x1(J+1)。 x1(J+1)=T。 end %算下一個(gè)倒序數(shù) K=N/2。 while J=K。 J=JK。K=K/2。 end J=J+K。end %x1。 y=x1。 % 將x倒序排列作為y的初始值 WN=exp(i*2*pi/N)。 for L=1:M B=2^L/2。%第L級(jí)中,每個(gè)蝶形的兩個(gè)輸入數(shù)據(jù)相距B個(gè)點(diǎn),每級(jí)有B個(gè)不同的旋轉(zhuǎn)因子 for J=0:B1 % J代表了不同的旋轉(zhuǎn)因子 p=J*2^(ML)。 WNp=WN^p。 for k=J+1:2^L:N % 本次蝶形運(yùn)算的跨越間隔為2^L kp=k+B。 % 蝶形運(yùn)算的兩個(gè)因子對(duì)應(yīng)單元下標(biāo)的關(guān)系 t=y(kp)*WNp。 % 蝶形運(yùn)算的乘積項(xiàng) y(kp)=y(k)t。 % 蝶形運(yùn)算, 注意必須先進(jìn)行減法運(yùn)算,然后進(jìn)行加法運(yùn)算,否則要使用中間變量來(lái)傳遞y(k) y(k)=y(k)+t。 % 蝶形運(yùn)算 end end end %y figure(2)[x1,w1]=freqz(x1,1)。 %繪制原始語(yǔ)音信號(hào)的頻率圖plot(w1,abs(x1))。title(39。x1的頻率響應(yīng)特性39。)xlabel(39。頻率39。)。ylabel(39。幅度39。)。figure(3)subplot(2,1,1)。plot(abs(y1)) %Matlab自帶的FFT函數(shù)實(shí)現(xiàn)的語(yǔ)音信號(hào)的FFT頻譜圖title(39。Matlab自帶的FFT函數(shù)實(shí)現(xiàn)的x1的頻譜39。)xlabel(39。K39。)。ylabel(39。Y1(k)39。)。subplot(2,1,2)。plot(abs(y))。 %編寫(xiě)的FFT程序?qū)崿F(xiàn)的語(yǔ)音信號(hào)的FFT頻譜圖title(39。編寫(xiě)的FFT程序?qū)崿F(xiàn)的的x1的頻譜39。) xlabel(39。K39。)。附錄Ⅱfunction varargout = gaoli208(varargin)% GAOLI208 Mfile for % GAOLI208, by itself, creates a new GAOLI208 or raises the existing% singleton*.%% H = GAOLI208 returns the handle to a new GAOLI208 or the handle to% the existing singleton*.%% GAOLI208(39。CALLBACK39。,hObject,eventData,handles,...) calls the local% function named CALLBACK in with the given input arguments.%% GAOLI208(39。Property39。,39。Value39。,...) creates a new GAOLI208 or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before gaoli208_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to gaoli208_OpeningF via varargin.%% *See GUI Options on GUIDE39。s Tools menu. Choose GUI allows only one% instance to run (singleton).%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help gaoli208% Last Modified by GUIDE 11Jan2010 14:14:19% Begin initialization code DO NOT EDITgui_Singleton = 1。gui_State = struct(39。