private void UpdateData() { lock (this) { for (int i = 0; i < Count; i++) { _re[i] = 2.0 * Math.Sin(2 * Math.PI * i / 20) + 5.0 * Math.Sin(2 * Math.PI * i / 10) + 2.0 * _random.NextDouble(); _im[i] = IsFrequencyDomain ? 0.0 : i; } if (IsFrequencyDomain) { _transform.run(_re, _im); for (int i = 0; i < Count; i++) { double mag = Math.Sqrt(_re[i] * _re[i] + _im[i] * _im[i]); _re[i] = 20 * Math.Log10(mag / Count); _im[i] = i; } } DataSeries.SeriesName = YAxisTitle; DataSeries.Clear(); DataSeries.Append(_im, _re); } }