MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

how to plot a phase-spectrum ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41350] how to plot a phase-spectrum ?
  • From: kroos059 at tref.nl (kroos059)
  • Date: Thu, 15 May 2003 04:07:18 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

hello,
i'm trying to plot a phase-spectrum, but it's giving me some problems.
according to the example in the book, i should get a phase of -pi/2
at 1 and 16, pi/2 at 48 and 63 and the rest should be 0. unfortunaly
i get a phase != 0 nearly everywhere.
any help how to get a picture like the description above is very much appreciated.

i'm using the following formulas:
magitude=Sqrt[Re[a]^2+Im[a]^2]
phase=ArcTan[ Im[a]/Re[a] ]

with a as the spectral component

what i've got:

BigN=64;
(* the signal: *)
x[var_] := x[var] = Module[{n = Mod[var, BigN]},Sin[2*Pi*n/64] + Cos[2*Pi*n/16] +0.6*Cos[2*Pi*n/8] +0.5*Sin[2*Pi*n/4] ];

ReA[k_]:=ReA[k]=Module[{n},1/BigN*Sum[ ( x[n]*Cos[2*Pi*k*n/BigN] ),{n,0,BigN-1}] ];

ImA[k_]:=ImA[k]=Module[{n},1/BigN*Sum[ ( x[n]*-Sin[2*Pi*k*n/BigN] ),{n,0,BigN-1}] ];

magnitude[k_]:= magnitude[k]=Evaluate[Sqrt[ReA[k]^2 + ImA[k]^2 ] ];
phase[k_] := If[ReA[k] == 0, 0, ArcTan[ ImA[k]/ReA[k] ] ];

Plot[magnitude[n], {n, 0, 63}, PlotRange -> All]
Plot[phase[n],{n,0,63}]

i'm using a function to plot the 2 functions on integers only, but plot comes
close enough for a general idea.

-- 
Okke

Experience is that marvelous thing that enables you recognize a
mistake when you make it again.
-- F. P. Jones


  • Prev by Date: Re: Eps export of some characters fails
  • Next by Date: Re: Re: Count pattern
  • Previous by thread: Mathematica output
  • Next by thread: Mathematica and database