// Signalanalyse mit zweidimensionaler Darstellung // Name: Wav - Analyse 2d, Sekundenweise // Mit der Positionstaste kann man sekundenweise durch die WAV Datei // hindurch die Position vorwärts und rückwärts verändern. // // Mit der Kanalwahl kann bei Stereosignalen der Kanal gewechselt werden. // // Mit der Verstärkung kann das Eingangssignal von 1 bis 10 verstärkt werden. // // Es können WAV Dateien mit unterschiedlichen Abtastfrequenzen analysiert werden. // Abtastfrequenzen von 22000 bis 96000 sind möglich. Ich bevorzuge 48000. // Vermutlich sind auch andere Abtastfrequenzen möglich. // // 1. Fenster: Darstellung des gelesenen WAV Signales von 1 Sekunde dauer // 2. Fenster: Darstellung der Fast-Fouriertransformation in blau und // des Leistungsspektrums in rot // 3. Fenster: Darstellung der FFT des korrelierten Signales // 4. Fenster: Darstellung der rücktransformierten FFT des Eingangsignales // Mit der Einstellung Fmax kan die obere Grenzfrequenz bei der Rücktransformation // verändert werden. Alle Frequenzen größer als Fmax werden zu Null gesetzt. // _______________________ _____________________ // / / / / // / / / / // / Fenster 1 / / Fenster 2 / // / / / / // /_______________________/ /____________________/ // // _______________________ _____________________ // / / / / // / / / / // / Fenster 3 / / Fenster 4 / // / / / / // /_______________________/ /____________________/ // // Taste PlayE spielt das WAV Eingangssignal (Fenster 1) ab. // // Taste PlaA spielt das WAV AUsgangssignal (Fenster 3)Rücktransformation ab. // // Die türkisen Tasten steuern die Amplitudendarstellung der Fenster 2 und 4 // // Die grünen Tasten steuern die Frequenzdarstellung der Fenster 2 und 4 ///////////////////////////////////////////////////////////////////////////// mclose('all'); clear; xdel(); z=struct('f','','h1',0,'h2',0,'h3',0,'h4',0,'pfad','','datei','','pfaddatei','','laufzeit',0,'samplerate',48000,'kanalzahl',0,'kanal',0,'verstaerkung',1,'oberfrequenz',5000,'start1',0,'start2',0,'re',0,'wa',0,'ff',0,'info',0,'re',0,'gleichstrom',0,'power',0,'graph1',0,'graph2',0,'graph3',0,'graph4',0,'graph5',0,'posi',0,'z21',0,'z22',0,'z41',0,'z42',0,'co',0,'h1x',48000,'v',0); ///////////////////////////////////////////////////////////////////////////// function [z]=neu(z) ////////////////////////////////////////////////////////////////////////////// // WAV Datei auswählen D:\Mdaten\Testsignale/100Hz-03A_g.wav [z.datei,z.pfad]=uigetfile('*.wav','D:\Mdaten'); //WAV Datei wählen if isequal(z.datei,''); //Ist eine Date gewählt? else z.pfaddatei=z.pfad+'\'+z.datei; //Vollständigen Pfad erstellen z.info = wavread(z.pfaddatei,'info'); //WAV Info`s laden disp('//////////////////////////////////////////////////////////') disp('WAV-Datei: '+z.pfaddatei); //Ausgabe vollständiger Pfad disp('Kanäle: '+string(z.info(2))); //Ausgabe Anzahl der Kanäle disp('Samplerate: '+string(z.info(3))); //Ausgabe Samplerate disp('Dateilänge : '+string(z.info(8))); //Ausgabe Dateilänge disp('Laufzeit : '+string(z.info(8)/z.info(3))+' Sekunden'); //Laufzeit in Sek. disp('//////////////////////////////////////////////////////////') z.laufzeit=floor(z.info(8)/z.info(3)); // lauzeit in sekunden z.samplerate=z.info(3); //Samplerate der Audiodatei set(u12,'string','Datei: '+z.pfaddatei); // dateiname ins formular // zeitachse fenster 1 und 4 // zeitachse [z]=fenster1(z); [z]=fenster3(z); //kanal z.kanalzahl=z.info(2); set(u2,'min',1); set(u2,'max',z.info(2)); z.kanal=u2.value; // verstaerkung z.verstaerkung=u4.value // oberfrequenz z.oberfrequenz=u6.value; // position set(u7,'string','Max ' +string(z.laufzeit)); set(u9,'min',1); set(u9,'max',z.laufzeit); z.posi=u9.value; // wav datei startposition einstellen [z]=rechenwerk(z) [z]=malen1(z) [z]=malen2(z) [z]=malen3(z) [z]=malen4(z) end endfunction ///////////////////////////////////////////////////////////////////////////// function [z]=rechenwerk(z)// rechenwerk //// FFT brechnen if z.posi 5000 then u6.value=5000 end; if z.oberfrequenz < 1 then u6.value=1 end; if z.graph3 ==0 then else delete(z.graph3) end; y=z.re; y(1)=0; y(z.oberfrequenz+2:z.samplerate)=0; z.v=fft(y,1) z.v=z.v*z.samplerate*2; sca(z.h3); plot(z.v,'red','thickness',1); z.graph3=gce(); endfunction ///////////////////////////////////////////////////////////////////////////// function [z]=pos(z) z.posi=u9.value; [z]=rechenwerk(z) [z]=malen1(z) [z]=malen2(z) [z]=malen3(z) [z]=malen4(z) // endfunction ///////////////////////////////////////////////////////////////////////////// function [z]=fenster1(z) // zeitachse z.h1x=0:z.samplerate/10:z.samplerate; z.h1x=floor(z.h1x); z.h1.x_ticks=tlist(['locations','labels'],[z.h1x],["0","100","200","300","400","500","600","700","800","900","1000"]); z.h1.data_bounds(2,1)=z.samplerate; z.h1.x_label.text="Zeit in Millisekunden / Abtastfrequenz: "+string(z.samplerate); endfunction ///////// function [z]=fenster2(z) //fenster 2 select z.z21; // ////////////////////////////////////////fenster 2 amplitude case 100; // ///////////////////////////////////////fenster 2 , amplitude 100 z.h2.y_ticks=tlist(['locations','labels'],[0,100,200,300,400,500,600,700,800,900,1000],["0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"]); zh=z.h2.data_bounds; zh(1,2)=0; zh(2,2)=1000; z.h2.data_bounds =zh; case 50; /////////////////////////////////////////// fenster 2 , amplitude 50 z.h2.y_ticks=tlist(['locations','labels'],[0,50,100,150,200,250,300,350,400,450,500],["0","0.05","0.1","0.15","0.2","0.25","0.3","0.35","0.4","0.45","0.5"]); zh=z.h2.data_bounds; zh(1,2)=0; zh(2,2)=500; z.h2.data_bounds =zh; case 25; ////////////////////////////////////////// fenster 2 , amplitude 25 z.h2.y_ticks=tlist(['locations','labels'],[0,25,50,75,100,125,150,175,200,225,250],["0","0.025","0.05","0.075","0.1","0.125","0.15","0.175","0.2","0.225","0.25"]); zh=z.h2.data_bounds; zh(1,2)=0; zh(2,2)=250; z.h2.data_bounds =zh; case 10; // /////////////////////////////////////////fenster 2 , amplitude 10 z.h2.y_ticks=tlist(['locations','labels'],[-100,-90,-80,-70,-60,-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80,90,100],["-0.1","-0.09","-0.08","-0.07","-0.06","-0.05","-0-04","-0.03","-0.02","-0.01","0","0.01","0.02","0.03","0.04","0.05","0.06","0.07","0.08","0.09","0.1"]); zh=z.h2.data_bounds; zh(1,2)=0; zh(2,2)=100; z.h2.data_bounds =zh; case 1; //////////////////////////////////////////// fenster 2 , amplitude 1 z.h2.y_ticks=tlist(['locations','labels'],[0,1,2,3,4,5,6,7,8,9,10],["0","0.001","0.002","0.003","0.004","0.005","0.006","0.007","0.008","0.009","0.01"]); zh=z.h2.data_bounds; zh(1,2)=0; zh(2,2)=10; z.h2.data_bounds =zh; end ////////////////////////////////////////////////////////////////////////// select z.z22; ///////////////////////////////////// fenster 2 frequenzachse case 10000; /////////////////////////////////// fenster 2 , frequenzachse 10000 z.h2.x_ticks=tlist(['locations','labels'],[0,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000],["0","1 k","2 k","3 k","4 k","5 k","6 k","7 k","8 k","9 k","10 k"]); z.h2.sub_tics=[9,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=10000; z.h2.data_bounds =zh; case 5000; //////////////////////////////////// fenster 2 , frequenzachse 5000 z.h2.x_ticks=tlist(['locations','labels'],[0,1000,2000,3000,4000,5000],["0","1000","2000","3000","4000","5000"]); z.h2.sub_tics=[9,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=5000; z.h2.data_bounds =zh; case 2000 //////////////////////////////////// fenster 2 , frequenzachse 2000 z.h2.x_ticks=tlist(['locations','labels'],[0,500,1000,1500,2000],["0",'500',"1000",'1500',"2000"]); z.h2.sub_tics=[9,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=2000; z.h2.data_bounds =zh; case 1000; ////////////////////////////////////// fenster 2 , frequenzachse 1000 z.h2.x_ticks=tlist(['locations','labels'],[0,100,200,300,400,500,600,700,800,900,1000],['0','100','200','300','400','500','600','700','800','900','1000']); z.h2.sub_tics=[9,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=1000; z.h2.data_bounds =zh; case 500; ////////////////////////////////////// fenster 2 , frequenzachse 500 z.h2.x_ticks=tlist(['locations','labels'],[0,100,200,300,400,500],['0','100','200','300','400','500']); z.h2.sub_tics=[9,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=500; z.h2.data_bounds =zh; case 250; ////////////////////////////////////// fenster 2 , frequenzachse 250 z.h2.x_ticks=tlist(['locations','labels'],[0,50,100,150,200,250],['0','50','100','150','200','250']); z.h2.sub_tics=[4,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=250; z.h2.data_bounds =zh; case 120; ////////////////////////////////////// fenster 2 , frequenzachse 120 z.h2.x_ticks=tlist(['locations','labels'],[0,10,20,30,40,50,60,70,80,90,100,110,120],['0','10','20','30','40','50','60','70','80','90','100','110','120']); z.h2.sub_tics=[9,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=120; z.h2.data_bounds =zh; case 60; ////////////////////////////////////// fenster 2 , frequenzachse 60 z.h2.x_ticks=tlist(['locations','labels'],[0,5,10,15,20,25,30,35,40,45,50,55,60],['0','5','10','15','20','25','30','35','40','45','50','55','60']); z.h2.sub_tics=[4,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=60; z.h2.data_bounds =zh; case 30; ////////////////////////////////////// fenster 2 , frequenzachse 60 z.h2.x_ticks=tlist(['locations','labels'],[0,5,10,15,20,25,30],['0','5','10','15','20','25','30']); z.h2.sub_tics=[4,9,9]; zh=z.h2.data_bounds; zh(1,1)=0; zh(2,1)=30; z.h2.data_bounds =zh; end endfunction // function [z]=fenster3(z) // zeitachse z.h3.x_ticks=tlist(['locations','labels'],[z.h1x],["0","100","200","300","400","500","600","700","800","900","1000"]); z.h3.data_bounds(2,1)=z.samplerate; endfunction // // // function [z]=fenster4(z) //fenster 4 select z.z41; // ////////////////////////////////////////fenster 4 amplitude case 100; // ///////////////////////////////////////fenster 4 , amplitude 100 z.h4.y_ticks=tlist(['locations','labels'],[0,100,200,300,400,500,600,700,800,900,1000],["0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"]); zh=z.h4.data_bounds; zh(1,2)=0; zh(2,2)=1000; z.h4.data_bounds =zh; case 50; /////////////////////////////////////////// fenster 4 , amplitude 50 z.h4.y_ticks=tlist(['locations','labels'],[0,50,100,150,200,250,300,350,400,450,500],["0","0.05","0.1","0.15","0.2","0.25","0.3","0.35","0.4","0.45","0.5"]); zh=z.h4.data_bounds; zh(1,2)=0; zh(2,2)=500; z.h4.data_bounds =zh; case 25; ////////////////////////////////////////// fenster 4 , amplitude 25 z.h4.y_ticks=tlist(['locations','labels'],[0,25,50,75,100,125,150,175,200,225,250],["0","0.025","0.05","0.075","0.1","0.125","0.15","0.175","0.2","0.225","0.25"]); zh=z.h4.data_bounds; zh(1,2)=0; zh(2,2)=250; z.h4.data_bounds =zh; case 10; // /////////////////////////////////////////fenster 4 , amplitude 10 z.h4.y_ticks=tlist(['locations','labels'],[-100,-90,-80,-70,-60,-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80,90,100],["-0.1","-0.09","-0.08","-0.07","-0.06","-0.05","-0-04","-0.03","-0.02","-0.01","0","0.01","0.02","0.03","0.04","0.05","0.06","0.07","0.08","0.09","0.1"]); zh=z.h4.data_bounds; zh(1,2)=0; zh(2,2)=100; z.h4.data_bounds =zh; case 1; //////////////////////////////////////////// fenster 4 , amplitude 1 z.h4.y_ticks=tlist(['locations','labels'],[0,1,2,3,4,5,6,7,8,9,10],["0","0.001","0.002","0.003","0.004","0.005","0.006","0.007","0.008","0.009","0.01"]); zh=z.h4.data_bounds; zh(1,2)=0; zh(2,2)=10; z.h4.data_bounds =zh; end ////////////////////////////////////////////////////////////////////////// select z.z42; ///////////////////////////////////// fenster 4 frequenzachse case 10000; /////////////////////////////////// fenster 4 , frequenzachse 500 z.h4.x_ticks=tlist(['locations','labels'],[0,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000],["0","1 k","2 k","3 k","4 k","5 k","6 k","7 k","8 k","9 k","10 k"]); z.h4.sub_tics=[9,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=10000; z.h4.data_bounds =zh; case 5000; //////////////////////////////////// fenster 4 , frequenzachse 250 z.h4.x_ticks=tlist(['locations','labels'],[0,1000,2000,3000,4000,5000],["0","1000","2000","3000","4000","5000"]); z.h4.sub_tics=[9,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=5000; z.h4.data_bounds =zh; case 2000 //////////////////////////////////// fenster 4 , frequenzachse 120 z.h4.x_ticks=tlist(['locations','labels'],[0,500,1000,1500,2000],["0",'500',"1000",'1500',"2000"]); z.h4.sub_tics=[9,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=2000 z.h4.data_bounds =zh; case 1000; ////////////////////////////////////// fenster 4 , frequenzachse 60 z.h4.x_ticks=tlist(['locations','labels'],[0,100,200,300,400,500,600,700,800,900,1000],['0','100','200','300','400','500','600','700','800','900','1000']); z.h4.sub_tics=[9,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=1000; z.h4.data_bounds =zh; case 500; ////////////////////////////////////// fenster 4 , frequenzachse 60 z.h4.x_ticks=tlist(['locations','labels'],[0,100,200,300,400,500],['0','100','200','300','400','500']); z.h4.sub_tics=[9,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=500; z.h4.data_bounds =zh; case 250; ////////////////////////////////////// fenster 2 , frequenzachse 250 z.h4.x_ticks=tlist(['locations','labels'],[0,50,100,150,200,250],['0','50','100','150','200','250']); z.h4.sub_tics=[4,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=250; z.h4.data_bounds =zh; case 120; ////////////////////////////////////// fenster 2 , frequenzachse 120 z.h4.x_ticks=tlist(['locations','labels'],[0,10,20,30,40,50,60,70,80,90,100,110,120],['0','10','20','30','40','50','60','70','80','90','100','110','120']); z.h4.sub_tics=[9,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=120; z.h4.data_bounds =zh; case 60; ////////////////////////////////////// fenster 2 , frequenzachse 60 z.h4.x_ticks=tlist(['locations','labels'],[0,5,10,15,20,25,30,35,40,45,50,55,60],['0','5','10','15','20','25','30','35','40','45','50','55','60']); z.h4.sub_tics=[4,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=60; z.h4.data_bounds =zh; case 30; ////////////////////////////////////// fenster 2 , frequenzachse 60 z.h4.x_ticks=tlist(['locations','labels'],[0,5,10,15,20,25,30],['0','5','10','15','20','25','30']); z.h4.sub_tics=[4,9,9]; zh=z.h4.data_bounds; zh(1,1)=0; zh(2,1)=30; z.h4.data_bounds =zh; end // endfunction ////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// function [z]=kanal(z) if u1.value==z.kanalzahl then else z.kanal=u1.value; end // endfunction ///////////////////////////////////////////////////////////////////////////// ///////// S T A R T ////////////////////////////////////// //////////////////////////////////////////////////////////////////// start // Formular erstellen z.f=figure('position',[10,10,1400,900]); z.f.background= 33; z.f.color_map = jetcolormap(1000); //Colormap festlegen z.f.visible = "on"; z.f.figure_name="Vollanalyse 4"; z.f.BackgroundColor=[1 1 1]; // controls in das Formular einbauen // kanalwahl u1=uicontrol(z.f,"style","text",'HorizontalAlignment','center' ,'backgroundcolor',[1 1 0],'position', [1330 440 60 20],'string','Kanal'); u2=uicontrol(z.f,"style","spinner", 'position', [1330 400 60 40],'HorizontalAlignment','center','VerticalAlignment','middle','min',1,'max',1,'SliderStep',[1,10],'Title_position','top','value',1,'callback','[z]=kan(z)'); // verstärkung u3=uicontrol(z.f,"style","text",'HorizontalAlignment','center' ,'backgroundcolor',[1 1 0],'position', [1330 370 60 20],'string','Verstärkung'); u4=uicontrol(z.f,"style","spinner", 'position', [1330 330 60 40],'HorizontalAlignment','center','VerticalAlignment','middle','min',1,'max',10,'SliderStep',[1,10],'Title_position','top','callback','[z]=verst(z)'); z.verstaerkung=u4.value; // fmax u5=uicontrol(z.f,"style","text",'HorizontalAlignment','center' ,'backgroundcolor',[1 1 0],'position', [1330 300 60 20],'string','F max (Hz)'); u6=uicontrol(z.f,"style","spinner", 'position', [1330 260 60 40],'HorizontalAlignment','center','VerticalAlignment','middle','min',1,'max',5000,'SliderStep',[1,10],'Title_position','top','value',5000,'callback','[z]=fober(z)'); // position u7=uicontrol(z.f,"style","text",'HorizontalAlignment','center' ,'backgroundcolor',[1 1 0],'position', [1330 215 60 30],'string','0'); u8=uicontrol(z.f,"style","text",'HorizontalAlignment','center' ,'backgroundcolor',[1 1 0],'position', [1330 195 60 30],'string','Sekunden'); u9=uicontrol(z.f,"style","spinner", 'position', [1330 155 60 40],'HorizontalAlignment','center','VerticalAlignment','middle','min',1,'max',1,'SliderStep',[1,10],'Title_position','top','callback','[z]=pos(z)'); // Neu u10=uicontrol(z.f,"style","pushbutton",'backgroundcolor',[1 0 1], 'position', [1330 100 60 30],'string','Neu','callback','[z]=neu(z)'); // Exit u11=uicontrol(z.f,"style","pushbutton", 'backgroundcolor',[1 0 1],'position', [1330 60 60 30],'string','Exit','callback','close'); // Dateianzeige u12=uicontrol(z.f,"style","text",'HorizontalAlignment','left' ,'position', [50 5 700 30],'string',''); u12a=uicontrol(z.f,"style","text",'HorizontalAlignment','left' ,'position', [800 5 300 30],'string',''); ///////////////////////////////////////amplitude fenster 2 u13=uicontrol(z.f,"style","radiobutton",'groupname','fenster2','HorizontalAlignment','left','backgroundcolor',[0 1 1],'position', [1265 850 55 20],'string','100%','callback','z.z21=100;[z]=fenster2(z)'); u14=uicontrol(z.f,"style","radiobutton",'groupname','fenster2','HorizontalAlignment','left', 'backgroundcolor',[0 1 1],'position', [1265 820 55 20],'string','50%','callback','z.z21=50;[z]=fenster2(z)'); u15=uicontrol(z.f,"style","radiobutton",'groupname','fenster2','HorizontalAlignment','left', 'backgroundcolor',[0 1 1],'position', [1265 790 55 20],'string','25%','callback','z.z21=25;[z]=fenster2(z)'); u16=uicontrol(z.f,"style","radiobutton",'groupname','fenster2','HorizontalAlignment','left', 'backgroundcolor',[0 1 1],'position', [1265 760 55 20],'string','10%','callback','z.z21=10;[z]=fenster2(z)'); u17=uicontrol(z.f,"style","radiobutton",'groupname','fenster2','HorizontalAlignment','left','backgroundcolor',[0 1 1],'position', [1265 730 55 20],'string','1%','callback','z.z21=1;[z]=fenster2(z)'); u13.value=1; /////////////////////////////////////frequenz fenster 2 u18=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 700 55 20],'string','10 k','callback','z.z22=10000;[z]=fenster2(z)'); u19=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 670 55 20],'string','5 k','callback','z.z22=5000;[z]=fenster2(z)'); u20=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 640 55 20],'string','2 k','callback','z.z22=2000;[z]=fenster2(z)'); u21=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 610 55 20],'string','1 k','callback','z.z22=1000;[z]=fenster2(z)'); u21a=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 580 55 20],'string','500','callback','z.z22=500;[z]=fenster2(z)'); u21b=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 550 55 20],'string','250','callback','z.z22=250;[z]=fenster2(z)'); u21c=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left' ,'backgroundcolor',[0 1 0],'position', [1265 520 55 20],'string','120','callback','z.z22=120;[z]=fenster2(z)'); u21d=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 490 55 20],'string','60','callback','z.z22=60;[z]=fenster2(z)'); u21e=uicontrol(z.f,"style","radiobutton",'groupname','fenster2f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 460 55 20],'string','30','callback','z.z22=30;[z]=fenster2(z)'); u19.value=1; ///////////////////////////////////////amplituede fenster 4 u22=uicontrol(z.f,"style","radiobutton",'groupname','fenster4','HorizontalAlignment','left' ,'backgroundcolor',[0 1 1],'position', [1265 410 55 20],'string','100%','callback','z.z41=100;[z]=fenster4(z)'); u23=uicontrol(z.f,"style","radiobutton",'groupname','fenster4','HorizontalAlignment','left' ,'backgroundcolor',[0 1 1],'position', [1265 380 55 20],'string','50%','callback','z.z41=50;[z]=fenster4(z)'); u24=uicontrol(z.f,"style","radiobutton",'groupname','fenster4','HorizontalAlignment','left', 'backgroundcolor',[0 1 1],'position', [1265 350 55 20],'string','25%','callback','z.z41=25;[z]=fenster4(z)'); u25=uicontrol(z.f,"style","radiobutton",'groupname','fenster4','HorizontalAlignment','left','backgroundcolor',[0 1 1],'position', [1265 320 55 20],'string','10%','callback','z.z41=10;[z]=fenster4(z)'); u26=uicontrol(z.f,"style","radiobutton",'groupname','fenster4','HorizontalAlignment','left' ,'backgroundcolor',[0 1 1],'position', [1265 290 55 20],'string','1%','callback','z.z41=1;[z]=fenster4(z)'); u22.value=1; //////////////////////////////////////frequenzen fenster 4 u27=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 260 55 20],'string','10 k','callback','z.z42=10000;[z]=fenster4(z)'); u28=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left' ,'backgroundcolor',[0 1 0],'position', [1265 230 55 20],'string','5 k','callback','z.z42=5000;[z]=fenster4(z)'); u29=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left' ,'backgroundcolor',[0 1 0],'position', [1265 200 55 20],'string','2 k','callback','z.z42=2000;[z]=fenster4(z)'); u30=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 170 55 20],'string','1 k','callback','z.z42=1000;[z]=fenster4(z)'); u30a=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 140 55 20],'string','500','callback','z.z42=500;[z]=fenster4(z)'); u30b=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 110 55 20],'string','250','callback','z.z42=250;[z]=fenster4(z)'); u30c=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left','backgroundcolor',[0 1 0] ,'position', [1265 80 55 20],'string','120','callback','z.z42=120;[z]=fenster4(z)'); u30d=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left' ,'backgroundcolor',[0 1 0],'backgroundcolor',[0 1 0],'position', [1265 50 55 20],'string','60','callback','z.z42=60;[z]=fenster4(z)'); u30e=uicontrol(z.f,"style","radiobutton",'groupname','fenster4f','HorizontalAlignment','left' ,'backgroundcolor',[0 1 0],'backgroundcolor',[0 1 0],'position', [1265 20 55 20],'string','30','callback','z.z42=30;[z]=fenster4(z)'); u28.value=1; // u99=uicontrol(z.f,"style","pushbutton",'backgroundcolor',[1 0 1], 'position', [1330 510 60 30],'string','PlayE','callback','playsnd(z.wa,z.samplerate)'); u100=uicontrol(z.f,"style","pushbutton",'backgroundcolor',[1 0 1], 'position', [1330 470 60 30],'string','PlayA','callback','playsnd(z.v,z.samplerate)'); //////////////////////////////////////garphicfenster einbauen z.h1 = newaxes(); // links oben z.h1.axes_bounds = [0,0,0.5,0.5]; // z.h2 = newaxes(); // rechts oben z.h2.axes_bounds = [0.4,0,0.56,0.5]; // z.h3 = newaxes(); // links unten z.h3.axes_bounds = [0,0.47,0.5,0.5]; // z.h4 = newaxes(); // rechts unten z.h4.axes_bounds = [0.4,0.47,0.56,0.5]; //////////////////////////////////////////graphicpfeile ///////////////////////////////////////fenster 1 obenlinks sca(z.h1) z.h1.visible = "on"; z.h1.axes_visible = ["on","on","on"]; z.h1.axes_reverse = ["off","off","off"]; z.h1.auto_ticks = ["off","off","off"]; z.h1.grid = [1,1]; z.h1.grid_thickness = [1,1]; z.h1.grid_style = [1,1]; z.h1.grid_position = "background"; z.h1.title.font_size=2; z.h1.title.text="Eingangs WAV Signal"; z.h1.x_label.font_size=2; z.h1.x_label.text="Zeit in Millisekunden / Abtastfrequenz: "+string(z.samplerate); z.h1.x_label.visible="on"; z.h1.y_label.font_size=2; z.h1.y_label.text="Amplitude"; z.h1.y_label.visible="on"; z.h1.auto_scale="off"; z.h1.auto_margins = "off" z.h1.margins = [0.08,0.16,0.08,0.11] // zeitachse z.h1x=0:z.samplerate/10:z.samplerate; z.h1x=floor(z.h1x); z.h1.x_ticks=tlist(['locations','labels'],[z.h1x],["0","100","200","300","400","500","600","700","800","900","1000"]); // amplitudenachse z.h1.y_ticks=tlist(['locations','labels'],[-1,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1],["-1","-0.9","-0.8","-0.7","-0.6","-0.5","-0.4","-0.3","-0.2","-0.1","0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"]); z.h1.sub_tics=[9,9,9]; z.h1.box = "back_half"; z.h1.background = -2; z.h1.tight_limits = ["on","on"]; z.h1.cube_scaling = "on"; z.h1.isoview = "off"; // mit den folgenden einstellungen der drei achsen kann die Anzeige angepasst werden ///////////////////////////////////////////////////////////////////////////// zh=z.h1.data_bounds; zh(1,2)=-1; zh(2,2)=1; zh(1,1)=0; zh(2,1)=z.samplerate; z.h1.data_bounds =zh; z.h1.tag='fenster 1'; //////////////////////////////////////fenster 3 obenrechts sca(z.h2) z.h2.visible = "on"; z.h2.axes_visible = ["on","on","on"]; z.h2.axes_reverse = ["off","off","off"]; z.h2.auto_ticks = ["off","off","off"]; z.h2.grid = [1,1]; z.h2.grid_thickness = [1,1]; z.h2.grid_style = [1,1]; z.h2.grid_position = "background"; z.h2.title.font_size=2; z.h2.title.text="FFT - Spektrum (blau) / Leistungs - Spektrum (rot)"; z.h2.x_label.font_size=2; z.h2.x_label.text="Frequenz"; z.h2.x_label.visible="on"; z.h2.y_label.font_size=2; z.h2.y_label.text="Amplitude"; z.h2.y_label.visible="off"; z.h2.auto_scale="off"; z.h2.auto_margins = "off" z.h2.margins = [0.085,0.11,0.08,0.11] // // frequenzaschse z.h2.x_ticks=tlist(['locations','labels'],[0,1000,2000,3000,4000,5000],["0","1000","2000","3000","4000","5000"]); // amplitudenachse z.h2.y_ticks=tlist(['locations','labels'],[0,100,200,300,400,500,600,700,800,900,1000],["0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"]); z.h2.sub_tics=[9,9,9]; z.h2.box = "back_half"; z.h2.background = -2; z.h2.tight_limits = ["off","off"]; z.h2.cube_scaling = "on"; z.h2.isoview = "off"; // mit den folgenden einstellungen der drei achsen kann die Anzeige angepasst werden ///////////////////////////////////////////////////////////////////////////// zh=z.h2.data_bounds; zh(1,2)=0; zh(2,2)=1000; zh(1,1)=0; zh(2,1)=5000; z.h2.data_bounds =zh; z.h2.tag='fenster2'; /////////////////////////////////////////////////////////fenster 3 untenlinks sca(z.h3); z.h3.visible = "on"; z.h3.axes_visible = ["on","on","on"]; z.h3.axes_reverse = ["off","off","off"]; z.h3.auto_ticks = ["off","off","off"]; z.h3.grid = [1,1]; z.h3.grid_thickness = [1,1]; z.h3.grid_style = [1,1]; z.h3.grid_position = "background"; z.h3.title.font_size=2; z.h3.title.text="Rücktransformation mit F-Max"; z.h3.x_label.font_size=2; z.h3.x_label.text="Zeit in Millisekunden"; z.h3.x_label.visible="on"; z.h3.y_label.font_size=2; z.h3.y_label.text="Amplitude"; z.h3.y_label.visible="on"; z.h3.auto_scale="off"; z.h3.auto_margins = "off" z.h3.margins = [0.08,0.16,0.11,0.08] // zeitachse z.h3.x_ticks=tlist(['locations','labels'],z.h1x,["0","100","200","300","400","500","600","700","800","900","1000"]); // amplitudenachse z.h3.y_ticks=tlist(['locations','labels'],[-1,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1],["-1","-0.9","-0.8","-0.7","-0.6","-0.5","-0.4","-0.3","-0.2","-0.1","0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"]); z.h3.sub_tics=[9,9,9]; z.h3.box = "back_half"; z.h3.background = -2; z.h3.tight_limits = ["on","on"]; z.h3.cube_scaling = "on"; z.h3.isoview = "off"; // mit den folgenden einstellungen der drei achsen kann die Anzeige angepasst werden ///////////////////////////////////////////////////////////////////////////// zh=z.h3.data_bounds; zh(1,2)=-1; zh(2,2)=1; zh(1,1)=0; zh(2,1)=z.samplerate; z.h3.data_bounds =zh; z.h3.tag='fenster 3'; ///////////////////////////////////////////////////fenster 4 untenrechts sca(z.h4); z.h4.visible = "on"; z.h4.axes_visible = ["on","on","on"]; z.h4.axes_reverse = ["off","off","off"]; z.h4.auto_ticks = ["off","off","off"]; z.h4.grid = [1,1]; z.h4.grid_thickness = [1,1]; z.h4.grid_style = [1,1]; z.h4.grid_position = "background"; z.h4.title.font_size=2; z.h4.title.text="Autocorrelation des WAV Signals"; z.h4.x_label.font_size=2; z.h4.x_label.text="Frequenz"; z.h4.x_label.visible="on"; z.h4.y_label.font_size=2; z.h4.y_label.text="Amplitude"; z.h4.y_label.visible="off"; z.h4.auto_scale="off"; z.h4.auto_margins = "off" z.h4.margins = [0.085,0.11,0.11,0.08] // frequenzaschse z.h4.x_ticks=tlist(['locations','labels'],[0,1000,2000,3000,4000,5000],["0","1000","2000","3000","4000","5000"]); // amplitudenachse z.h4.y_ticks=tlist(['locations','labels'],[-1000,-900,-800,-700,-600,-500,-400,-300,-200,-100,0,100,200,300,400,500,600,700,800,900,1000],["-1","-0.9","-0.8","-0.7","-0.6","-0.5","-0.4","-0.3","-0.2","-0.1","0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"]); z.h4.sub_tics=[9,9,9]; z.h4.box = "back_half"; z.h4.background = -2; z.h4.tight_limits = ["off","off"]; z.h4.cube_scaling = "on"; z.h4.isoview = "off"; // mit den folgenden einstellungen der drei achsen kann die Anzeige angepasst werden ///////////////////////////////////////////////////////////////////////////// zh=z.h4.data_bounds; zh(1,2)=0; zh(2,2)=1000; zh(1,1)=0; zh(2,1)=5000; z.h4.data_bounds =zh; z.h4.tag='fenster 4'; /////////////////////////////////////////////////////////////////////////////////