(* same speed *)
f[x_,t_]=Cos[x-4 t] + Cos[2 (x-4 t)]
Plot[{f[x,0], f[x,.1]},{x,-10,10}]

Plot[f[x,.7],{x,-10,10}]
(* predictions? *)

Plot[f[x,1.3],{x,-10,10}]
(* predictions? *)

Animate[Plot[f[x,t],{x,-10,10}], {t,0,5}]

(*******************************************)
(* now suppose second wave travels at 5 m/s... *)

f2[x_,t_]=Cos[x-4 t] + Cos[2 (x-5 t)]
Plot[{f2[x,0], f2[x,.1]},{x,-10,10}]

Plot[f2[x,.7],{x,-10,10}]
(* predictions? *)

Plot[f2[x,1.3],{x,-10,10}]
(* predictions? *)

Animate[Plot[f2[x,t],{x,-10,10}, PlotRange->{-2,2}], {t,0,5}]

Animate[Plot[{Cos[x-4 t] , Cos[2 (x-5 t)],f2[x,t]},{x,-10,10}, PlotRange->{-2,2}], {t,0,5}]

(******************************************)
(* now lots of closely spaced frequency components *)

(* same speed *)
f3[x_,t_] = Sum[E^(-n^2/1000) Cos[2 Pi n (x-t)],{n,40,60}];
Plot[{f3[x,0], f3[x,.1]},{x,-.5,.5},PlotPoints->100,PlotRange->All]

Animate[Plot[f3[x,t],{x,-.5,.5}, PlotPoints->100, PlotRange->{-2,2}], {t,0,5}, AnimationRate->.3]

(* with dispersion *)

f4[x_,t_] = Sum[E^(-n^2/1000) Cos[2 Pi n (x-(1+(n-50)/200) t)],{n,40,60}];
Plot[{f4[x,0], f4[x,.1]},{x,-.5,.5},PlotPoints->200,PlotRange->All]

Animate[Plot[f4[x,t],{x,-.5,.5}, PlotPoints->200, PlotRange->{-2,2}], {t,0,5}, AnimationRate->.1]

(* zoomed in *)
Animate[Plot[f4[x,t],{x,-.2,.2}, PlotPoints->200, PlotRange->{-2,2}], {t,0,.25}, AnimationRate->.05]