PK <@ META-INF/PK <@%META-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.8.2 Created-By: 1.7.0_02-b13 (Oracle Corporation) Class-Path: X-COMMENT: Main-Class will be added automatically by build Main-Class: sinesample.SineSample PK <@ sinesample/PK <@[ sinesample/AppletInterface.class2#      _uiLsinesample/WindowFrame;()VCodeLineNumberTableLocalVariableTablethisLsinesample/AppletInterface;initdestroy StackMapTable SourceFileAppletInterface.java sinesample/WindowFrame !  " sinesample/AppletInterfacejavax/swing/JAppletadd*(Ljava/awt/Component;)Ljava/awt/Component;stop!   /*  R*Y**W*   S* ** PK <@{Na|sinesample/DrawRegion.class2F . / 0 1 23 4@Y 5 6 7 89:;apLsinesample/WindowFrame;strategyLjava/awt/image/BufferStrategy;(Lsinesample/WindowFrame;)VCodeLineNumberTableLocalVariableTablethisLsinesample/DrawRegion;aupdate(Ljava/awt/Graphics;)VgLjava/awt/Graphics;paintpWidth(D)IwDpHeighth drawPLine(Ljava/awt/Graphics;DDDD)Vx1y1x2y2 SourceFileSineSample.java <  => ? @< AB CB ! $!D E>sinesample/DrawRegionjava/awt/Canvas()V setBounds(IIII)Vsinesample/WindowFrame drawCanvasgetWidth()I getHeightjava/awt/GraphicsdrawLine V**+*XY \]>*+ bc@* fg !A '*kom  "#$!A '* koq  %#&'| +*( * * *  uv>(#)#*#+#,-PK <@DLLsinesample/Instr.html Graphs

Top: The red line shows the sampled sine wave. The green dots are the sampled points.

Bottom: This shows the frequency spectrum (in blue or blinking blue/red) obtained from the samples. The green bars show the sampling rate and its harmonics (i.e. fs, 2*fs, 3*fs...).

Getting started

Starting with the default settings, move the "mode" slider to various values. Note that the sample points don't change even though the waveform being sampled has changed.

Now try changing the Frequency and Sample rate sliders and observe how the sample points and spectrum change in response.

PK <@bيsinesample/SineSample$1.class2&     ()VCodeLineNumberTableLocalVariableTablethis InnerClassesLsinesample/SineSample$1;runfLsinesample/SineSample; SourceFileSineSample.javaEnclosingMethod !" sinesample/SineSample # $ % sinesample/SineSample$1java/lang/Objectjava/lang/Runnablemain([Ljava/lang/String;)V(Lsinesample/SineSample$1;)Vpackshow0  /* -   RYL++ 1 2 34   PK <@e~~sinesample/SineSample.class2O 23 45 2 67 8 9 : ;< 2 => ?@AB_uiLsinesample/WindowFrame;()VCodeLineNumberTableLocalVariableTablethisLsinesample/SineSample;main([Ljava/lang/String;)Vargs[Ljava/lang/String; windowClosing(Ljava/awt/event/WindowEvent;)VeLjava/awt/event/WindowEvent; StackMapTable windowOpened windowClosedwindowIconifiedwindowDeiconifiedwindowActivatedwindowDeactivated InnerClasses(Lsinesample/SineSample$1;)Vx0Lsinesample/SineSample$1; SourceFileSineSample.java ,UCB Physics and Music: Sampling a sine wave. Csinesample/WindowFrame Center DE F GH IJsinesample/SineSample$1K LM Nsinesample/SineSamplejavax/swing/JFramejava/awt/event/WindowListener(Ljava/lang/String;)Vadd<(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component;initaddWindowListener"(Ljava/awt/event/WindowListener;)VsetDefaultCloseOperation(I)Vjavax/swing/SwingUtilities invokeLater(Ljava/lang/Runnable;)Vstop! p.**Y**W* ** * "#$%#&('-( . 9 Y  - 6   !]* **;<>?"#$%!5A"#&!5C"#'!5E"#(!5G"#)!5I"#*!5K"#-9*./01,  PK <@fdsinesample/WindowFrame$1.class2&    this$0Lsinesample/WindowFrame;(Lsinesample/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLsinesample/WindowFrame$1;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileSineSample.javaEnclosingMethod! "#  $ %#sinesample/WindowFrame$1java/lang/Objectjava/awt/event/ActionListenersinesample/WindowFramestart(I)V()V updateCanvas   4 *+* 6   A * 9:    PK <@+z0z0sinesample/WindowFrame.class2Y ; < = > ?@ A ?B C ?D E FG ; HI ; JK L MN O P Q RS RTU RVWXY Z J [\] #^ _`ab (c d (ef gh ijk 2l m 2n 2o 2p 2q 2er st u vwx yz{| B} ~ B I K I    Q   Q  W; W W  Q                2 ol?zG{ o o o  o  (@!TD-  ? ?@?   ? @p W          L             runThreadLjava/lang/Thread; currentThreadtimerLjavax/swing/Timer; threadRateIdrLsinesample/DrawRegion;randomLjava/util/Random;bkColorLjava/awt/Color;fgColormapColor sampleCheckLjavax/swing/JCheckBox; waveCheckbarCheck freqSliderLjavax/swing/JSlider; srateSlider modeSlider instrPaneLjavax/swing/JEditorPane;count mediaTrackerLjava/awt/MediaTracker;()VCodeLineNumberTableLocalVariableTablethisLsinesample/WindowFrame;initexLjava/io/IOException;gapLjavax/swing/border/Border; blacklinetestbhpanelLjavax/swing/JPanel;southboxeastboxurlLjava/net/URL;spLjavax/swing/JScrollPane; StackMapTableW imageLoad$(Ljava/lang/String;)Ljava/awt/Image;imLjava/awt/Image;nameLjava/lang/String; imageWait()Ze Ljava/lang/InterruptedException; updateCanvas(I)Vtt drawCanvastDxyinmarkerssinefphasey2x2x1y1saliasxmarkgLjava/awt/Graphics;widthheightfmLjava/awt/FontMetrics;descentascentfreqsratemode sineRegionLjava/awt/Rectangle; timerangey0amp fftRegionfftRangeffthlZpx[Ipy drawArrow(IIIIIILjava/awt/Graphics;)Vsize1size2normnormxnormyaspectvecMag(DD)DstartrunratemyThreadstoptempsetRateactionPerformed(Ljava/awt/event/ActionEvent;)VLjava/awt/event/ActionEvent; stateChanged"(Ljavax/swing/event/ChangeEvent;)VLjavax/swing/event/ChangeEvent; SourceFileSineSample.java     java/util/Random java/awt/BorderLayout sinesample/DrawRegion  Center      javax/swing/JPanelSouthjavax/swing/BoxLayout  javax/swing/JLabel@UCB Physics and Music: Sampling a sine wave (JA 4/21/06,1/28/12)  Eastjavax/swing/JCheckBox Show samples   Show bars  Show waveform Modejavax/swing/JSlider     Frequency (Hz) of 1st mode Sample rate, fs (Hz)   Instr.html    Instructionsjavax/swing/JEditorPane  java/io/IOExceptiontextMissing the instruction file  javax/swing/JScrollPane java/awt/Dimension   +  java/awt/MediaTracker    java/lang/StringBuilder*** Unable to find image:   ! " #java/lang/InterruptedException "$ % &' (' )* + ,-. /0 1 2 34 56 7' 8' 9'java/awt/Rectangle  !" Time :; <= >? @ A B C D E Frequencyfs F*fs GH I J )* KL M? N* O? javax/swing/Timersinesample/WindowFrame$1 InnerClasses P Q R +java/lang/ThreadClock S T UV W 0 Xsinesample/WindowFramejava/awt/event/ActionListenerjava/lang/Runnable javax/swing/event/ChangeListenerjavax/swing/border/Border java/net/URLjava/awt/Imagejava/awt/Graphicsjava/awt/FontMetricsjava/lang/Stringjava/awt/ColorWHITEBLACKBLUE setLayout(Ljava/awt/LayoutManager;)V(Lsinesample/WindowFrame;)Vadd)(Ljava/awt/Component;Ljava/lang/Object;)V setBackground(Ljava/awt/Color;)V setForegroundjavax/swing/BorderFactorycreateEmptyBorder!(IIII)Ljavax/swing/border/Border;createLineBorder-(Ljava/awt/Color;)Ljavax/swing/border/Border;createTitledBorderP(Ljavax/swing/border/Border;Ljava/lang/String;)Ljavax/swing/border/TitledBorder;(Ljava/awt/Container;I)V setBorder(Ljavax/swing/border/Border;)V(Ljava/lang/String;)V*(Ljava/awt/Component;)Ljava/awt/Component;(Ljava/lang/String;Z)VaddChangeListener%(Ljavax/swing/event/ChangeListener;)V(IIII)VsetMajorTickSpacingsetMinorTickSpacing setPaintTicks(Z)VsetPaintLabelsjava/lang/ObjectgetClass()Ljava/lang/Class;java/lang/Class getResource"(Ljava/lang/String;)Ljava/net/URL;(Ljava/net/URL;)V'(Ljava/lang/String;Ljava/lang/String;)V(Ljava/awt/Component;)V(II)VsetPreferredSize(Ljava/awt/Dimension;)V setVisiblejava/awt/ToolkitgetDefaultToolkit()Ljava/awt/Toolkit;getImage (Ljava/net/URL;)Ljava/awt/Image;addImage(Ljava/awt/Image;I)Vjava/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln waitForID(Ljava/lang/Object;)VrepaintgetWidth()I getHeightstrategyLjava/awt/image/BufferStrategy;createBufferStrategygetBufferStrategy!()Ljava/awt/image/BufferStrategy;java/awt/image/BufferStrategygetDrawGraphics()Ljava/awt/Graphics;setColorfillRect getForeground()Ljava/awt/Color;getFontMetrics()Ljava/awt/FontMetrics; getMaxDescent getMaxAscentgetValue drawString(Ljava/lang/String;II)V isSelectedjava/lang/Mathsin(D)DgreenreddrawLinefillOvalbluedrawOval(I)Ljava/lang/StringBuilder; stringWidth(Ljava/lang/String;)Idisposeshow fillPolygon([I[II)Vabspowsqrt#(ILjava/awt/event/ActionListener;)VsetInitialDelay setCoalesce)(Ljava/lang/Runnable;Ljava/lang/String;)V()Ljava/lang/Thread;sleep(J)V interruptsetDelay BBt.******* * " !( . * Y *Y**Y*Z****   LM,NY:*Y !+"#Y$%&WY:*'Y !+"*(Y)*Z+&W*+*,*(Y-*Z.&W*.*,*(Y/*Z0&W*0*,YY:&WY !,1"*2Y3Z4&W*45*46*47*48*4*9YY:&WY !,:"*2Yd3Z;&W*;5*;d6*;7*;8*;*9YY:&WY !,<"*2Yз3Z=&W*=5*=d6*=7*=8*=*9YY:&WY !*>?@:,A"*BYCD:*BYFGHDIY*DJ:KY  LM&W*N*OE@ )4?JQXaix~ )4JRZbjr $.7?GO_ny   f JQX}at?y\#%Q*P*QY*RP*>+@M,S,TN*P-UVWYXYZ+Z[\N-&   (!4#M$O&4( QQ5O t*P] LV+_ ^+/ , -.0 K k*Y `  *`*a8 ;?BD *b *c*d*e**fd*dgL*b=*c>+*h+i+*jh+k:l6m6*;n9*=n9 *4n6 oY22ȷp: q9  s tl`6 tl6+*h* u s u s t`+v* u u w`` +v+x u w``y*.z~  k66l o9 o wk6{kk}k6+~h+d u`i+d u``ti*0z+h666 w k wo99 p  kog9  dkoc9 dpk9{kck}k6+ u`` u``66n*+z  k66s o9 o wk6{kk}k6+~h+d u`d`+h+d u`d`oY26dp:9* p6+*h*usust`+v*ust`uw``st` +v+uw``st`y : :6 k9owk6~wt+~h+u`sti+*h :WYXZ[:+u`ldst```y h` +h +h kc9owk6^wT+u`stiWYXh`Z[:+u`ldsdy h` +h +h g kc9owk6^wT+u`stiWYXh`Z[:+u`ldsdy'+*dhPQST'U5[@bHcPhXi`jkqqrxswxy~*4<FN]pw|2PTX^hpz;l 5EOVap4Nntx+N[]Lp9?p<svs<2&bS@swpz ( N @CH;P3q  x        q R4Nv$@^ 'y|!":  *dd9do9 do9  : :9_OO  kck`O  kgk`O  kgk`O  kck`OiOO  kckdO  kgkdO  kgkdO  kckdOb   % /49>BGL^p !"# %    #   $ %%& /' 49>("j)*}.'))')ock')'ock()+ ...+j?*`*Y*lY****+'* *Y****2 45 6'</=7>A@EALBZCbDiGjjA',>L*+/*=*lN N*$'^+14^2 JK LMNP$Q+U1V5X8Z=[4(5$->:."/"/H08*%*L*+*M* *"%^* ^_ `adf"g)j0k7m & 18/O 2w)******lpqrs(u))-345567I * *`  89: PK <@ AMETA-INF/PK <@%+META-INF/MANIFEST.MFPK <@ A1sinesample/PK <@[ Zsinesample/AppletInterface.classPK <@{Na|Msinesample/DrawRegion.classPK <@DLL sinesample/Instr.htmlPK <@bي sinesample/SineSample$1.classPK <@e~~sinesample/SineSample.classPK <@fd{sinesample/WindowFrame$1.classPK <@+z0z0}sinesample/WindowFrame.classPK 1K