Во многих случаях задача получения (вычисления) спектра сигнала выглядит следующим образом. Имеется АЦП, который с частотой дискретизации Fd преобразует непрерывный сигнал, поступающий на его вход в течение времени Т, в цифровые отсчеты - N штук. Далее массив отсчетов подается в некую програму, (например FourierScope) которая выдает N/2 каких-то числовых значений.
Чтобы проверить, правильно ли работает программа, сформируем массив отсчетов как сумму двух синусоид sin(10*2*pi*x)+0,5*sin(5*2*pi*x) и подсунем программке. Программа нарисовала следующее:
![Image](https://habrastorage.org/files/5b5/de8/ac2/5b5de8ac23a944929a543bef65b42e34.png)
рис.1 График временной функции сигнала
![Image](https://habrastorage.org/files/031/a6b/da0/031a6bda00ec44e6ab113a893fe250c7.png)
рис.2 График спектра сигнала
На графике спектра имеется две гармоники - 5 Гц с амплитудой 0.5 В и 10 Гц - с амплитудой 1 В, все как в формуле исходного сигнала. Все отлично, gрограмма работает правильно.
Это значит, что если мы подадим на вход АЦП реальный сигнал из смеси двух синусоид, то мы получим аналогичный спектр, состоящий из двух гармоник.
Итого, наш >реальный измеренный сигнал, длительностью 5 сек, оцифрованный АЦП, то есть представленный дискретными отсчетами, имеет дискретный непериодический спектр.
С математической точки зрения - сколько ошибок в этой фразе?
![Laughing :lol:](./images/smilies/icon_lol.gif)
Теперь попробуем измерить тот же самый сигнал в течение 0.5 сек.
![Image](https://habrastorage.org/getpro/habr/post_images/8d4/437/678/8d4437678af821f086477bec37da6cc1.png)
рис.3 График функции sin(10*2*pi*x)+0,5*sin(5*2*pi*x) на периоде измерения 0.5 сек
![Image](https://habrastorage.org/getpro/habr/post_images/cb9/012/b3c/cb9012b3c5fbaa94fea32080fabfeea1.png)
рис.4 Спектр функции
Что-то здесь не то! Гармоника 10 Гц рисуется нормально, а вместо гармоники на 5 Гц появилось несколько каких-то непонятных гармоник.
В интернете говорят, что в конец выборки надо добавить нули и спектр будет рисоваться нормальный.
![Image](https://habrastorage.org/files/7a5/104/b86/7a5104b86561417896b1f5d1e77e1c1f.png)
рис.5 Добили выборку нулями до 5 сек
![Image](https://habrastorage.org/files/6b1/4a2/9c5/6b14a29c55274acbae0c2a05e35b0cfc.png)
рис.6 Получили спектр
Совсем не то. Придется разбираться с теорией. Идем в Википедию - источник знаний.
2. Непрерывная функция и представление её рядом Фурье
Математически наш сигнал длительностью T секунд является некоторой функцией f(x), заданной на отрезке {0, T} (X в данном случае - время). Такую функцию всегда можно представить в виде суммы гармонических функций (синусоид или косинусоид) вида:
![Image](https://habrastorage.org/files/d99/987/3db/d999873dbfb64709b753b43af8ecb750.png)
k - номер тригонометрической функции ( номер гармонической составляющей, номер гармоники)
T - отрезок, где функция определена (длительность сигнала)
Ak - амплитуда k-ой гармонической составляющей,
θk- начальная фаза k-ой гармонической составляющей
Что значит "представить функцию в виде суммы ряда"? Это значит, что, сложив в каждой точке значения гармонических составляющих ряда Фурье, мы получим значение нашей функции в этой точке.
(Более строго, среднеквадратичное отклонение ряда от функции f(x) будет стремиться к нулю, но несмотря на среднеквадратичную сходимость, ряд Фурье функции, вообще говоря, не обязан сходиться к ней поточечно. См. https://ru.wikipedia.org/wiki/Ряд_Фурье.)
Этот ряд может быть также записан в виде:
![Image](https://habrastorage.org/files/02b/5c5/288/02b5c528851741e5aec9a5656987df3d.png)
где
![Image](https://habrastorage.org/files/233/196/a2c/233196a2ca1c4bd098638f2104469b6e.png)
или
![Image](https://habrastorage.org/files/ebe/02f/603/ebe02f6032ee45ef984a52ec1499ee1d.png)
Связь между коэффициентами (1) и (3) выражается следующими формулами:
![Image](https://habrastorage.org/getpro/habr/post_images/13a/f81/c0d/13af81c0d220789f0e44e24bbab6e8f0.png)
и
![Image](https://habrastorage.org/files/a01/511/9b6/a015119b6c0f4e238699a1c0d46de4c7.png)
Отметим, что все эти три представления ряда Фурье совершенно равнозначны. Иногда при работе с рядами Фурье бывает удобнее использовать вместо синусов и косинусов экспоненты мнимого аргумента, то есть использовать преобразование Фурье в комплексной форме. Но нам удобно использовать формулу (1), где ряд Фурье представлен в виде суммы косинусоид с соответствующими амплитудами и фазами. В любом случае неправильно говорить, что результатом преобразования Фурье действительного сигнала будут комплексные амплитуды гармоник. Как правильно говорится в Вики "Преобразование Фурье (ℱ) — операция, сопоставляющая одной функции вещественной переменной другую функцию, также вещественной переменной."
Итого:
Математической основой спектрального анализа сигналов является преобразование Фурье.
Преобразование Фурье позволяет представить непрерывную функцию f(x) (сигнал), определенную на отрезке {0, T} в виде суммы бесконечного числа (бесконечного ряда) тригонометрических функций (синусоид и\или косинусоид) с определёнными амплитудами и фазами, также рассматриваемых на отрезке {0, T}. Такой ряд называется рядом Фурье.
Отметим еще некоторые моменты, понимание которых требуется для правильного применения преобразования Фурье к анализу сигналов. Если рассмотреть ряд Фурье (сумму синусоид) на всей оси Х, то можно увидеть, что вне отрезка {0, T} функция представленная рядом Фурье будет будет периодически повторять нашу функцию.
Например, на графике рис.7 исходная функция определена на отрезке {-T\2, +T\2}, а ряд Фурье представляет периодическую функцию, определенную на всей оси х.
Это происходит потому, что синусоиды сами являются периодическими функциями, соответственно и их сумма будет периодической функцией.
![Image](https://habrastorage.org/files/30f/dc9/74e/30fdc974e9684843be68c8eb75938bd4.png)
рис.7 Представление непериодической исходной функции рядом Фурье
Таким образом:
Наша исходная функция - непрерывная, непериодическая, определена на некотором отрезке длиной T.
Спектр этой функции - дискретный, то есть представлен в виде бесконечного ряда гармонических составляющих - ряда Фурье.
По факту, рядом Фурье определяется некоторая периодическая функция, совпадающая с нашей на отрезке {0, T}, но для нас эта периодичность не существенна.
Далее.
Периоды гармонических составляющих кратны величине отрезка {0, T}, на котором определена исходная функция f(x). Другими словами, периоды гармоник кратны длительности измерения сигнала. Например, период первой гармоники ряда Фурье равен интервалу Т, на котором определена функция f(x). Период второй гармоники ряда Фурье равен интервалу Т/2. И так далее (см. рис. 8).
![Image](https://habrastorage.org/files/0dc/cc9/3e5/0dccc93e5ea14fc889fcd48fbe6c25ee.png)
рис.8 Периоды (частоты) гармонических составляющих ряда Фурье (здесь Т=2π)
Соответственно, частоты гармонических составляющих кратны величине 1/Т. То есть частоты гармонических составляющих Fk равны Fk= к\Т, где к пробегает значения от 0 до ∞, например к=0 F0=0; к=1 F1=1\T; к=2 F2=2\T;к=3 F3=3\T;.... Fk= к\Т (при нулевой частоте - постоянная составляющая).
Пусть наша исходная функция, представляет собой сигнал, записанный в течение Т=1 сек. Тогда период первой гармоники будет равен длительности нашего сигнала Т1=Т=1 сек и частота гармоники равна 1 Гц. Период второй гармоники будет равен длительности сигнала, деленной на 2 (Т2=Т/2=0,5 сек) и частота равна 2 Гц. Для третьей гармоники Т3=Т/3 сек и частота равна 3 Гц. И так далее.
Шаг между гармониками в этом случае равен 1 Гц.
Таким образом сигнал длительностью 1 сек можно разложить на гармонические составляющие (получить спектр) с разрешением по частоте 1 Гц.
Чтобы увеличить разрешение в 2 раза до 0,5 Гц - надо увеличить длительность измерения в 2 раза - до 2 сек. Сигнал длительностью 10 сек можно разложить на гармонические составляющие (получить спектр) с разрешением по частоте 0,1 Гц. Других способов увеличить разрешение по частоте нет.
Существует способ искусственного увеличения длительности сигнала путем добавления нулей к массиву отсчетов. Но реальную разрешающую способность по частоте он не увеличивает.
3. Дискретные сигналы и дискретное преобразование Фурье
С развитием цифровой техники изменились и способы хранения данных измерений (сигналов). Если раньше сигнал мог записываться на магнитофон и храниться на ленте в аналоговом виде, то сейчас сигналы оцифровываются и хранятся в файлах в памяти компьютера в виде набора чисел (отсчетов).
Обычная схема измерения и оцифровки сигнала выглядит следующим образом.
![Image](https://habrastorage.org/files/418/6e4/eb2/4186e4eb2a9049fba55d99c106dc4a3e.png)
рис.9 Схема измерительного канала
Сигнал с измерительного преобразователя поступает на АЦП в течение периода времени Т. Полученные за время Т отсчеты сигнала (выборка) передаются в компьютер и сохраняются в памяти.
![Image](https://habrastorage.org/files/006/594/f47/006594f476c44579bae4792e291c4af6.png)
рис.10 Оцифрованный сигнал - N отсчетов полученных за время Т
Какие требования выдвигаются к параметрам оцифровки сигнала? Устройство, преобразующее входной аналоговый сигнал в дискретный код (цифровой сигнал) называется аналого-цифровой преобразователь (АЦП, англ. Analog-to-digital converter, ADC) (© Wiki).
Одним из основных параметров АЦП является максимальная частота дискретизации (или частота семплирования, англ. sample rate) — частота взятия отсчетов непрерывного во времени сигнала при его дискретизации. Измеряется в герцах. ((© Wiki))
Согласно теореме Котельникова, если непрерывный сигнал имеет спектр, ограниченный частотой Fмакс, то он может быть полностью и однозначно восстановлен по его дискретным отсчетам, взятым через интервалы времени
![Image](https://habrastorage.org/files/bc6/bed/0d1/bc6bed0d1bf64e7ba70c6969cbea2b46.gif)
А что будет, если мы будем брать отсчеты с меньшей частотой, чем требуется по теореме Котельникова?
В этом случае возникает эффект "алиасинга" (он же стробоскопический эффект, муаровый эффект), при котором сигнал высокой частоты после оцифровки превращается в сигнал низкой частоты, которого на самом деле не существует. На рис. 11 красная синусоида высокой частоты - это реальный сигнал. Синяя синусоида более низкой частоты - фиктивный сигнал, возникающий вследствие того, за время взятия отсчета успевает пройти больше, чем пол-периода высокочастотного сигнала.
![Image](https://habrastorage.org/files/a0d/b1a/279/a0db1a279b574d1391c915e87fe15538.png)
Рис. 11. Появление ложного сигнала низкой частоты при недостаточно высокой частоте дискретизации
Чтобы избежать эффекта алиасинга перед АЦП ставят специальный антиалиасинговый фильтр - ФНЧ (фильтр нижних частот), который пропускает частоты ниже половины частоты дискретизации АЦП, а более высокие частоты зарезает.
Для того, чтобы вычислить спектр сигнала по его дискретным отсчетам используется дискретное преобразование Фурье (ДПФ). Отметим еще раз, что спектр дискретного сигнала "по определению" ограничен частотой Fмакс, меньшей половине частоты дискретизации Fd. Поэтому спектр дискретного сигнала может быть представлен суммой конечного числа гармоник, в отличие от бесконечной суммы для ряда Фурье непрерывного сигнала, спектр которого может быть неограничен. Согласно теореме Котельникова максимальная частота гармоники должна быть такой, чтобы на нее приходилось как минимум два отсчета, поэтому число гармоник равно половине числа отсчетов дискретного сигнала. То есть если в выборке имется N отсчетов, то число гармоник в спектре будет равно N/2.
Рассмотрим теперь дискретное преобразование Фурье (ДПФ).
![Image](https://habrastorage.org/files/4f1/303/5dc/4f13035dcc2b47e09f5cb09f9352bd8a.png)
Сравнивая с рядом Фурье
![Image](https://habrastorage.org/files/9f2/e60/3c6/9f2e603c63ed484c9b9e46d1d8006b6f.png)
видим, что они совпадают, за исключением того, что время в ДПФ имеет дискретный характер и число гармоник ограничено величиной N/2 - половиной числа отсчетов.
Формулы ДПФ записываются в безразмерных целых переменных k, s, где k – номера отсчетов сигнала, s – номера спектральных составляющих.
Величина s показывает количество полных колебаний гармоники на периоде Т (длительности измерения сигнала). Дискретное преобразование Фурье используется для нахождения амплитуд и фаз гармоник численным методом, т.е. "на компьютере"
Как уже было сказано выше, при разложении в ряд Фурье непериодической функции (нашего сигнала), полученный ряд Фурье фактически соответствует периодической функции с периодом Т. (рис.12).
![Image](https://habrastorage.org/files/670/6d4/581/6706d458171d4eea80a85ca7151d8253.png)
рис.12 Периодическая функция f(x) с периодом Т0, с периодом измерения Т>T0
Как видно на рис.12 функция f(x) периодическая с периодом Т0. Однако из-за того, что длительность измерительной выборки Т не совпадает с периодом функции Т0, функция, получаемая как ряд Фурье, имеет разрыв в точке Т. В результате спектр данной функции будет содержать большое количество высокочастотных гармоник. Если бы длительность измерительной выборки Т совпадала с периодом функции Т0, то в полученном после преобразования Фурье спектре присутствовала бы только первая гармоника (синусоида с периодом равным длительности выборки), поскольку функция f(x) представляет собой синусоиду.
Другими словами, программа ДПФ "не знает", что наш сигнал представляет собой "кусок синусоиды", а пытается представить в виде ряда периодическую функцию, которая имеет разрыв из-за нестыковки отдельных кусков синусоиды.
В результате в спектре появляются гармоники, которые должны в сумме изобразить форму функции, включая этот разрыв.
Таким образом, чтобы получить "правильный" спектр сигнала, являющегося суммой нескольких синусоид с разными периодами, необходимо чтобы на периоде измерения сигнала укладывалось целое число периодов каждой синусоиды. На практике это условие можно выполнить при достаточно большой длительности измерения сигнала.
![Image](https://habrastorage.org/files/21a/35a/a69/21a35aa691ee448488092f84c0951b90.png)
Рис.13 Пример функции и спектра сигнала кинематической погрешности редуктора
При меньшей длительности картина будет выглядеть "хуже":
![Image](https://habrastorage.org/files/98a/b84/bc3/98ab84bc37a543688b3ae90906250111.png)
Рис.14 Пример функции и спектра сигнала вибрации ротора
На практике бывает сложно понять, где "реальные составляющие", а где "артефакты", вызванные некратностью периодов составляющих и длительности выборки сигнала или "скачками и разрывами" формы сигнала. Конечно слова "реальные составляющие" и "артефакты" не зря взяты в кавычки. Наличие на графике спектра множества гармоник не означает, что наш сигнал в реальности из них "состоит". Это все равно что считать, будто число 7 "состоит" из чисел 3 и 4. Число 7 можно представить в виде суммы чисел 3 и 4 - так правильно.
Так и наш сигнал.. а вернее даже не "наш сигнал", а периодическую функцию, составленную путем повторения нашего сигнала (выборки) можно представить в виде суммы гармоник (синусоид) с определенными амплитудами и фазами. Но во многих важных для практики случаях (см. рисунки выше) действительно можно связать полученные в спектре гармоники и с реальными процессами, имеющими циклический характер и вносящими значительный вклад в форму сигнала.
Некоторые итоги
1. Реальный измеренный сигнал, длительностью T сек, оцифрованный АЦП, то есть представленный набором дискретных отсчетов (N штук), имеет дискретный непериодический спектр, представленный набором гармоник (N/2 штук).
2. Сигнал представлен набором действительных значений и его спектр представлен набором действительных значений. Частоты гармоник положительны. То, что математически бывает удобнее представить спектр в комплексной форме с использованием отрицательных частот не значит, что "так правильно" и "так всегда надо делать".
3. Сигнал, измеренный на отрезке времени Т определен только на отрезке времени Т. Что было до того, как мы начали измерять сигнал, и что будет после того - науке это неизвестно. И в нашем случае - неинтересно. ДПФ ограниченного во времени сигнала дает его "настоящий" спектр, в том смысле, что при определенных условиях позволяет вычислить амплитуду и частоту его составляющих.
Использованные материалы и другие полезные материалы.
http://www.siarion.net/rus/free/fourierscope FourierScope - программа для построения радио сигналов и их спектрального анализа.
http://www.padowan.dk/ Graph - программа с открытым кодом, предназначенная для построения математических графиков.
http://www.phys.nsu.ru/cherk/Vestnik_Fo ... _15_09.pdf ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ – КАК ЭТО ДЕЛАЕТСЯ
http://www.dsplib.ru/content/dft/dft.html Дискретное преобразование Фурье (ДПФ)