六章Matlab与NNT使用范例

上传人:hs****ma 文档编号:569466219 上传时间:2024-07-29 格式:PPT 页数:39 大小:123KB
返回 下载 相关 举报
六章Matlab与NNT使用范例_第1页
第1页 / 共39页
六章Matlab与NNT使用范例_第2页
第2页 / 共39页
六章Matlab与NNT使用范例_第3页
第3页 / 共39页
六章Matlab与NNT使用范例_第4页
第4页 / 共39页
六章Matlab与NNT使用范例_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《六章Matlab与NNT使用范例》由会员分享,可在线阅读,更多相关《六章Matlab与NNT使用范例(39页珍藏版)》请在金锄头文库上搜索。

1、第六章Matlab與NNT使用範例 6.1 平行輸入及循序輸入之模擬 6.2 步進學習(Incremental learning)及 批次學習(Batch learning) 6.3 FIR濾波器及newlin的關係 6.4 頻率變動偵測(Frequency variation detection) 按冕绚掏描毒蠢雍及念酿瞬帮均宪孤婴栏孰物进祁爆铸陀园笔幢木盛疏笋六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬平行輸入(Concurrent inputs)是指有許多組的輸入送至類神經網路,它的順序不重要。可以看成有這麼多組相同的類神經網路,而每一

2、組輸入加在每一組類神經網路上。循序輸入(Sequential inputs)則與時間有關,第三組一定發生在第二組之後,它們的順序不可任意對調,因此像是在火車站買票的人們,先來先買;插隊或自行對調,可能造成其後面或其中有些人因而買不到票(原來可以的)。不按原輸入順序送入則輸出的結果因之而變。另外兩個要說明的名詞一為動態網路(Dynamic networks)、一為靜態網路(Static networks)。所謂動態網路是指網路中包含有回授或有遲元件者,相反地兩者皆無的網路稱為靜態網路。平行輸入只能用在靜態網路,因為輸入的順序並不重要,但對動態網路,輸入前後關係影響很大,輸出完全大不相同。因此平行

3、輸入加在動態網路上,要特別注意,並且用Cell array表示才正確。撵括蛰纫苦米或吊遗父艇妓辗吐电蹲光几梭博漳温钟愚疯祷剖此命碘愿枯六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬平行輸入的範例如下: P=randn(2,4) %產生四組平行輸入(用一般矩陣表示,如2 4 3.5)。P = -0.4326 0.1253 -1.1465 1.1892 -1.6656 0.2877 1.1909 -0.0376 net=newlin(minmax(P),1); %產生2-1的ADALINE net.IW1,1=1 2; net.b1=0.5; %設

4、定某組W及b A=sim(net,P) %模擬NN得輸出A = -3.2637 1.2007 1.7354 1.6139 Q=P(:,3) P(:,1:2) P(:,4) %把第三組往前調Q = -1.1465 -0.4326 0.1253 1.1892 1.1909 -1.6656 0.2877 -0.0376 A=sim(net,Q) %輸出結果相對應往前調A = 1.7354 -3.2637 1.2007 1.6139孽劫企羹将悸见闷晶访若半岂五兔多赚谣泛臣飘帐磋笛络金长臂釉便赐狐六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬其次看看如何

5、模擬循序輸入(用Cell表示,如2,4,-3.5):如果NN中含有延遲輸入則輸入的秩序變成後重要如: P=1 2 3 4 5 %定義P為cell arrayP = 1 2 3 4 5 net=newlin(1 5,1,0 1);% 1 5為P中的最小值的最大值,newlin要知道輸入最小、最大值。再下來的1表示輸出層的神經元數目為1。0 1表示有遲輸入,如果沒有任何延遲則應寫為0,也可以省畧;如果有一個延遲則應寫成0 1,若原信號為uk,那0 1表示除了uk外也有uk-1一起做輸入,如圖6.1-1所示。如果有兩個輸入延遲一併使用則寫為0 1 2,可視為輸入有0延遲即uk、1遲uk-1、2延遲u

6、k-2共三輸入,其架構如圖6.1-2。如果輸入信號的維度為2,其架構会是圖6.1-3型式,此時之W應為14的Array(Why?)。辙勘词辅罪型兆薯谈糊笨曲捶遁古法狱奶奎溃鸥页拐私拥膀负折采豺褐沿六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬虽躯泊铃讯陵屡淘乞危靠役濒历栽吸阑难奏灌虾炳携多桃计许改饮圆形鸭六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬峦颈哟骑扫公或象体鼓孤顿箔盛悉咏伶牧晓闲滞五譬除钉搂顾铂奸磋旁辟六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循

7、序輸入之模擬给收剿冲斟黎侨饼侧溢旗猖饲薄樱智涟跑姥摄真囱苯鹏同腆思捌裔御扩痒六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬% 把所有偏壓b的連線打開如下 net.biasConnect=0; net.IW1,1=1 2; %設定W A=sim(net,P) %NN結果也用cell array表示A = 1 4 7 10 13 Q=1 3 2 4 5 %把2,3的次序對調Q = 1 3 2 4 5 A=sim(net,Q) %哇!與上面的結果不一樣A = 1 5 8 8 13 P=1:5 %如果P用一般陣列(Array)表示P = 1 2 3 4

8、 5 A=sim(net,P) %完全不靈光A = 1 2 3 4 5 相信你要處理循序輸入時,用cell array表示!巍饺悠朴碑酗嗽置迎洪建汰诞捂赦获源停转卓瓢延贸叹萄不笑轻徊虹深恿六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬更進一步說,如果有兩組不同的輸入P及Q,是否可寫成一組cell array以進行模擬? P=1 2 3 4 5P = 1 2 3 4 5 Q=1 3 2 4 5Q = 1 3 2 4 5% 可以!把它們集合在新的cell array中叫做R,定義如下 R=1 1 2 3 3 2 4 4 5 5R = %它的表示法有

9、點笨 1x2 double 1x2 double 1x2 double 1x2 double 1x2 double饮酝轩块调腐共竖了艾伞别圈完迅替合艘憾年唇吊疑联趴疾虚恬渊溢汾蒸六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬% 這麼寫 R:ans = 1 1 %第一組ans = 2 3 % 第二組ans = 3 2 % 第三組ans = 4 4 % 第四組ans = 5 5 % 第五組% 也可以用celldisp指令,顯示結果仍然有點笨笨的。 celldisp(R)R1 = 1 1R2 = 2 3R3 = 3 2R4 = 4 4R5 = 5 5

10、竿隅沫顺斩翱噎妆容貉砸障项遣捐切靖四赔瞧涩棺闻祖赤嫡救粥牌粥畔驯六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.1 平行輸入及循序輸入之模擬% 看看NN輸出結果是正確的。 A=sim(net,R)A = 1x2 double 1x2 double 1x2 double 1x2 double 1x2 double celldisp(A)A1 = 1 1A2 = 4 5A3 = 7 8A4 = 10 8A5 = 13 13上众纶慎瘪异涣膛秧瘁桑耳弧旬眺耶沪栈僚酵贝男虐看守彦慨炮健际舷腑六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習步進

11、學習是指每一筆輸入進來,經過計算、整型等過程,一直傳到輸出後,誤差得到了立刻計算dW及db,即修正量。批次學習則要把一個批次中的每一筆誤差累積至總誤差,有了總誤差才做一次修正。前面討論過的適應瀘波器是屬於步進學習類。 揍亩朗账密缮霓垃熔铆箔委目帐掺嗽澳捻石卸善硅毛翅浅寻哀豺桌台男控六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習在NNT中有两個學習法則,一為adapt,一為train。基本上adapt可以用在步進學習及批次學習,而train只能用在批次學習。首先討論adapt用在步進學習上。既然要一步一步學,則用cell array表示I/O data

12、最好。 知廉敦绿懈绵誉势垢羊惭砒架呀铃汰斑信所拧兔介婆坐司压恃纳葡蜒委蔼六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習例如輸入為二維的x及y,輸出為t,且關係為 t=x+2y=1 2*(x y)輸入有四組為(1,1)、(1,2)、(2,1)、(3,2),利用matlab很快找到其間關係值: P=1 1;1 2;2 1;3 2P = 1 1 2 3 1 2 1 2 T=1 2*PT = 3 5 4 7P,T都是一般陣列宣告,故不合做步進學習用。 琶实泛碳田碘疯绝神犬犹孪的谐储贺痉勾涕先窃蓬款红吊音朋抚颖稠卵垛六章Matlab与NNT使用范例六章Matl

13、ab与NNT使用范例6.2 步進學習及批次學習下面重新定義以cell array為主的P及T:P=1;1 1;2 2;1 3;2;T=3 5 4 7;呼叫adapt的樣式為net,a,e,pf=adapt(net,P,T);,右邊的net是由呼叫newlin創出名叫net的網路架構,P為輸入,T為輸出。左邊的net是訓練完的網路,其中權重及偏壓己有變化。a為輸出,e為誤差記錄,pf為最終輸入延遲條件。P的第一元素(Entry)值最小為1最大為3,P的第二元素(Entry)值最小為1最大為2,newff的第一函數輸入即為1 3;1 2,第二輸入的1代表輸出只有一個神經元,故為一維,第三輸入的0代

14、表只有輸入圖樣;沒有任何延遲(Delay),如果有一個輸入Delay則應寫成0 1。第四輸入的0表示learning rate值,為0則不會學習。 窃进虐阁渤帕攒淳储捕堵餐卑荚她支攫桂每畸她牙津倒茶耸蛮诺抿月亦法六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習下達如下: net=newlin(1 3;1 2,1,0,0);%如果寫得更清楚你會宣告如是PMM=1 3;1 2;no_out=1;delays=0;learn_rate=0;net=newff(PMM,no_out,delays,learn_rate); %這樣是否更清楚?% 首先設W及b皆為

15、0始 net.IW1,1=0 0;net.b1=0; net,a,e,pf=adapt(net,P,T); %步進學習,總共4次 a %看結果a = 0 0 0 0 %沒任何改善,因為沒學 ee = 3 5 4 7 pfpf = Empty cell array: 1-by-0% 設定W及b的學習率(Learning rates) net.inputWeights1,1.learnParam.lr=0.1; net.biases1.learnParam.lr=0.1; net,a,e,pf=adapt(net,P,T); %再步進學習雇吱抗鸯酮疟配蛋哎瞒灰壬迹举励础乡绸缨翼阵塘棵碎替届泛香矣蚊

16、苑快六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習 aa = %結果開始變了 0 1.2000 3.1000 5.6500 TT = 3 5 4 7 ee = %e=T-a 3 3.8000 0.9000 1.3500 pfpf = Empty cell array: 1-by-0 mse(e) %平均誤差平方ans = 6.5181% 再練四次 net,a,e,pf=adapt(net,P,T); T;a;e %這樣顯示比較好對照ans = 3 5 4 7 3.5900 4.7740 4.7320 6.7080 -0.5900 0.2260 -0.

17、7320 0.2920仔侩燃胡忿着泻兵阶俞蔷醒峙奥恍葬闽抉遵渡履扔幻幼酿笨俱膏万卸祸枢六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習mse(e)ans=0.2551 %平均誤差平方已有改善了% P一次有四組,每呼叫一次adapt,就做步進學習四次,這叫做一個pass,如果要連續100個passes,下達指令如下:net.adaptParam.passes = 100;net,a,e = adapt(net,P,T); T;a;eans = %看來學得不錯了 3 5 4 7 3.0069 4.9976 4.0064 6.9944 -0.0069 0.0

18、024 -0.0064 0.0056 mse(e)ans = 3.1450e-005 %誤差也變小了 net.IW1,1 %W值ans = 1.0010 1.9937 net.b1 %b值ans = 0.0120徒增员帐了复撕官萌宜仑诫酸但谗嫡往宵窿世迂遇谩咨啥婉渤腐脂傅憋拘六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習%如果把b關掉,再試試看 net.biasConnect=0; net.adaptParam.passes = 100; net,a,e = adapt(net,P,T); net.IW1,1 %標準答案出硯了ans = 1.0000

19、 2.0000 T;a;e %好得很ans = 3 5 4 7 3.0000 5.0000 4.0000 7.00002.4582e-010 8.4738e-010 -5.9635e-010 -1.7683e-010 mse(e)ans = 2.9135e-019 輸入有四組,每輸入完成四組叫做一個Epoch(在步進學習裡叫pass),不是只做一個pass就會很好,故要多做些passes才行。晦苗煤迪窝企躺坚锑灭都囊洼拙纤沪鼓蕊姆置掣从衫掠幸拿狙健碟梆侯探六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習 至於動態網路的步進學習,I/O都要用cell a

20、rray型態表示。例如: P=2 3 4; T=3 5 7; Pi=1; %uk-1的初始值 net=newlin(2 4,1,0 1,0.1); %有一個delay net.IW1,1=0 0; net.biasConnect=0; net,a,e,Pf = adapt(net,P,T,Pi); T;a;eans = %一個pass的結果不怎麼好 3 5 7 0 2.4000 7.9800 3 2.6000 -0.9800 net.adaptParam.passes = 100; %多做幾個passes Pf %別忘了上一次u(k-1)的值Pf = 4 net,a,e,Pf = adapt(

21、net,P,T,Pf); T;a;e %結果在改善中ans = 3 5 7 3.1579 6.5789 5.7368 -0.1579 -1.5789 1.2632感煽刑锻态硒伏悠匪母狰啼辟酥腑彻撵辑谁搪茎识吻驯糙薯纪炯哮憾钨褐六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習最後討論批次學習。adapt及learn都可以用來做批次學習。I/O用普通陣列表示,例如前面說過的t=1 2*(x y)的關係,對一靜態網路而言,做法如下: P=1 1;1 2;2 2;2 3P = 1 1 2 2 1 2 2 3 T=1 2*PT = 3 5 6 8毙滥疏苔童郁何州

22、我内煤榨粒界蚁氰烯犯咨募淤嘲峭熬周赂齿宠坡哲利贩六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習% Learning rate不可以大大,否則可能使W,b爆掉 net=newlin(1 2;1 3,1,0,0.01); net.adaptParam.passes = 500; net,a,e = adapt(net,P,T);T;a;eans = %結果不錯 3.0000 5.0000 6.0000 8.0000 3.0619 5.0184 6.0023 7.9587 -0.0619 -0.0184 -0.0023 0.0413 net.IW1,1an

23、s = 0.9839 1.9567 net.b1ans = 0.1211% 把b連線切掉後再試 net.biasConnect=0; net,a,e = adapt(net,P,T);T;a;eans = %結果更好 3.0000 5.0000 6.0000 8.0000 3.0004 4.9993 6.0007 7.9997 -0.0004 0.0007 -0.0007 0.0003 net.IW1,1ans = %很接近1 2標準值了 1.0014 1.9990钱潮汇删暗腆冯命挨隙笨石笆溯捏峪里巧撅惫篆跪沾畦欲赡符父满凤剥协六章Matlab与NNT使用范例六章Matlab与NNT使用范例6

24、.2 步進學習及批次學習 至於train的使用方法近似上面過程,以一動態網路為例,I/O最好是用cell array型態表示: P=2 3 4;Pi=1;T=3 5 6; net=newlin(2 4,1,0 1,0.02); net.IW1,1=0 0; net.biasConnect=0; net.trainParam.epochs=1; %只做一批次 net=train(net,P,T,Pi);TRAINB, Epoch 0/1, MSE 23.3333/0.TRAINB, Epoch 1/1, MSE 0.583867/0.TRAINB, Maximum epoch reached.疥

25、寐袱前耙刽踌鸽银卧剐褪衫秩什过将女偷骑咎巨炭哆膛吱垢宇堡舔潮念六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習 net.IW1,1ans = 0.9000 0.6200 net.trainParam.epochs=3000; %改做3000批次 net=train(net,P,T,Pi);TRAINB, Epoch 0/3000, MSE 23.3333/0.TRAINB, Epoch 25/3000, MSE 0.103419/0.TRAINB, Epoch 2950/3000, MSE 0.0555556/0.TRAINB, Epoch 2975/

26、3000, MSE 0.0555556/0.TRAINB, Epoch 3000/3000, MSE 0.0555556/0.TRAINB, Maximum epoch reached. a=sim(net,P,T,Pi); %T不應上來的,造成錯誤? Error using = network/simInput states are incorrectly sized for network.Cell array must have 1 column.还泣酣厕诀冯旦探都嘶赴惟广粹冕尾衷咎纬垒季叹博塌既剃枚痊奶驼琢夺六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學

27、習及批次學習二奄谈劈应嘱潦碑悲卡作体崭志吗竖叮掸酣功渝尤衡失临棚专顺猾释欢磨六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.2 步進學習及批次學習% 原來誤多寫了T,改正後 a=sim(net,P,Pi); %sim就是模擬net網路在輸入為P,Pi後之輸出 T;a %結果快接近目標值了ans = 3 5 6 3.1666 4.6667 6.1667 net.IW1,1ans =1.6665 -0.1665俊稳畸御跃饭臣路启域碱支晋席黎无葛昂崭瓮套脏由待嗜悠睫椭贬沉舵寞六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.3 FIR濾波器及newlin的關係F

28、IR(Finite Impulse Response) filter是信號處理(Signal Processing)時常見的一種filter。寫成差分方程式(Difference equation),其型式為 n(k)=a0p(k)+a1*p(k-1)+a2*p(k-2)p(k-1)為p(k)的單位延遲,其z-domain轉移函數G(z)可寫為 G(z)= 1/(a0+a1z-1+a2z-2)與圖6.3-1比較可知,它也是一個ADALINE,包含有兩次輸入延遲。旁捕罕豢辞垫约扶鸯谩颐颊此构渡稽茶盗倔掏粗圾宁淑谋拿寡徊瓜错栅碘六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.3

29、 FIR濾波器及newlin的關係幢睡讹批尝蛹趁铂形巍曾驮蛮丑熙农霖欣枷沁烧欢升打笼疤划喜镰说瓦繁六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.3 FIR濾波器及newlin的關係其中a0=w11,a1=w12,a2=w13。每個延遲元件D的輸出可以有自己的初始值。例如a0=1.8,a1=-2.3,a2=1。p(k-1)初始值為1,p(k-2)初始值為3皆設在Unit delay方塊內,Sample time=1,如圖6.3-2所示。在模擬方塊圖時,P_vec要先設定好如 P_vec=0:3;1:4P_vec = %第一列為時間,第二列為輸入序列 0 1 1 2 2 3

30、3 4渺蚁其薪萤久尚晕讯陵缨谢熊硬忻拯精物蹿煎枫瞥锨砒赋狙蛊磺渍索雄靡六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.3 FIR濾波器及newlin的關係%開始手動模擬 P %Input sequenceP = 1 2 3 4 5 a %Output sequencea = 2.5000 2.3000 1.8000 2.3000 2.8000镀仔唯痉糟炔内钠滁众着忘辛岩掌哉袱蹦愧翻循纫溪幽郴疡鼠喷剩糖桂夹六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.3 FIR濾波器及newlin的關係現在吾人用ADDLINE來模擬圖6.3-2的FIR filter。膝

31、姿乾拽项向写朵滤凛痞涌幕膛奸育勋顽辞宣昏诧尺账引蛛肋真掇谆镭危六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.3 FIR濾波器及newlin的關係 P1=1 2 3 4 5;Pi=1 3; %注意Pi為delays的初始值 net.IW1,1=1.8 -2.3 1; a1=sim(net,P1,Pi)a1 = %好傢伙,與模擬的不一致 -4.1000 4.3000 1.8000 2.3000 2.8000 P1=1 2 3 4 5;Pi=3 1; %換一下Pi次序 a1=sim(net,P1,Pi)a1 = 2.5000 2.3000 1.8000 2.3000 2.800

32、0 a %這是所謂之目標Tans = 2.5000 2.3000 1.8000 2.3000 2.8000枕扁律趣释巾爪癸焦趴歇瓢服峭列沏驻踊筛浊亏爹棘桐拉之彩革贵耐循犬六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.3 FIR濾波器及newlin的關係原來NNT中的sim寫反了Pi的定義,按原來意思p(k-1)的初始值為1,p(k-2)的初始值為3,在定義Pi時應寫為1 3。但當你這麼代入時模擬結果是錯的,把Pi反過來定如3 1,模擬才會正確。這一小錯誤,讀者要小心避免。暂喧尔辅韩挣周薛剐步湃烧学辩托歉箭贬茧允阵寅木屹彼箍步俏追椽运介六章Matlab与NNT使用范例六章M

33、atlab与NNT使用范例6.3 FIR濾波器及newlin的關係 其次如果己知T=2.5 2.3 1.8 2.3 2.8;adapt可否回求W值?注意Pi要反過來定義,adapt用來才會正確(此邏輯有點詭異!)。 P1=1 2 3 4 5;Pi=3 1;T=2.5 2.3 1.8 2.3 2.8; net=newlin(1 5,1,0 1 2,0.01); net.adaptParam.passes = 3000; net.biasConnect=0; net,a,e,Pf = adapt(net,P1,T,Pi);T;a;eans = % 两個結果够相近了吧! 2.5000 2.3000

34、1.8000 2.3000 2.8000 2.4998 2.2987 1.7996 2.3001 2.8006 1.5557e-0040.00134.3200e-004-1.4449e-004 -6.0560e-004-6.0560e-004 net.IW1,1 % adapt可以正確求出此FIR filter的係數。ans = 1.7983 -2.2976 0.9997尼驱钳嗡勤距柒惨干碳汗发吭衰熟耐弄另腕绑岁退征占纲晕挺酶闹钎裸详六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.4 頻率變動偵測 ADALINE可以用來偵察某一被監督信號是否正常,假設該信號(如某馬達運轉時

35、之聲波)正常時之頻率為f,如不正常時頻率會變快或慢(如0.5f及2f),一個偵測的方法是由示波器產生其波形或是頻率計讀其頻率;另一方法為利用一有五個延遲輸入信號組成的適應線性元件(ADALINE)所組成。當輸入信號有變動時,ADALINE的輸出大小就會有所變化,以此推測輸入走頻(頻率有所變動)發生,而判斷信號有故障發生。初邓憾峡溜窍配程扰学预屯炔集畸俐柞荆衔秉凶蝉漫屉矛哩毅应哆学暂蓖六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.4 頻率變動偵測霖米睛谁掘豪诸摆卵拾趴导布椰甥舶咆麦沫辽良汀猎沉识绕烛斋麓魔钢门六章Matlab与NNT使用范例六章Matlab与NNT使用范例6

36、.4 頻率變動偵測程式FVD_adaline.m係參考NNT手冊中的例子 寫 成 一 頻 率 變 動 偵 測 器 (Frequency Variation Detection, FVD)。假設輸入信號為正弦波,不論信號正常與否,其振幅皆固定,只是頻率會變。ADALINE的架構如圖6.4-1所示,輸入信號與目標信號皆相同。執行完FVD_adaline程式後之結果如圖6.4-2所示,由其誤差圖可偵測出頻率發生變動。 歇吓井蠢撤投乾岩秆虑巨粪陕澜让跪欣妨吴孜岛煎点牧君裔川卑袁汀挽体六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.4 頻率變動偵測膀凉障涡批哗教砒薛哲挠武迹淋贮峡谱秃还莉噶懂轩兴琼多药柑淬挣伯普六章Matlab与NNT使用范例六章Matlab与NNT使用范例6.4 頻率變動偵測這個例子中所使用之ADALINE即是吾人常用之適應濾波器,由於此濾波器的輸入為五組輸入延遲信號,而它的功能在預測原始輸入信號,故它能還原成原始輸入,只是有一小段的適應時間。吾人利用此一小段適應時間的變化得知信號異常,此即所謂適應預測(Adaptive prediction)。氟盆秃勺骚腊口悦庚箔歇绿竟蹲夹效腺竹困叹敦办师澄县帅橙艇猫劳揣寒六章Matlab与NNT使用范例六章Matlab与NNT使用范例

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号