欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      最優(yōu)二叉樹的matlab實現(xiàn)(5篇材料)

      時間:2019-05-11 23:49:18下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《最優(yōu)二叉樹的matlab實現(xiàn)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《最優(yōu)二叉樹的matlab實現(xiàn)》。

      第一篇:最優(yōu)二叉樹的matlab實現(xiàn)

      %v = [0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706 0.9572 0.4854 0.8003];origv = rand(1,7);v=origv;

      MAXVAL = 100;ov = zeros(size(v));numOL = length(v);

      vv = zeros(1, numOL*2-1);tv = vv;vv(numOL:length(tv))= v;

      for i=numOL-1:-1:1

      [i1,i2] = findLeast2Val(v+ov);

      vv(i)= v(i1)+v(i2);

      ov(i1)= MAXVAL;

      ov(i2)= MAXVAL;

      tv(i1+i)=i;

      tv(i2+i)=i;

      v = [vv(i),v];

      ov = [0,ov];drawtree(tv);pause end drawtree(tv);

      function [ind1,ind2]=findLeast2Val(v)len=length(v);

      if len==2

      ind1=1;ind2=2;

      return;end

      MIN2=100;MIN1=99;ind1=1;ind2=1;for i=1:len

      if v(i)

      if v(i)

      MIN1 = v(i);ind1=i;

      end end

      function drawtree(treeVec)

      treeplot2(treeVec);

      count = size(treeVec,2);

      [x,y] = treelayout(treeVec);

      x = x';

      y = y';

      name1 = cellstr(num2str((1:count)'));

      text(x(:,1), y(:,1), name1, 'VerticalAlignment','bottom','HorizontalAlignment','right')

      title({'Level Lines'},'FontSize',12,'FontName','Times New Roman');end

      function treeplot2(p,c,d)%TREEPLOT Plot picture of tree.%

      TREEPLOT(p)plots a picture of a tree given a row vector of %

      parent pointers, with p(i)== 0 for a root.% %

      TREEPLOT(P,nodeSpec,edgeSpec)allows optional parameters nodeSpec %

      and edgeSpec to set the node or edge color, marker, and linestyle.%

      Use '' to omit one or both.% %

      Example: %

      treeplot([2 4 2 0 6 4 6])%

      returns a complete binary tree.% %

      See also ETREE, TREELAYOUT, ETREEPLOT.%

      Copyright 1984-2009 The MathWorks, Inc.%

      $Revision: 5.12.4.3 $ $Date: 2009/04/21 03:26:23 $

      [x,y,h]=treelayout(p);f = find(p~=0);pp = p(f);X = [x(f);x(pp);repmat(NaN,size(f))];Y = [y(f);y(pp);repmat(NaN,size(f))];X = X(:);Y = Y(:);

      if nargin == 1,n = length(p);

      if n < 500,plot(x, y, 'ro', X, Y, 'r-');

      else

      plot(X, Y, 'r-');

      end;else

      [~, clen] = size(c);

      if nargin < 3,if clen > 1,d = [c(1:clen-1)'-'];

      else

      d = 'r-';

      end;

      end;

      [~, dlen] = size(d);

      if clen>0 && dlen>0

      plot(x, y, c, X, Y, d);

      elseif clen>0,plot(x, y, c);

      elseif dlen>0,plot(X, Y, d);

      else

      end;end;

      % 顯示外部節(jié)點 k=find(y==min(y));hold on , plot(x(k),y(k),'bs');hold off

      xlabel(['height = ' int2str(h)]);axis([0 1 0 1]);

      第二篇:MATLAB實現(xiàn)數(shù)字信號處理

      數(shù)字信號處理

      說 明 書

      目錄

      一.摘要…………………………………3 二.課程設(shè)計目的………………………3 三.設(shè)計內(nèi)容……………………………3 四.設(shè)計原理……………………………4 4.1.語音信號的采集…………………………….4 4.2.濾波器……………………………………….4 4.21.IIR濾波器原理…………………………………….4 4.22.FIR濾波器原理………………………………………5 五.設(shè)計步驟……………………………6 5.1錄制女音………………………………………6 5.2采樣語音信號并畫出時域波形和頻譜圖……7 5.3采用雙線性變換法設(shè)計IIR濾波器…………10 5.4窗函數(shù)法設(shè)計FFR濾波器………………......12 5.5用IIR濾波器對信號進行濾波………………14 5.6用FIR濾波器對信號進行濾波………………16 5.7男女聲語音信號頻譜特點分析………………19 5.8有背景噪聲的信號分析………………………20 六.心得體會…………………………….22 七.參考文獻…………………………….23

      一.摘要:

      這次課程設(shè)計的主要目的是綜合運用本課程的理論知識進行頻譜分析以及濾波器設(shè)計,通過理論推導(dǎo)得出相應(yīng)結(jié)論,并利用MATLAB或者DSP開發(fā)系統(tǒng)作為工具進行實現(xiàn),從而復(fù)習(xí)鞏固課堂所學(xué)的理論知識,提高對所學(xué)知識的綜合應(yīng)用能力,并從實踐上初步實現(xiàn)對數(shù)字信號的處理。通過對聲音的采樣,將聲音采樣后的頻譜與濾波。

      MATLAB全稱是Matrix Laboratory,是一種功能強大、效率高、交互性好的數(shù)值和可視化計算機高級語言,它將數(shù)值分析、矩陣運算、信號處理和圖形顯示有機地融合為一體,形成了一個極其方便、用戶界面友好的操作環(huán)境。經(jīng)過多年的發(fā)展,已經(jīng)發(fā)展成為一種功能全面的軟件,幾乎可以解決科學(xué)計算中所有問題。MATLAB軟件還提供了非常廣泛和靈活的用于處理數(shù)據(jù)集的數(shù)組運算功能。

      在本次課程設(shè)計中,主要通過MATLAB來編程對語音信號處理與濾波,設(shè)計濾波器來處理數(shù)字信號并對其進行分析。

      二.課程設(shè)計目的:

      綜合運用本課程的理論知識進行頻譜分析以及濾波器設(shè)計,通過理論推導(dǎo)得出相應(yīng)結(jié)論,并利用MATLAB作為工具進行實現(xiàn),從而復(fù)習(xí)鞏固課堂所學(xué)的理論知識,提高對所學(xué)知識的綜合應(yīng)用能力,并從實踐上初步實現(xiàn)對數(shù)字信號的處理。

      三.設(shè)計內(nèi)容:

      內(nèi)容:錄制一段個人自己的語音信號,并對錄制的信號進行采樣;畫出采樣后語音信號的時域波形和頻譜圖;給定濾波器的性能指標,采用窗函數(shù) 法和雙線性變換法設(shè)計濾波器,并畫出濾波器的頻率響應(yīng);然后用自己設(shè)計的濾波器對采集的信號進行濾波,畫出濾波后信號的時域波形和頻譜,并對濾波前后的信號進行對比,分析信號的變化;回放語音信號;換一個與你性別相異的人錄制同樣一段語音內(nèi)容,分析兩段內(nèi)容相同的語音信號頻譜之間有什么特點;再錄制一段同樣長時間的背景噪聲疊加到你的語音信號中,分析疊加前后信號頻譜的變化,設(shè)計一個合適的濾波器,能夠把該噪聲濾除。

      四.設(shè)計原理:

      4.1.語音信號的采集

      熟悉并掌握MATLAB中有關(guān)聲音(wave)錄制、播放、存儲和讀取的函數(shù),在MATLAB環(huán)境中,有關(guān)聲音的函數(shù)有:

      a:y=wavrecord(N,fs,Dtype);利用系統(tǒng)音頻輸入設(shè)備錄音,以fs為采樣頻率,默認值為11025,即以11025HZ進行采樣。Dtype為采樣數(shù)據(jù)的存儲格式,用字符串指定,可以是:‘double’、‘single’、’int16’、‘int8’其中只有int8是采用8位精度進行采樣,其它三種都是16位采樣結(jié)果轉(zhuǎn)換為指定的MATLAB數(shù)據(jù);

      b:wavplay(y,fs);利用系統(tǒng)音頻輸出設(shè)備播放,以fs為播放頻率,播放語音信號y;

      c:wavwrite((y,fs,wavfile);創(chuàng)建音頻文件; d:y=wavread(file);讀取音頻文件;

      關(guān)于聲音的函數(shù)還有sound();soundsc();等。4.2濾波器: 4.21.IIR濾波器原理

      沖激響應(yīng)不變法是使數(shù)字濾波器在時域上模擬濾波器,但是它們的缺點是產(chǎn)生頻率響應(yīng)的混疊失真,這是由于從s平面到z平面是多值的映射關(guān)系所造成的。

      雙線性變換法是使數(shù)字濾波器的頻率響應(yīng)與模擬濾波器的頻率響應(yīng)相似的一種變換方法。為了克服多值映射這一缺點,我們首先把整個s平面壓縮變換到某一中介的s1平面的一條橫帶里,再通過變換關(guān)系將此橫帶變換到整個z平面上去,這樣就使得s平面與z平面是一一對應(yīng)的關(guān)系,消除了多值變換性,也 就消除了頻譜混疊現(xiàn)象。

      雙線性法設(shè)計IIR數(shù)字濾波器的步驟:

      1)將數(shù)字濾波器的頻率指標{ ?k}由Wk=(2/T)*tan(wk),轉(zhuǎn)換為模擬濾波器的頻率指標{?k}.2)由模擬濾波器的指標設(shè)計H(s).3)由H(s)轉(zhuǎn)換為H(z)21?z?1H(z)?H(s)s?T1?z?1

      4.22.FIR濾波器原理

      FIR濾波器與IIR濾波器特點不同,IIR濾波器的相位是非線性的,若需線性相位則要采用全通網(wǎng)絡(luò)進行相位校正。而有限長單位沖激響應(yīng)(FIR)數(shù)字濾波器就可以做成具有嚴格的線性相位,同時又可以具有任意的幅度特性。

      由于FIR系統(tǒng)的沖激響應(yīng)就是其系統(tǒng)函數(shù)各次項的系數(shù),所以設(shè)計FIR濾波器的方法之一可以從時域出發(fā),截取有限長的一段沖激響應(yīng)作為H(z)的系數(shù),沖激響應(yīng)長度N就是系統(tǒng)函數(shù)H(z)的階數(shù)。只要N足夠長,截取的方法合理,總能滿足頻域的要求。這種時域設(shè)計、頻域檢驗的方法一般要反復(fù)幾個回合,不像IIR DF設(shè)計靠解析公式一次計算成功。給出的理想濾波器頻率響應(yīng)是,它是w的周期函數(shù),周期

      由傅立葉反變換導(dǎo)出,即

      hd(n)?1Hd(ejw)ejwndw?2?,再將hd(n)與窗函數(shù),因此可展開成傅氏級數(shù)w(n)相乘就可以得到h(n)。、的計算可采用傅氏變換的現(xiàn)成公式和程序,窗函數(shù)也是現(xiàn)成的。但整個設(shè)計過程不能一次完成,因為窗口類型和大小的選擇沒有解析公式可一次算,整個設(shè)計可用計算機編程來做。

      窗函數(shù)的傅式變換W(ejω)的主瓣決定了H(ejω)過渡帶寬。W(ejω)的旁瓣大小和多少決定了H(ejω)在通帶和阻帶范圍內(nèi)波動幅度,常用的幾種窗函數(shù)有:

      矩形窗

      w(n)=RN(n);

      Hanning窗

      Hamming窗

      ;

      Blackmen窗

      ;

      Kaiser窗。

      式中Io(x)為零階貝塞爾函數(shù)。

      五.設(shè)計步驟:

      5.1錄制女音:

      利用MATLAB中的函數(shù)錄制聲音。function nvyin()fs=11025;

      %采樣頻率

      str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('

      開始錄音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);y=wavrecord(3*fs,fs,'double');

      %錄制聲音3秒

      str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('

      錄音結(jié)束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('

      播放錄音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];5 disp(str);wavplay(y,fs);

      %播放錄音

      str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('

      播放錄音結(jié)束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);wavwrite(y,fs,'原女音');

      %聲音的存儲

      5.2采樣語音信號并畫出時域波形和頻譜圖

      讀取語音信號,畫出其時域波形和頻譜圖,與截取后的語音信號的時域波形和頻譜圖比較,觀察其變化。程序如下:

      [x,fs,bits]=wavread('女音.wav');

      %讀取聲音

      N=length(x);

      %計數(shù)讀取信號的點數(shù) t=(1:N)/fs;

      %信號的時域采樣點 f0=fs/N;

      %采樣間隔 n=1:N/2;

      %取信號的一半 figure(1);subplot(2,2,1);

      %把畫圖區(qū)域劃分為2行2列,指定第一個圖 plot(t, x);

      %畫出聲音采樣后的時域波形 title('原女音信號的時域波形');

      %給圖形加注標簽說明 xlabel('時間/t');ylabel('振幅/A');grid;

      %添加網(wǎng)格

      y=fft(x);

      %對信號做N點FFT變換 k=(n-1)*f0;

      %頻域采樣點

      subplot(2,2,3);

      %把畫圖區(qū)域劃分為2行2列,指定第三個圖 plot(k,abs(y(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('FFT變換后聲音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;

      %添加網(wǎng)格

      subplot(2,2,4);

      %把畫圖區(qū)域劃分為2行2列,指定第四個圖 if y~=0

      %判斷指數(shù)是否為0

      plot(k,20*log10(abs(y(n))));

      %畫信號頻譜的分貝圖 end xlabel('Hz');ylabel('振幅/分貝');title('FFT變換后聲音的頻譜特性');grid;

      %添加網(wǎng)格

      %實際發(fā)出聲音落后錄制動作半拍的現(xiàn)象的解決 siz=wavread('女音.wav','size');x1=wavread('女音.wav',[3500 32076]);

      %截取語音信號 N=length(x1);

      %計數(shù)讀取信號的點數(shù) t=(1:N)/fs;

      %信號的時域采樣點 f0=fs/N;

      %采樣間隔 n=1:N/2;

      %取信號的一半

      figure(2);subplot(2,2,1);

      %把畫圖區(qū)域劃分為2行2列,指定第一個圖 plot(t,x1);

      %畫出聲音采樣后的時域波形 title('截取后女音信號的時域波形');

      %給圖形加注標簽說明 xlabel('時間/t');ylabel('振幅/A');grid;

      %添加網(wǎng)格

      y1=fft(x1);

      %對信號做N點FFT變換

      subplot(2,2,3);

      %把畫圖區(qū)域劃分為2行2列,指定第三個圖 k=(n-1)*f0;

      %頻域采樣點

      plot(k,abs(y(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('FFT變換后聲音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;

      %添加網(wǎng)格

      subplot(2,2,4);

      %把畫圖區(qū)域劃分為1行2列,指定第二個圖 if y1~=0

      %判斷指數(shù)是否為0

      plot(k,20*log10(abs(y1(n))));

      %畫信號頻譜的分貝圖 end xlabel('Hz');ylabel('振幅/分貝');title('FFT變換后聲音的頻譜特性');grid;

      %添加網(wǎng)格

      原女音信號的時域波形10.5A/幅0振-0.5-10123時間/tFFT變換后聲音的頻譜特性FFT變換后聲音的頻譜特性30050A200貝/值分/幅0幅100振00200040006000-***頻率/HzHz 截取后女音信號的時域波形10.5振幅/A0-0.5-10123FFT變換后聲音的頻譜特性50時間/tFFT變換后聲音的頻譜特性300200振幅/分貝幅值/A01000020004000頻率/Hz6000-5002000Hz40006000

      結(jié)果分析:

      由原女音信號的時域波形可知錄取開始時實際發(fā)出聲音大概落后3500個采樣點,我們把前3500點去除即可解決實際發(fā)出聲音落后錄制動作半拍的現(xiàn)象。由原女音的的頻譜圖和截取后聲音的頻譜圖可看出,對聲音的截取并不會影響它們頻譜分布。

      5.3采用雙線性變換法設(shè)計IIR濾波器:

      人的聲音頻率一般在(1~~4)kHZ之間,則我們只需要設(shè)計一個帶通濾波器即可濾去聲音頻帶以外的無用噪聲,得到比較清晰的聲音。根據(jù)聲音的頻譜圖分析,設(shè)計一個帶通濾波器性能指標如下:

      fp1=1000 Hz,fp2=3000 Hz,fsc1=500 Hz,fsc2=3500Hz,As=100dB,Ap=1dB,fs=10000 程序如下:

      %iir帶通的代碼: %w=2*pi*f/fs Ap=1;

      %通帶波紋系數(shù)

      Az=100;

      %最小阻帶衰減

      wp=[0.2 0.6];

      %歸一化通帶數(shù)字截止頻率 wz=[0.1 0.7];

      %歸一化阻帶數(shù)字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);

      %估計契比雪夫I型濾波器階數(shù) [b,a]=cheby1(N,Ap,wn);

      %N指定濾波器階數(shù),wn歸一化

      截 %止頻率,Ap通帶波動

      [h,w]=freqz(b,a);

      %求數(shù)字濾波器的復(fù)頻率響應(yīng) figure(1);subplot(2,1,1);plot(w/pi,abs(h));

      %繪制數(shù)字濾波器的頻譜圖 grid;xlabel('omega/pi');ylabel('振幅(幅值)');title('契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)');subplot(2,1,2);if abs(h)~=0

      %判斷指數(shù)是否為0

      plot(w/pi,20*log10(abs(h)));

      %繪制數(shù)字濾波器頻譜的分貝圖 end grid;xlabel('omega/pi');ylabel('振幅(分貝)');title('契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)');契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)1振幅(幅值)0.5000.10.20.50.60.70.8?/?契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)0.30.40.910振幅(分貝)-200-400-60000.10.20.30.40.5?/?0.60.70.80.91

      5.4窗函數(shù)法設(shè)計FFR濾波器

      線性相位FIR濾波器通常采用窗函數(shù)法設(shè)計。窗函數(shù)法設(shè)計FIR濾波器的基本思想是:根據(jù)給定的濾波器技術(shù)指標,選擇濾波器長度N和窗函數(shù)ω(n),使其具有最窄寬度的主瓣和最小的旁瓣。其核心是從給定的頻率特性,通過加窗確定有限長單位脈沖響應(yīng)序列h(n)。工程中常用的窗函數(shù)共有6種,即矩形窗、巴特利特(Bartlett)窗、漢寧(Hanning)窗、漢明(Hamming)窗、布萊克曼(Blackman)窗和凱澤(Kaiser)窗。

      這次設(shè)計我采用的是布萊克曼來設(shè)計給定數(shù)字帶通濾波器的參數(shù)如下: wp1=0.3pi, wp2=0.6pi, wz1=0.2pi, wz2=0.7pi, Ap=1dB, Az=70dB 程序如下:

      Ap=1;

      %通帶波紋系數(shù) Az=100;

      %最小阻帶衰減 fs=10000;

      %采樣頻率 wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));

      %---取兩個過渡帶中的小者 N0=ceil(2*5.5*pi/deltaW);

      %---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);

      %---確保N為奇數(shù) hdWindow=ideallp(wc2,N)-ideallp(wc1,N);%理想帶通濾波器 wdWindow=blackman(N);

      %布拉克曼窗 hr=wdWindow.*hdWindow';

      %點乘

      n=0:N-1;

      %階數(shù) subplot(2,2,1);stem(n,wdWindow);

      %繪制布拉克曼窗時域波形 xlabel('時間');ylabel('振幅');title('布拉克曼窗');[H,W]=freqz(hr,1);

      %求濾波器頻率響應(yīng) subplot(2,2,3);plot(W/pi,abs(H))

      %繪制濾波器頻域波形 xlabel('omega/pi');ylabel('振幅');title('FIR帶通濾波器幅頻特性');subplot(2,2,4);

      if abs(H)~=0

      %判斷指數(shù)是否為0

      plot(W/pi,20*log10(abs(H)));

      %畫濾波器頻譜的分貝圖 end xlabel('omega/');ylabel('振幅/分貝');title('FIR帶通濾波器幅頻特性');grid;

      %添加網(wǎng)格 %---ideallp()函數(shù)(非系統(tǒng)自有函數(shù))在系統(tǒng)安裝目錄的WORK子目錄ideallp.m function hd = ideallp(wc,N);% 理想低通濾波器的脈沖響應(yīng)子程序 % hd = 點0 到 N-1之間的理想脈沖響應(yīng) % wc = 截止頻率(弧度)% N = 理想濾波器的長度

      tao =(N-1)/2;

      % 理想脈沖響應(yīng)的對稱中心位置 n = [0:(N-1)];

      % 設(shè)定脈沖響應(yīng)長度 m = n-tao + eps;

      % 加一個小數(shù)以避免零作除數(shù)

      hd = sin(wc*m)./(pi*m);

      % 理想脈沖響應(yīng)

      布拉克曼窗1振幅0.500406080時間FIR帶通濾波器幅頻特性500振幅/分貝20FIR帶通濾波器幅頻特性1.51振幅-50-100-15000.5?/10.5000.5?/?1

      5.5用IIR濾波器對信號進行濾波

      用自己設(shè)計的IIR濾波器分別對采集的信號進行濾波,在Matlab中,IIR濾波器利用函數(shù)filter對信號進行濾波。程序如下: [x,fs,bits]=wavread('女音.wav');N=length(x);

      %計數(shù)讀取信號的點數(shù) t=(1:N)/fs;

      %信號的時域采樣點 f0=fs/N;

      %采樣間隔 n=1:N/2;

      %取信號的一半 y=fft(x);

      %對信號做N點FFT變換 k=(n-1)*f0;

      %頻域采樣點

      subplot(2,1,1);

      %把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('濾波前女音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;

      %iir帶通的代碼:

      Ap=1;

      %通帶波紋系數(shù)

      Az=100;

      %最小阻帶衰減

      wp=[0.2 0.6];

      %歸一化通帶數(shù)字截止頻率 wz=[0.1 0.7];

      %歸一化阻帶數(shù)字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);

      %估計契比雪夫I型濾波器階數(shù)

      [b,a]=cheby1(N,Ap,wn);

      %N指定濾波器階數(shù),wn歸一化截止頻率,Ap通帶波動 x1=filter(b,a,x);

      %對聲音濾波 wavplay(x1)wavwrite(x1,'IIR濾波后女音.wav');N=length(x1);

      %計數(shù)讀取信號的點數(shù) t=(1:N)/fs;

      %信號的時域采樣點 f0=fs/N;

      %采樣間隔 n=1:N/2;

      %取信號的一半

      y=fft(x1);

      %對信號做N點FFT變換 k=(n-1)*f0;

      %頻域采樣點

      subplot(2,1,2);

      %把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('l濾波后女音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;

      濾波前女音的頻譜特性300幅值/A***030004000頻率/Hz濾波后女音的頻譜特性500060006040幅值/A***0頻率/Hz400050006000

      結(jié)果分析:

      由上面濾波前后的頻譜圖可看出,濾波器濾除了小于1000Hz和大于3400Hz的頻譜成分?;胤耪Z音信號,由于低頻和高頻成分被濾除,聲音變得較低沉。

      5.6用FIR濾波器對信號進行濾波

      用自己設(shè)計的FIR濾波器分別對采集的信號進行濾波,在Matlab中,FIR濾波器利用函數(shù)fftfilt對信號進行濾波 程序如下:

      [x,fs,bits]=wavread('女音.wav');N=length(x);

      %計數(shù)讀取信號的點數(shù)

      t=(1:N)/fs;

      %信號的時域采樣點 f0=fs/N;

      %采樣間隔 n=1:N/2;

      %取信號的一半

      y=fft(x);

      %對信號做N點FFT變換 k=(n-1)*f0;

      %頻域采樣點

      subplot(2,1,1);

      %把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('濾波前女音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/omega');ylabel('幅值/A');grid;

      %FIR帶通濾波器代碼 fs=10000;wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));

      %---取兩個過渡帶中的小者 N0=ceil(2*5.5*pi/deltaW);

      %---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);

      %---確保N為奇數(shù) hdWindow=ideallp(wc2,N)-ideallp(wc1,N);wdWindow=blackman(N);hr=wdWindow.*hdWindow';x1=fftfilt(hr,x);

      %對聲音濾波 wavplay(x1)wavwrite(x1,'FIR濾波后女音.wav');N=length(x1);

      %計數(shù)讀取信號的點數(shù) t=(1:N)/fs;

      %信號的時域采樣點 f0=fs/N;

      %采樣間隔 n=1:N/2;

      %取信號的一半

      y=fft(x1);

      %對信號做N點FFT變換 k=(n-1)*f0;

      %頻域采樣點

      subplot(2,1,2);

      %把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('l濾波后女音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;

      濾波前女音的頻譜特性300200幅值/A***004000頻率/?l濾波后女音的頻譜特性500060006040幅值/A20005001000***03000頻率/Hz***0

      結(jié)果分析:

      由上面濾波前后的頻譜圖可看出,濾波器濾除了小于1000Hz和大于3500Hz的頻譜成分。和用IIR濾波器濾波一樣,回放語音信號,由于低頻和高頻成分被濾除,聲音變得較低沉。5.7男女聲語音信號頻譜特點分析

      換一個男音錄制同樣一段語音內(nèi)容,分析兩段內(nèi)容相同的語音信號頻譜之間有什么特點。程序如下:

      [x,fs,bits]=wavread('女音.wav');

      %讀取聲音

      N=length(x);

      %計數(shù)讀取信號的點數(shù) t=(1:N)/fs;

      f0=fs/N;

      n=1:N/2;

      y=fft(x);

      k=(n-1)*f0;

      subplot(2,1,1);

      plot(k,abs(y(n)));

      title('FFT變換后女音的頻譜特性');xlabel('頻率/omega');ylabel('幅值/A');grid;

      [x,fs,bits]=wavread('明明.wav');

      N=length(x);

      t=(1:N)/fs;

      f0=fs/N;

      n=1:N/2;

      y=fft(x);

      k=(n-1)*f0;

      subplot(2,1,2);

      plot(k,abs(y(n)));

      title('FFT變換后男音的頻譜特性');xlabel('頻率/omega');ylabel('幅值/A');grid;

      %信號的時域采樣點

      %采樣間隔

      %取信號的一半

      %對信號做N點FFT變換

      %頻域采樣點

      %把畫圖區(qū)域劃分為2行1列,指定第一個圖%繪制原始語音信號的幅頻響應(yīng)圖

      %給圖形加注標簽說明

      %添加網(wǎng)格

      %讀取聲音

      %計數(shù)讀取信號的點數(shù)

      %信號的時域采樣點

      %采樣間隔

      %取信號的一半

      %對信號做N點FFT變換

      %頻域采樣點

      %把畫圖區(qū)域劃分為2行1列,指定第二個圖%繪制原始語音信號的幅頻響應(yīng)圖

      %給圖形加注標簽說明

      %添加網(wǎng)格

      axis([0 6000 0 300]);

      %改變橫縱坐標便于比較頻譜圖

      FFT變換后女音的頻譜特性300200幅值/A***00頻率/?FFT變換后男音的頻譜特性***200幅值/A***00頻率/?400050006000

      結(jié)果分析:

      通過比較上面女音頻譜圖和男音頻譜圖可知,男音的頻譜集中在低頻部分,高頻成分底,譜線較平滑,聲音聽起來低沉。5.8有背景噪聲的信號分析

      從硬盤中把一段噪聲(頻譜能量集中在某個小范圍內(nèi))疊加到語音信號中,分析疊加前后信號頻譜的變化,設(shè)計一個合適的濾波器,能夠把該噪聲濾除; 程序如下:

      z=wavread('女音.wav',[1 24000]);

      %讀取聲音在1-24000之間 f=wavread('noise.wav',[1 24000]);x=z+f;wavplay(x);fs=11025;N=length(x);f0=fs/N;

      %采樣間隔

      n=1:N;

      %取信號的一半 y=fft(x,N);%對信號做N點FFT變換

      k=(n-1)*f0;

      %頻域采樣點

      subplot(2,1,1);

      %把畫圖區(qū)域劃分為1行2列,指定第二個圖 plot(k,abs(y(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('加噪聲后聲音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;%添加網(wǎng)格

      %iir帶通濾波器的代碼:

      Ap=1;

      %通帶波紋系數(shù)

      Az=70;

      %最小阻帶衰減

      wp=[0.2 0.7];

      %歸一化通帶數(shù)字截止頻率 wz=[0.1 0.8];

      %歸一化阻帶數(shù)字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);

      %估計契比雪夫I型濾波器階數(shù)

      [b,a]=cheby1(N,Ap,wn);

      %N指定濾波器階數(shù),wn歸一化截止頻率,Ap通帶波動 x1=filter(b,a,x);

      %對聲音濾波 wavplay(x1);

      wavwrite(x1,'濾除噪音后女音.wav');N=length(x1);f0=fs/N;

      %采樣間隔 n=1:N;

      %取信號的一半

      y1=fft(x1,N);

      %對信號做fs點FFT變換

      subplot(2,1,2);

      %把畫圖區(qū)域劃分為1行2列,指定第二個圖 k=(n-1)*f0;

      %頻域采樣點

      plot(k,abs(y1(n)));

      %繪制原始語音信號的幅頻響應(yīng)圖 title('濾除噪聲后聲音的頻譜特性');

      %給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;%添加網(wǎng)格

      加噪聲后聲音的頻譜特性3000幅值/A***0008000頻率/Hz濾除噪聲后聲音的頻譜特性***030幅值/A***000頻率/Hz80001000012000

      結(jié)果分析

      觀察加噪聲后聲音的頻譜圖可知,噪音頻率主要在4000Hz處,只要我們設(shè)計一個,濾波器濾除大概在4000Hz的頻譜即可,回放濾波后的語音信號,可證噪音基本濾除。

      六.心得體會:

      通過這次課程設(shè)計,讓我對MATLAB的基本應(yīng)用有了更深的了解,還有數(shù)字信號處理在MATLAB中的一些函數(shù)的用法。通過理論推導(dǎo)得出相應(yīng)結(jié)論,并利用MATLAB作為工具進行實現(xiàn),從而復(fù)習(xí)鞏固課堂所學(xué)的理論知識,提高對所學(xué)知識的綜合應(yīng)用能力,并從實踐上初步實現(xiàn)對數(shù)字信號的處理。

      在這次實驗中,也遇到了很多問題,比如畫信號頻譜的分貝圖時(20*log10(abs(y)))指數(shù)為零時的處理。濾波器的設(shè)計也花了好大的功夫,剛開始不會設(shè)計參數(shù),一頭霧水,通過同學(xué)的指導(dǎo)和討論,得知通過觀察信號的頻譜圖,看噪音頻率集中在那一部分,設(shè)計濾波器把其濾除即可。可反復(fù)設(shè)置參數(shù)直到濾波后語音信號的效果好為止。

      七.參考文獻:

      (1)《MATLAB LabVIEW SystemView》翁劍楓 葉志前 編著, 機械工業(yè)出版社;

      (2)《MATLAB及在電子信息課程中的應(yīng)用》陳懷琛 吳大正 高西全編著,電子工業(yè)出版社;

      (3)《MATLAB在數(shù)字信號處理中的應(yīng)用》(弟2版)薛年喜 編著,清華大學(xué)出版社;

      (4)《MATLAB擴展編程》何強 何英

      編著,清華大學(xué)出版社;(5)《MATLAB7簡明教程》吳清 曹輝林 編著,清華大學(xué)出版社;(6)MATLAB5.3精要.編程及高級應(yīng)用》程衛(wèi)國 馮峰 王雪梅 劉藝 編著,機械工程出版社。

      第三篇:為實現(xiàn)員工最優(yōu)業(yè)績?yōu)槟康?/a>

      為實現(xiàn)員工最優(yōu)業(yè)績?yōu)槟康?,特制定本管理辦法及規(guī)定:

      一、薪資辦法

      (一)薪資構(gòu)成薪資總額=基本工資+崗位工資+績效工資+駐外補貼+通訊補貼+獎金(提成)+工齡工資

      崗位 基本工資(元)崗位工資(元)績效工資基數(shù)(元)駐外補貼(元/天)通訊補貼(元/月)

      1、基本工資、崗位工資按實際出勤天數(shù)發(fā)放;

      2、績效工資=回款完成率×績效工資基數(shù)×60%+銷售完成率×績效工資基數(shù)×30%+銷售考核分數(shù)×(績效工資基數(shù)÷10)

      (1)回款完成率=當(dāng)月實際回款÷回款任務(wù)(最高按100%計算)

      (2)銷售完成率=當(dāng)月實際銷售額÷銷售任務(wù)(最高按100%計算)

      (3)連續(xù)3個月未完成基本銷售任務(wù),績效工資基數(shù)下降30%,連續(xù)3個月未完成基本銷售任務(wù)80%,調(diào)離銷售崗位或予以辭退;

      3、銷售考核分數(shù)具體評分標準如下:

      A.當(dāng)月回款排名獎0至3分,當(dāng)月銷售回款額排名與上月銷售回款額排名,名次每前進一名,則加1分,加滿3分為止。如名次后退或沒改變則不得分;

      B.客戶管理3分,新增有回款客戶1家,加1分,丟減客戶1家減1分;

      C.報表考核4分,每少一份(或信息不合格),按要求所交報表總數(shù)扣減相應(yīng)分數(shù)。

      D.工作態(tài)度、紀律情況考評-3分至3分。

      4、駐外補貼指到四川省內(nèi)成都以外的地、州開展工作,每月按實際駐外工作天數(shù)發(fā)放的補貼,本地招聘人員無補貼。

      駐四川省外地區(qū)的補貼每天增加10元。

      駐外工作在同一住地時間超過15天以上的,補助標準每天減少5元。

      5、獎金(提成)按每月銷售回款按品種類別計算提取。

      產(chǎn)品類別

      獎金(提成)當(dāng)月發(fā)放50%,另30%于每一季度的次月8日發(fā)放,其余20%年終發(fā)放。

      業(yè)務(wù)主管、區(qū)域經(jīng)理或大區(qū)經(jīng)理單獨所做無業(yè)務(wù)代表的市場,按業(yè)務(wù)代表標準提取,提成比例不進行累計。

      如有新產(chǎn)品上市,另行通知按何類產(chǎn)品提取獎金。

      6、工作年限滿一年以上的,工齡工資每月按----元/每年計算。

      (二)新聘人員

      新聘人員有一周左右的培訓(xùn)期,基本待------元/天,無考核。

      新聘人員試用期1-3個月,業(yè)務(wù)代表基本工資和績效工資基數(shù)按70%計算,第一個月無銷量和回款考核,第二、三個月按任務(wù)50%考核,完成任務(wù)80%以上即可轉(zhuǎn)為正式員工。

      新聘業(yè)務(wù)代表以上崗位人員,試用期按下一級別崗位薪資標準和考核,轉(zhuǎn)正后按相應(yīng)級別發(fā)放薪資并考核,連續(xù)兩個月考核不合格,降為下一級;業(yè)務(wù)代表連續(xù)三個月考核不合格,解除勞動關(guān)系(完成任務(wù)80%以下即為考核不合格)。

      二、費用報銷規(guī)定

      (一)營銷人員費用

      營銷人員費用總體按銷售回款額的8%控制。

      1、營銷人員薪資

      營銷人員經(jīng)過考核后,每月薪資于次月8日發(fā)放。

      2、出差管理及差旅費用報銷(含駐外補貼)

      跨地區(qū)出差,應(yīng)先報出差計劃(時間、路線、內(nèi)容、交通工具等)經(jīng)批準后實施,可報銷火車硬座、輪船三等艙以內(nèi)、長途汽車票,憑原始票據(jù)及記錄詳細行程的計劃表在出差后一周之內(nèi)報銷(駐外人員可一月報銷一次或郵寄回總部報銷)。

      駐外包干補助(含住宿費、市內(nèi)交通費、生活補貼等)根據(jù)票據(jù)時間計算出差天數(shù),往、返日只計算一天,50公里以上,當(dāng)天往返,其補助按半天計算。大區(qū)經(jīng)理及以下級別人員補助在每月薪資中一并發(fā)放。

      不是為本企業(yè)服務(wù)所產(chǎn)生的差旅費不予報銷,非駐外市場工作無補助。

      3、應(yīng)酬費

      應(yīng)酬費用按上月銷售回款總額的0.5%限額控制。每一次客戶招待時應(yīng)填報《宴客單》報銷售經(jīng)理按限額審批,并報總經(jīng)理。應(yīng)酬費用可在一年內(nèi)的每月的限額間進行調(diào)節(jié),年終時超出總額部份不予報銷。開支費用在總額內(nèi)如有節(jié)約,節(jié)約部份的50%作為銷售經(jīng)理和其他銷售管理人員的獎勵,比例分配為1:1。

      客戶宴請應(yīng)根據(jù)實際情況,分別按招待標準接待,并應(yīng)達到良好效果,如出現(xiàn)客戶反映因我企業(yè)人員原因造成的不滿或未達到預(yù)期效果的,每次對宴請申請人罰款50元。

      4、銷售日常費用

      營銷總部購買各種辦公用品實行申報制,由總經(jīng)理批準后購買使用。市場人員的工作筆記本、筆、各類報表等由營銷總部按相關(guān)規(guī)定配給,不再報銷此項費用。

      市場人員報銷的打字、復(fù)印、傳真等費用每月限額50元,并應(yīng)附清單寫明每次費用發(fā)生的時間、具體內(nèi)容、數(shù)量等,否則不予銷。

      由營銷總部承諾負擔(dān)而由經(jīng)銷商代墊的如運雜費等費用,在合同或文件規(guī)定金額內(nèi)可予報銷。由營銷人員私自承諾的費用不予報銷。

      5、會議、培訓(xùn)費

      營銷總部不定期召集營銷人員會議進行培訓(xùn)、傳達文件、研究工作。每一次培訓(xùn)、業(yè)務(wù)會議由營銷總部通知時間及內(nèi)容,在會議期間的食宿等費用由總部統(tǒng)一安排,原則上按每人每天50元的標準(總額控制在銷售回款的0.3%內(nèi)),在規(guī)定時間外和超標費用由相關(guān)人員自行承擔(dān)。

      回總部的火車硬座、輪船三等艙以內(nèi)、長途汽車票憑票據(jù)實報銷。

      5、業(yè)務(wù)提成每月25日由營銷人員填制《銷售提成報銷表》,營銷總部審核無誤后按規(guī)定發(fā)放。

      (二)宣傳促銷費

      宣傳促銷費按銷售額8%以內(nèi)開支,由營銷總部根據(jù)市場情況安排或由經(jīng)銷商、營銷人員申請。由營銷人員申請的費用,必須附總部批準執(zhí)行的報告。可采取實物、買贈、現(xiàn)金獎勵等各種方式。

      (三)市場營銷人員借款規(guī)定

      市場業(yè)務(wù)人員經(jīng)批準每人可以借支1000元,離職時或年底報完費用結(jié)清借支。若造成損失的,誰批準(包括無批準而私自借出的當(dāng)事人),誰負責(zé)。特殊情況下,總部人員出差借支,需經(jīng)總經(jīng)理批準后方能借款,并于出差結(jié)束后及時報銷沖賬。

      (四)處罰規(guī)定

      各項報銷憑證,必須手續(xù)完備、內(nèi)容真實、數(shù)字準確、項目清楚、粘貼整齊,不得弄虛作假;原始依據(jù)必須充分、有效,填寫完整、不得挖補涂改。如發(fā)現(xiàn)弄虛作假作假者,除作假部份不予報銷外,并處以相應(yīng)金額2倍的罰款,發(fā)現(xiàn)兩次以上者,直接辭退。

      第四篇:數(shù)據(jù)結(jié)構(gòu)實驗報告-二叉樹的實現(xiàn)與遍歷

      《數(shù)據(jù)結(jié)構(gòu)》 第六次實驗報告

      學(xué)生姓名 學(xué)生班級 學(xué)生學(xué)號 指導(dǎo)老師

      重慶郵電大學(xué)計算機學(xué)院 計算機專業(yè)實驗中心

      一、實驗內(nèi)容

      1)采用二叉樹鏈表作為存儲結(jié)構(gòu),完成二叉樹的建立,先序、中序和后序以及按層次遍歷的操作,求所有葉子及結(jié)點總數(shù)的操作。2)輸出樹的深度,最大元,最小元。

      二、需求分析

      遍歷二叉樹首先有三種方法,即先序遍歷,中序遍歷和后序遍歷。遞歸方法比較簡單,首先獲得結(jié)點指針如果指針不為空,且有左子,從左子遞歸到下一層,如果沒有左子,從右子遞歸到下一層,如果指針為空,則結(jié)束一層遞歸調(diào)用。直到遞歸全部結(jié)束。下面重點來講述非遞歸方法: 首先介紹先序遍歷:

      先序遍歷的順序是根 左 右,也就是說先訪問根結(jié)點然后訪問其左子再然后訪問其右子。具體算法實現(xiàn)如下:如果結(jié)點的指針不為空,結(jié)點指針入棧,輸出相應(yīng)結(jié)點的數(shù)據(jù),同時指針指向其左子,如果結(jié)點的指針為空,表示左子樹訪問結(jié)束,棧頂結(jié)點指針出棧,指針指向其右子,對其右子樹進行訪問,如此循環(huán),直至結(jié)點指針和棧均為空時,遍歷結(jié)束。

      再次介紹中序遍歷:

      中序遍歷的順序是左 根 右,中序遍歷和先序遍歷思想差不多,只是打印順序稍有變化。具體實現(xiàn)算法如下:如果結(jié)點指針不為空,結(jié)點入棧,指針指向其左子,如果指針為空,表示左子樹訪問完成,則棧頂結(jié)點指針出棧,并輸出相應(yīng)結(jié)點的數(shù)據(jù),同時指針指向其右子,對其右子樹進行訪問。如此循環(huán)直至結(jié)點指針和棧均為空,遍歷結(jié)束。最后介紹后序遍歷:

      后序遍歷的順序是左 右 根,后序遍歷是比較難的一種,首先需要建立兩個棧,一個用來存放結(jié)點的指針,另一個存放標志位,也是首先訪問根結(jié)點,如果結(jié)點的指針不為空,根結(jié)點入棧,與之對應(yīng)的標志位也隨之入標志位棧,并賦值0,表示該結(jié)點的右子還沒有訪問,指針指向該結(jié)點的左子,如果結(jié)點指針為空,表示左子訪問完成,父結(jié)點出棧,與之對應(yīng)的標志位也隨之出棧,如果相應(yīng)的標志位值為0,表示右子樹還沒有訪問,指針指向其右子,父結(jié)點再次入棧,與之對應(yīng)的標志位也入棧,但要給標志位賦值為1,表示右子訪問過。如果相應(yīng)的標志位值為1,表示右子樹已經(jīng)訪問完成,此時要輸出相應(yīng)結(jié)點的數(shù)據(jù),同時將結(jié)點指針賦值為空,如此循環(huán)直至結(jié)點指針和棧均為空,遍歷結(jié)束。

      三、詳細設(shè)計

      源代碼:

      #include #define MAX 100 //表示棧的最大容量 #define FULL 99//表示棧滿 #define EMPTY-1//表示???/p>

      typedef struct Tnode //定義結(jié)點 {

      char data;//存儲結(jié)點數(shù)據(jù)

      struct Tnode *left;//定義結(jié)點左子指針 struct Tnode *right;//定義右子指針

      }Tnode,*Pnode;//聲明Tnode類型的變量和指針 typedef struct Stack//定義棧 { Pnode pnode[MAX];//存放數(shù)據(jù) int p;//棧頂指針

      }Stack,*Pstack;//定義Stack類型的變量和指針 void Push(Pstack pstack,Pnode pnode)//入棧 {

      } Pnode Pop(Pstack pstack)//出棧 { } Pnode Top(Pstack pstack)//看棧頂元素 { } int Isempty(Pstack pstack)//棧判空 {

      } int Isfull(Pstack pstack)//棧滿 {

      } void Initstack(Pstack pstack)//初始化棧 if(pstack->p==FULL)else return 0;return 1;if(pstack->p==EMPTY)else return 0;;return 1;return pstack->pnode[pstack->p];return pstack->pnode[pstack->p--];pstack->p ++;pstack->pnode[pstack->p] = pnode;//賦值

      { } void Inittnode(Pnode root,Pnode left,Pnode right,char data)//初始化結(jié)點 {

      } void PreorderR(Pnode proot)//遞歸先序遍歷算法 {

      } void InorderR(Pnode proot)//遞歸中序遍歷算法 {

      } void PostorderR(Pnode proot)//遞歸后序遍歷算法 {

      } void PreorderI(Pnode proot,Pstack pstack)//非遞歸先序遍歷算法 {

      Initstack(pstack);//初始化棧

      while(proot||!Isempty(pstack))//如果??詹⑶医Y(jié)點指針空,則結(jié)束循環(huán) {

      if(proot){ printf(“%2c”,proot->data);if(proot){

      } PostorderR(proot->left);PostorderR(proot->right);printf(“%2c”,proot->data);if(proot){

      }

      InorderR(proot->left);printf(“%2c”,proot->data);InorderR(proot->right);if(proot){

      } printf(“%2c”,proot->data);PreorderR(proot->left);PreorderR(proot->right);root->left=left;root->right = right;root->data = data;pstack->p=EMPTY;

      }

      }

      } else {

      } if(Isfull(pstack))//如果棧滿不能執(zhí)行入棧操作 {

      } Push(pstack,proot);//入棧 proot=proot->left;//指針指向左子 printf(“棧滿,不能執(zhí)行入棧操作!”);return;if(Isempty(pstack))//??諘r不能出棧 {

      } proot = Pop(pstack);//執(zhí)行出棧操作 proot=proot->right;//指針指向右子 printf(“???,不能執(zhí)行出棧操作!”);return;void InorderI(Pnode proot,Pstack pstack)//非遞歸中序遍歷算法 {

      Initstack(pstack);//初始化棧

      while(proot||!Isempty(pstack))//循環(huán)結(jié)束條件 {

      if(proot){

      } else {

      if(Isempty(pstack)){

      } proot = Pop(pstack);//出棧

      printf(“%2c”,proot->data);//打印數(shù)據(jù) printf(“???,不能執(zhí)行出棧操作!”);return;if(Isfull(pstack)){

      } Push(pstack,proot);//執(zhí)行入棧操作 proot = proot->left;//指針指向左子 printf(“棧滿,不能執(zhí)行入棧操作!”);return;

      }

      } } proot=proot->right;//指針指向右子

      void PostorderI(Pnode proot,Pstack pstack)//非遞歸后續(xù)遍歷算法 {

      } void main(){ int flags[MAX];//定義標志位棧 int p =-1;//初始化標志位棧 int flag;//存放標志位 Initstack(pstack);//初始化棧

      while(proot||!Isempty(pstack))//循環(huán)結(jié)束條件 {

      } if(proot){

      } else {

      } proot = Pop(pstack);//指針出棧 flag = flags[p--];//相應(yīng)標志位出棧

      if(flag==0)//如果標志位為0表示右子還未訪問過 {

      } else {

      } printf(“%2c”,proot->data);//打印數(shù)據(jù) proot = NULL;//將結(jié)點指針置空 flag =1;//將標志位置1,右子已訪問 flags[++p] = flag;//標志位入棧 Push(pstack,proot);//結(jié)點入棧 if(Isfull(pstack)){

      } flags[++p] = 0;//標志位置0,并入棧 Push(pstack,proot);//結(jié)點入棧 proot=proot->left;//指針指向左子 printf(“棧滿,不能執(zhí)行入棧操作!”);return;

      proot = proot->right;//指針指向右子

      Tnode A,B,C,D,E,F,G;//聲明結(jié)點變量 Stack stack;//聲明棧

      Inittnode(&A,&B,&C,'A');//初始化結(jié)點 Inittnode(&B,NULL,&D,'B');Inittnode(&C,&E,&F,'C');Inittnode(&D,NULL,NULL,'D');Inittnode(&E,NULL,NULL,'E');Inittnode(&F,&G,NULL,'F');Inittnode(&G,NULL,NULL,'G');printf(“你定義的樹的結(jié)構(gòu)是:n”);printf(“A(B(D)C(E F(G)))n”);printf(“=====================下面是遍歷結(jié)果====================n”);printf(“=====================遞歸先序遍歷:====================n”);PreorderR(&A);printf(“n”);printf(“=====================非遞歸先序遍歷:==================n”);PreorderI(&A,&stack);printf(“n”);printf(“=====================遞歸中序遍歷:====================n”);InorderR(&A);printf(“n”);printf(“=====================非遞歸中序遍歷:==================n”);InorderI(&A,&stack);printf(“n”);PostorderR(&A);printf(“n”);PostorderI(&A,&stack);

      printf(“n”);

      /*一下是調(diào)用相應(yīng)的函數(shù)輸出遍歷結(jié)果*/

      }

      printf(“=====================遞歸后序遍歷:====================n”);

      printf(“=====================非遞歸后序遍歷:==================n”);

      五、遇到的問題及解決辦法

      這部分我主要遇到如下兩個問題,其內(nèi)容和解決方法如下所列:

      執(zhí)行程序時程序停止運行,其效果如圖:

      解決方法:看到程序停止運行,推測可能的原因:遇到死循環(huán)、參數(shù)設(shè)置不合理或者結(jié)構(gòu)體沒有造好。首先對結(jié)構(gòu)體進行了檢查,各個成員聲明正常無誤,在對程序進行調(diào)試,程序正常跳出循環(huán),因此最可能是自定義函數(shù)的參數(shù)設(shè)置的不合理,因此對調(diào)用的自定義函數(shù)進行相應(yīng)的改動,將參數(shù)由具體類型改為指針類型后,程序正常運行。

      程序不停的輸出同一個結(jié)點的數(shù)據(jù),其效果入圖:

      解決方法:分析運行結(jié)果可知,第一不停的輸出證明遇到了死循環(huán),第二輸出的是同一個結(jié)點的數(shù)據(jù),表示指針沒有按預(yù)期進行指向,首先對程序進行調(diào)試,發(fā)現(xiàn)程序沒有添加循環(huán)結(jié)束條件,添加循環(huán)結(jié)束條件后,只能輸出樹的部分結(jié)點的數(shù)據(jù),對標志位進行修改后,程序運行正常,也能正確輸出遍歷結(jié)果。

      六、心得體會

      通過這次作業(yè)真的受益匪淺,感觸良多:

      首先,要提高編程能力,必須多動手,多實踐,而不是僅僅局限在書本上,更不能眼高手低。眼高手低,懶得動手,這就犯了編程人員的大忌。大一我們開始接觸C語言,這是我們接觸到的第一種編程語言,但是當(dāng)時徒有對編程的興趣,卻沒有付諸行動,動手少,結(jié)果考試險過,通過這次作業(yè),我再次看了C語言課本,邊看邊寫代碼,理解快,印象深刻,思維也活躍許多,狀態(tài)也好,真正的意識到,編程能力需要靠實踐來提升。當(dāng)自己寫出意想的程序后,真的有些成就感。再者,在吳老師的指導(dǎo)和要求下,我們改掉了很多的編程壞習(xí)慣的同時也養(yǎng)成了良好的編程習(xí)慣,另一方面我們態(tài)度端正了很多,認真完成好每一項任務(wù),這樣無形中提高了對自己的要求,同時也增強了我們的動手能力和編程能力。

      七、附錄 運行結(jié)果截圖。

      第五篇:分層教學(xué)實現(xiàn)學(xué)生最優(yōu)發(fā)展-教學(xué)教案

      《太陽》是一年級北師大版課改實驗教材。這首兒歌,通過日出景象的描寫,讓學(xué)生感受太陽的美,從而喜歡太陽,激發(fā)學(xué)生熱愛大自然的思想感情。并隨文學(xué)習(xí)12個生字,學(xué)寫6個字。由于學(xué)生認字的程度存在差異,有的學(xué)生通過課外自學(xué),己掌握了本課的生字。針對這一情況,在識字教學(xué)中,我采用了分層教學(xué),邀請數(shù)學(xué)老師和我一起走進課堂,數(shù)學(xué)老師負責(zé)輔導(dǎo)己掌握該課生字的學(xué)生,給予拓展、提高。并在新授后對該課未完全掌握的學(xué)生及時補缺漏。我則進行正常的識字教學(xué)。嘗試這樣的課堂教學(xué),我覺得可以真正做到以育人為本,因材施教,實現(xiàn)學(xué)生最優(yōu)發(fā)展。

      二、課堂教學(xué)節(jié)錄

      借助課件讓學(xué)生感受太陽的美,從而學(xué)習(xí)課文,指導(dǎo)有感情地朗讀課文。接著,進入識字教學(xué)。課件點擊出示這課要學(xué)的12個生字。

      分a、b組進行教學(xué)。a組在教室的一角自由圍坐,和數(shù)學(xué)老師學(xué)習(xí);b組小小組t字形坐式新授。

      師:昨天,我測過我們班幾個小朋友,有六個小朋友已經(jīng)自己學(xué)會了這12個生字?,F(xiàn)在,請這幾位小朋友(a組)到后面去和龔老師一起學(xué)習(xí)。其他的小朋友和我一起來學(xué)習(xí)這12個字。(課件演示)我們看誰最先和這些可愛的字娃娃交上朋友。

      看一看,你認識幾號字娃娃,你就可以當(dāng)小老師教大家?;蚴悄阆矚g認識哪個字娃娃,就提出來。

      生:我認識6號字娃娃,這個字讀“出”,出來的“出”。(生字是注音的)師:真不錯,大家跟她一起讀。你還能教小朋友認識哪個字娃娃呢? 生:我還認識3號字娃娃“從”,1號字娃娃“叫”(生跟讀)

      師:大家跟她學(xué)得很認真。這個小老師當(dāng)?shù)谜婧?,獎你一個“小太陽”貼紙。**同學(xué),你想認識兒號字娃娃? 生:我想認識5號字娃娃。師:有哪位小朋友會嗎? 生:我知道這個字是“跳”,跳舞的“跳”。師:“同學(xué)你懂了嗎?謝謝生1小朋友。”

      (其余幾個字方法同上,主要體現(xiàn)生生互動。)師:這些字娃娃小朋友都認識了嗎?拿出你們桌上的生字卡片,在小組里互相考一考。這些字都認識,還能讀準字音的小朋友,其他小朋友就可以把桌上的“小太陽”貼紙送給他。如果他有的字還不認識,你們就幫幫他。(生字卡上都有注音)師:看來小朋友學(xué)得不錯,很多小朋友都得到了“小太陽”。你們真棒呀,下面我要再次考考大家,看誰認得最快,讀得最準。(開火車認讀字卡,生字不注音)在本組學(xué)生基本掌握生字后,a組的學(xué)生回到課堂中來。一起課間律動操《種太陽》。做“搬房子”游戲擴詞、練習(xí)說話。由a組的同學(xué)當(dāng)“小測試員”測試b組的同學(xué)12個生字掌握情況。再次分組學(xué)習(xí),未完全掌握的同學(xué)找龔老師再次學(xué)習(xí);其余的同學(xué)一起討論:學(xué)了這課,你喜歡太陽公公嗎?為什么?小組交流:課前收集的有關(guān)太陽的資料。

      (有影音資料、有圖片資料、有網(wǎng)上查找的資料、有書籍資料等)龔老師和a組:(手提電腦演示課件)

      1、做各種游戲進行12個生字擴詞、說話等多種形式的提高性練習(xí)。

      2、做游戲“射氣球”學(xué)習(xí)本課未要求認識的其余生字。

      3、互相交流自己新認識的字。龔老師和測試后c組的同學(xué): 課件演示,再次和未認識的字娃娃交上朋友。

      三、簡析:

      1、充分體現(xiàn)語文教育的人文性、民主性 學(xué)生是學(xué)習(xí)和發(fā)展的主體。語文課必須根據(jù)學(xué)生身心發(fā)展和語文學(xué)習(xí)的特點,關(guān)注學(xué)生的個體差異和不同的學(xué)習(xí)要求,愛護學(xué)生的好奇心、求知欲,充分激發(fā)學(xué)生的主動意識和進取精神。北師大版的這冊教材非常注重讓學(xué)生多認字。在識字教學(xué)中,我發(fā)現(xiàn)學(xué)生認字的程度不一,有的學(xué)生通過課外自學(xué)己掌握了本課的生字,如果讓這些學(xué)生也和其他學(xué)生一起重新識字的話,勢必挫傷他們學(xué)習(xí)的積極性,甚至可以說是浪費他們的學(xué)習(xí)時間。因此,我認為教師必須關(guān)注到學(xué)生的這種差異和他們的不同學(xué)習(xí)要求,在教學(xué)中,我讓這部分的學(xué)生進行提高、拓展學(xué)習(xí),使他們更上一層樓。而那些無法按時完成學(xué)習(xí)任務(wù)的學(xué)生,則在課堂給他們更多的時間再學(xué)習(xí),及時補上。總之,力求充分體現(xiàn)以育人為本、因材施教的教學(xué)理念。

      2、分層教學(xué)實現(xiàn)學(xué)生最優(yōu)發(fā)展

      進行課程改革,可以通過創(chuàng)設(shè)現(xiàn)代的教育環(huán)境,改變教學(xué)的形式,使得學(xué)生與學(xué)生之間、教師與學(xué)生之間、教師與教師之間有充分的互動。分層教學(xué)正是為之提供了大舞臺?!短枴愤@課,我們打破了學(xué)科體系,語、數(shù)老師一同走進課堂。語文老師當(dāng)主角、數(shù)學(xué)老師當(dāng)配角。當(dāng)進入學(xué)習(xí)生字這一教學(xué)環(huán)節(jié)時,開始分層教學(xué),數(shù)學(xué)老師在教室的一角和課前已自學(xué)本課所學(xué)生字的上等學(xué)生(a組)一起學(xué)習(xí),利用電腦課件給以提高補充知識。語文老師則負責(zé)占大多數(shù)的學(xué)生(b組)新授生字的教學(xué)。當(dāng)b組學(xué)生通過小老師教、小組合作互幫互學(xué)完成了本課的學(xué)習(xí)任務(wù)以后,讓這幾名上等生做小測試員當(dāng)場測試認字情況。之后,未完全掌握生字的學(xué)生即刻再和數(shù)學(xué)老師學(xué)習(xí),爭取圓滿完成學(xué)習(xí)任務(wù)。語文老師則讓已完成學(xué)習(xí)任務(wù)的學(xué)生拓展學(xué)習(xí),小組交流自己課前收集的有關(guān)太陽的資料。這樣的分層次教學(xué),能最大限度滿足不同程度的學(xué)生的學(xué)習(xí)要求,讓每個孩子都能“吃飽”。在識字教學(xué)中我們還把a、b、c、d四種層度的學(xué)生在組合在一個小組里,合作學(xué)習(xí)之前提出四種不同的要求,對每組4號同學(xué)的要求最低,而對1號同學(xué)的要求最高。在小組交流、全班交流時,不同層度的同學(xué)均有表現(xiàn)的機會,也均能學(xué)到其他同學(xué)的長處。

      應(yīng)該說我們“小班化教育”為分層教學(xué)創(chuàng)造了很有利的條件。但實踐證明,分層教學(xué)有利于學(xué)生在感興趣的自主活動中全面提高語文素養(yǎng),培養(yǎng)學(xué)生主動探究、團結(jié)合作、勇于創(chuàng)新精神,使教師更好地了解學(xué)生,讓學(xué)生在積極互動中掌握知識,發(fā)展個性,實現(xiàn)學(xué)生最優(yōu)發(fā)展。

      下載最優(yōu)二叉樹的matlab實現(xiàn)(5篇材料)word格式文檔
      下載最優(yōu)二叉樹的matlab實現(xiàn)(5篇材料).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        實驗報告:二叉樹

        實驗報告 二叉樹 一 實驗?zāi)康?1、進一步掌握指針變量,動態(tài)變量的含義; 2、掌握二叉樹的結(jié)構(gòu)特性以及各種存儲結(jié)構(gòu)的特點及適用范圍。 3、掌握用指針類型描述、訪問和處理二叉......

        MATLAB函數(shù)處理圖像實現(xiàn)膨脹腐蝕

        MATLAB函數(shù)處理圖像實現(xiàn)膨脹腐蝕 一、實驗?zāi)康?1、了解二值形態(tài)學(xué)的基本運算 2、掌握二值圖像膨脹、腐蝕的基本方法 3、編程實現(xiàn)膨脹、腐蝕 二、實驗要求 1、使用imdilate函......

        基于Matlab的數(shù)字電子琴的設(shè)計與實現(xiàn)

        工程數(shù)字信號處理算法與實踐 之 基于Matlab的數(shù)字電子琴的設(shè)計與實現(xiàn) 學(xué)生: 呂柳燕 班級:機碩0701 學(xué)號:200770438 指導(dǎo)教師:何嶺松 日期:2007-9-28 基于Matlab的數(shù)字電子琴的......

        個人簡介(最優(yōu))

        尊敬的各位領(lǐng)導(dǎo)、各位評委: 大家好! 首先,感謝你們給了我這次展現(xiàn)自已,鍛煉自已、發(fā)展自已的平臺,對我而言,也是一次鍛煉、提高的好機會。我叫***,現(xiàn)年33歲,父親是一名教師,母親是名......

        二叉樹遍歷課程設(shè)計】

        數(shù)據(jù)結(jié)構(gòu)程序設(shè)計報告 學(xué)院: 班級: 學(xué)號:姓名: 實驗名稱:二叉樹的建立與遍歷 一、 實驗?zāi)康模?1.掌握二叉樹的二叉鏈表存儲結(jié)構(gòu); 2.掌握二叉樹創(chuàng)建方法; 3.掌握二叉樹的先序、中序、......

        實驗5_二叉樹

        贛南師范大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院 實 驗 報 告 冊 課程名稱:算法與數(shù)據(jù)結(jié)構(gòu) 實驗項目名稱: 實驗5. 二叉樹 實驗學(xué)時: 4 學(xué)生學(xué)號與姓名: 實驗地點: 數(shù)計樓四樓 實驗日期: 年 月......

        數(shù)據(jù)結(jié)構(gòu)作業(yè)——二叉樹

        數(shù)據(jù)結(jié)構(gòu)實驗報告二 題目: 用先序遞歸過程監(jiān)理二叉樹(存儲結(jié)構(gòu):二叉鏈表) 輸入數(shù)據(jù)按先序遍歷輸入,當(dāng)某節(jié)點左子樹或者右子樹為空時,輸入‘*’號,如輸入abc**d**e**時,得到的二叉樹......

        最優(yōu)方案習(xí)題

        1、我們一共有32人租船游玩,小船24元,大船30元,小船限乘4人,大船限乘6人,怎樣租船最省錢?2、有3名教師帶領(lǐng)60名學(xué)生去公園劃船,大船限乘6人,租金30元,小船限乘5人,租金26元,請設(shè)計最便......