Спектр периодической последовательности прямоугольных импульсов

Содержание

DSPL-2.0 — свободная библиотека алгоритмов цифровой обработки сигналов

Распространяется под лицензией LGPL v3

Страница проекта на SourceForge libdspl-2.0 on SourceForge

Обнаружили ошибку? Выделите ее мышью и нажмите ctrl+enter
Вводные замечания

В предыдущих разделах мы рассмотрели разложение периодических сигналов в ряд Фурье, а также изучили некоторые свойства представления периодических сигналов рядом Фурье. Мы говорили, что периодические сигналы можно представить как ряд комплексных экспонент, отстоящих друг от друга на частоту \Delta \omega = \frac{2\pi}{T} рад/c, где T — период повторения сигнала. В результате мы можем трактовать представление сигнала в виде ряда комплексных гармоник как комплексный спектр сигнала. Комплексный спектр, в свою очередь, может быть разделен на амплитудный и фазовый спектры периодического сигнала.

В данном разделе мы рассмотрим спектр периодической последовательности прямоугольных импульсов, как одного из важнейших сигналов, используемого в практических приложениях.

Спектр периодической последовательности прямоугольных импульсов

Пусть входной сигнал s(t) представляет собой периодическую последовательность прямоугольных импульсов амплитуды A, длительности \tau секунд следующих с периодом T секунд, как это показано на рисунке 1

Периодическая последовательность прямоугольных импульсов
Рисунок 1. Периодическая последовательность прямоугольных импульсов

Единица измерения амплитуды сигнала A зависит от физического процесса, который описывает сигнал s(t). Это может быть напряжение, или, сила тока, или любая другая физическая величина со своей единицей измерения, которая меняется во времени как s(t). При этом, единицы измерения амплитуд спектра S(\omega_n), \omega_n = \frac{2 \pi}{T} n, n = 0, \pm 1, \pm 2 \ldots будут совпадать с единицами измерения амплитуды A исходного сигнала.

Тогда спектр S(\omega_n), \omega_n = \frac{2 \pi}{T} n, n = 0, \pm 1, \pm 2 \ldots данного сигнала может быть представлен как:

equation 1
(1)
Спектр периодической последовательности прямоугольных импульсов представляет собой множество гармоник с огибающей вида S(\omega) =  A  \, \frac{\sin \left(\omega \tau/2 \right) }{\omega T/2}.

Свойства спектра периодической последовательности прямоугольных импульсов

Рассмотрим некоторые свойства огибающей спектра периодической последовательности прямоугольных импульсов.

Постоянная составляющая огибающей S(0) может быть получена как предел:

equation 2
(2)
Для раскрытия неопределенности воспользуемся правилом Лопиталя [1, стр. 257]:

equation 3
(3)
где Q = \frac{T}{\tau} > 1 называется скважностью импульсов и задает отношение периода повторения импульсов к длительности одиночного импульса.

Таким образом, значение огибающей на нулевой частоте равно амплитуде импульса деленной на скважность. При увеличении скважности (т.е. при уменьшении длительности импульса при фиксированном периоде повторения) значение огибающей на нулевой частоте уменьшается.

Используя скважность импульсов выражение (1) можно переписать в виде:

equation 4
(4)
где \operatorname{sinc}\left(x \right) = \sin(x)/x.

Нули огибающей спектра последовательности прямоугольных импульсов можно получить из уравнения:

equation 5
(5)
Знаменатель обращается в ноль только при \omega  = 0, однако, как мы выяснили выше S(0) = \frac{A}{Q} \neq 0, тогда решением уравнения будет

equation 6
(6)
Тогда огибающая обращается в ноль если

equation 7
(7)
На рисунке 2 показана огибающая спектра периодической последовательности прямоугольных импульсов S(\omega) (пунктирная линия) и частотные соотношения огибающей и дискретного спектра S(\omega_n).

Cпектр периодической последовательности
прямоугольных импульсов
Рисунок 2. Cпектр периодической последовательности прямоугольных импульсов

Также показаны амплитудная огибающая |S(\omega)|, амплитудный спектр |S(\omega_n)|, а также фазовая огибающая \Phi(\omega) и фазовый спектр \Phi(\omega_n).

Из рисунка 2 можно заметить, что фазовый спектр \Phi(\omega_n) принимает значения \pm \pi когда огибающая S(\omega) имеет отрицательные значения. Заметим, что \Phi(\omega) = \pi и \Phi(\omega) = -\pi соответствуют одной и той же точке комплексной плоскости равной \exp(j\Phi(\omega)) = \exp(\pm j \pi) = -1.

Пример спектра периодической последовательности прямоугольных импульсов

Пусть входной сигнал s(t) представляет собой периодическую последовательность прямоугольных импульсов амплитуды A = 2, следующих с периодом T = 4 секунды и различной скважностью Q = 5, 2, 1.25. На рисунке 3а показаны временные осциллограммы указанных сигналов, их амплитудные спектры |S(\omega_n)| (рисунок 3б), а также непрерывные огибающие S(\omega) спектров (пунктирная линия).

Cпектр периодической последовательности
прямоугольных импульсов  при различном значении скважности а — временные осциллограммы;  б — амплитудный спектр
Рисунок 3. Cпектр периодической последовательности прямоугольных импульсов при различном значении скважности
а — временные осциллограммы; б — амплитудный спектр

Как можно видеть из рисунка 3, при увеличении скважности сигнала, длительность импульсов s(t) уменьшается, огибающая спектра S(\omega) расширяется и уменьшается по амплитуде (пунктирная линия). В результате, в пределах главного лепестка увеличивается количество гармоник спектра |S(\omega_n)|.

Спектр смещенной во времени периодической последовательности прямоугольных импульсов

Выше мы подробно изучили спектр периодической последовательности прямоугольных импульсов для случая, когда исходный сигнал s(t) являлся симметричным относительно t = 0. В результате спектр такого сигнала S(\omega_n) является вещественным и задается выражением (1). Теперь мы рассмотрим, что произойдет со спектром сигнала s_{\textrm{sh}}(t) если мы сместим сигнал s(t) во времени,как это показано на рисунке 4 .

Сдвинутая во времени периодическая последовательность прямоугольных импульсов
Рисунок 4. Сдвинутая во времени периодическая последовательность прямоугольных импульсов

Смещенный сигнал s_{\textrm{sh}}(t) можно представить как сигнал s(t), задержанный на половину длительности импульса s_{\textrm{sh}}(t) = s \left( t - \frac{\tau}{2}\right). Спектр S_{\textrm{sh}}(\omega_n) смещенного сигнала s_{\textrm{sh}}(t) можно представить согласно свойству циклического временного сдвига как:

equation 8
(8)
Таким образом, спектр периодической последовательности прямоугольных импульсов, смещенной относительно нуля, не является чисто вещественной функцией, а приобретает дополнительный фазовый множитель \exp\left( -j \omega_n \frac{\tau}{2}\right). Амплитудный \left|S_{\textrm{sh}}(\omega_n) \right| и фазовый \Phi_{\textrm{sh}}(\omega) спектры показаны на рисунке 5.

Амплитудный и фазовый спектры сдвинутой во времени периодической
последовательности прямоугольных импульсов
Рисунок 5. Амплитудный и фазовый спектры сдвинутой во времени периодической последовательности прямоугольных импульсов

Из рисунка 5 следует, что сдвиг периодического сигнала во времени не изменяет амплитудный спектр сигнала, но добавляет линейную составляющую к фазовому спектру сигнала.

Выводы

В данном разделе мы получили аналитическое выражение для спектра периодической последовательности прямоугольных импульсов.

Мы рассмотрели свойства огибающей спектра периодической последовательности прямоугольных импульсов и привели примеры спектров при различном значении скважности.

Также был рассмотрен спектр при смещении во времени последовательности прямоугольных импульсов и показано, что смещение во времени изменяет фазовый спектр и не влияет на амплитудный спектр сигнала.

странице обсуждения статьи

Программная реализация в библиотеке DSPL

Данные для построения рисунков данного раздела были просчитаны при использовании библиотеки DSPL-2.0

Ниже приведён исходный код программы расчета данных для построения рисунка 3:


#include <stdio.h>
#include <string.h>
#include "dspl.h"

/* Размер векторов входных сигналов и огибающей спетра */
#define N  1000 

/* Период повторения импульса. Для изменения скважности мы будем менять 
 * длительность импульса при фиксированном периоде повторения */
#define T  4.0

/* Амплитуда */
#define A  2.0

/* Количество спектральных гармоник разложения в ряд Фурье  */
#define M  41


/* длина команды Gnuplot */
#define PLOTCMD_LEN 256


int main(int argc, char* argv[])
{

  double    t1[N];   /* время (сек) на одном периоде повторения      */
  double    t4[N];   /* время (сек) на четырех периодах повторения   */
  double    s[N];    /* входной сигнал                               */
  complex_t S[M];    /* комплексный спектр периодического сигнала    */
  double    Smag[M]; /* амплитудный спектр периодического сигнала    */
  double    w[M];    /* частота (рад/c) дискретного спектра          */
  double    wc[N];   /* частота (рад/с) огибающей спектра            */
  double    Sc[N];   /* огибающая спектра                            */
  double    tau;     /* длительность импульса                        */

  /* скважность */
  double    Q[3] = {5.0, 2.0, 1.25};

  int q, m, n;
  
  char fname[64];            /* имя файла данных */
  char plotcmd[PLOTCMD_LEN]; /* Команда Gnuplot  */ 
  
  void* hdspl;  /* DSPL handle        */
  void* hplot;  /* GNUPLOT handle     */
  
  hdspl = dspl_load();
  if(!hdspl)
  {
    printf("Cannot to load libdspl!\n");
    return 0;
  }
  
  /* Вектор частот непрерывной огибаюхей вида sin(w/2*tau) / (w/2*T) */
  linspace(-M_PI*(double)M/(double)T, M_PI*(double)M/(double)T,  N, DSPL_SYMMETRIC, wc);
  
  /* заполнение массива временных отсчетов  */
  /* на одном периоде повторения сигнала    */
  linspace(-T/2.0, T/2.0,  N, DSPL_PERIODIC, t1);
  
  /* заполнение массива временных отсчетов
   * на 4-x периодах повторения сигнала
   * для отображения на осциллограмме */
  linspace(-T*2.0, T*2.0,  N, DSPL_PERIODIC, t4);
  
  
  /* Построение графиков пакетом GNUPLOT */
  gnuplot_create(argc, argv, 800, 640,  "img/fourier_series_rec.png", &hplot);
  gnuplot_cmd(hplot, "unset key");
  gnuplot_cmd(hplot, "set multiplot layout 3,2 rowsfirst");
  gnuplot_cmd(hplot, "set yrange [0:2.2]");
  
  for(q = 0; q < 3; q++)
  {
    tau = T/Q[q];

    /* 4 периода повторения п-импульса скважности Q[q] */
    signal_pimp(t4, N, A, tau, 0.0, T, s);

    /* сохранение в текстовый файл временных осциллограмм */
    sprintf(fname, "dat/pimp_time_%.2lf.csv", Q[q]);
    writetxt(t4, s, N, fname);

    /* Построение временнОй осциллограммы */
    sprintf(plotcmd, "plot '%s' with lines", fname);
    gnuplot_cmd(hplot, plotcmd);

    /* один период повторения п-импульса скважности Q[q] */
    signal_pimp(t1, N, A, tau, 0.0, T, s);

    /* разложение в ряд Фурье */
    fourier_series_dec(t1, s, N, T, M, w, S);

    /* Рассчет амплитудного спектра */
    for(m = 0; m < M; m++)
    {
      /*printf("S[%d] = %f     %f\n", m, RE(S[m]), IM(S[m]));*/
      Smag[m] = ABS(S[m]);
    }

    /* Сохранение в файл амплитудного спетра для скважности Q[q] */
    sprintf(fname, "dat/pimp_freq_discrete_%.2lf.csv", Q[q]);
    writetxt(w, Smag, M, fname);

    /* Построение на график амплитудного спектра для заданной скважности */
    sprintf(plotcmd, "plot '%s' with  impulses lt 1 ,\\", fname);
    printf("%s\n", plotcmd);
    gnuplot_cmd(hplot, plotcmd);

    sprintf(plotcmd, "'%s'  with points pt 7 ps 0.5 lt 1 ,\\", fname);
    printf("%s\n", plotcmd);
    gnuplot_cmd(hplot, plotcmd);

    /* Расчет огибающей */
    for(n = 0; n < N; n++)
      Sc[n] = (wc[n] == 0.0) ? A/Q[q] : fabs( A * sin(0.5*wc[n]*tau) / (0.5*wc[n] * T));

    /* сохранение огибающей в файл для скважности Q[q] */
    sprintf(fname, "dat/pimp_freq_cont_%.2lf.csv", Q[q]);
    writetxt(wc, Sc, N, fname);
    
    /* Построение на график непрерывной огибающей 
    амплитудного спектра для заданной скважности */
    sprintf(plotcmd, "'%s'  with lines", fname);
    printf("%s\n", plotcmd);
    gnuplot_cmd(hplot, plotcmd);
  }

  gnuplot_cmd(hplot, "unset multiplot");
  gnuplot_close(hplot);
  
  /* remember to free the resource */
  dspl_free(hdspl);
  return 0;
}

Смотри также
Представление периодических сигналов рядом Фурье
Некоторые свойства разложения периодических сигналов в ряд Фурье
Преобразование Фурье непериодических сигналов
Свойства преобразования Фурье

Список литературы
[1] Ильин, В.А., Позняк Э.Г. Основы математического анализа. Москва, Наука, 1965, 572 c.

[2] Баскаков, С.И. Радиотехнические цепи и сигналы. Москва, ЛЕНАНД, 2016, 528 c. ISBN 978-5-9710-2464-4

[3] Гоноровский И.С. Радиотехнические цепи и сигналы Москва, Советское радио, 1977, 608 c.

[4] Дёч, Г. Руководство по практическому применению преобразования Лапласа. Москва, Наука, 1965, 288 c.

[5] Bracewell R. The Fourier Transform and Its Applications McGraw-Hills, 1986, 474 c. ISBN 0-07-007-015-6

Последнее изменение страницы: 20.01.2024 (19:25:03)
Страница создана Latex to HTML translator ver. 5.20.11.14