Manipulate[
 (*Nasser M. Abbasi, June 20, 2014*)
 (*the signal is cosine, and the SNR is given as ratio of variances*)
 Module[{nPoints, x0, varx0, n, x, del},
  nPoints = 128;
  del = 4 Pi/(nPoints - 1);
  x0 = Cos[Range[0, 4*Pi, del]];
  varx0 = Variance[x0];
  SeedRandom[0];
  n = RandomVariate[NormalDistribution[0, 1], nPoints];
  x = x0 + Sqrt[varx0/snr]*n;
  Show[ListLinePlot[x0, PlotStyle -> Blue], ListLinePlot[x, PlotStyle -> Red], PlotRange -> {{0, Round[xmax/del]}, {-ymax, ymax}}, 
   ImagePadding -> {{40, 15}, {40, 40}}, Frame -> True, ImageSize -> 400, 
   FrameLabel -> {{"y(t)", None}, {"time", "Adding noise to signal"}}, Axes -> None]
  ],
 Grid[{
   {"SNR",
    Manipulator[Dynamic[snr, {snr = #} &], {1, 999, 1}, ImageSize -> Tiny],
    Dynamic@Row[{NumberForm[snr, 3], " (", NumberForm[10. Log[10, snr], 4], " db)"}]
    },
   {"x max",
    Manipulator[Dynamic[xmax, {xmax = #} &], {.1, 4.*Pi, .1}, ImageSize -> Tiny],
    Dynamic[xmax]
    },
   {"y max",
    Manipulator[Dynamic[ymax, {ymax = #} &], {.1, 1.4, .1}, ImageSize -> Tiny],
    Dynamic[ymax]
    }
   }, Alignment -> Left
  ],
 {{snr, 50}, None},
 {{xmax, 4.*Pi}, None},
 {{ymax, 1.4}, None}
 ]