Гармонические колебания
На хабре было несколько статей по преобразованию Фурье и о всяких красивостях типа Цифровой Обработки Сигналов (ЦОС), но неискушённому пользователю совершенно не понятно, зачем всё это нужно и где, а главное как это применить.
АЧХ шума.
Лично мне после прочтения этих статей (например, этой ) не стало понятно, что это и зачем оно нужно в реальной жизни, хотя было интересно и красиво.
Хочется не просто поглядеть красивые картинки, а так сказать, ощутить нутром, что и как работает. И я приведу конкретный пример с генерацией и обработкой звуковых файлов. Можно будет и послушать звук, и поглядеть его спектр, и понять, почему это так.
Статья не будет интересна тем, кто владеет теорией функций комплексной переменной, ЦОС и прочими страшными темами. Она скорее для любопытствующих, школьников, студентов и им сочувствующих :).
Сразу оговорюсь, я не математик, и многие вещи могу даже сказать неправильно (поправляйте личным сообщением), и данную статью пишу, опираясь на собственный опыт и собственное понимание текущих процессов. Если вы готовы, то поехали.
Пару слов о матчасти
Если мы вспомним школьный курс математики, то для построения графика синуса мы использовали круг. В общем-то так и получается, что вращательное движение можно превратить в синусоиду (как и любое гармоническое колебание). Самое лучшая иллюстрация этого процесса приведена в википедии
Гармонические колебания
Т.е. фактически график синуса получается из вращения вектора, который описывается формулой:
f(x) = A sin (ωt + φ),
где A — длина вектора (амплитуда колебаний), φ — начальный угол (фаза) вектора в нулевой момент времени, ω — угловая скорость вращения, которая равна:
ω=2 πf, где f — частота в Герцах.
Как мы видим, что зная частоту сигнала, амплитуду и угол, мы можем построить гармонический сигнал.
Магия начинается тогда, когда оказывается, что представление абсолютно любого сигнала можно представить в виде суммы (зачастую бесконечной) различных синусоид. Иначе говоря, в виде ряда Фурье.
Я приведу пример из английской википедии. Для примера возьмём пилообразный сигнал.
Пилообразный сигнал
Его сумма будет представлена следующей формулой:
Если мы будем по очерёдно суммировать, брать сначала n=1, затем n=2 и т.д., то увидим, как у нас гармонический синусоидальный сигнал постепенно превращается в пилу:
Наверное красивее всего это иллюстрирует одна программа, найденная мной на просторах сети. Выше уже говорилось, что график синуса является проекцией вращающегося вектора, а как же быть в случае более сложных сигналов? Это, как ни странно, проекция множества вращающихся векторов, а точнее их суммы, и выглядит это всё так:
Вектора рисуют пилу.
Вообще рекомендую сходить самим по ссылке и попробовать самим поиграться с параметрами, и посмотреть как меняется сигнал. ИМХО более наглядной игрушки для понимания я ещё не встречал.
Ещё следует заметить, что есть обратная процедура, позволяющая получить из данного сигнала частоту, амплитуду и начальную фазу (угол), которое называется Преобразование Фурье.
Разложение в ряд Фурье некоторых известных периодических функций (отсюда)
Я детально на нём останавливаться не буду, но покажу, как это можно применить по жизни. В списке литературы порекомендую то, где можно почитать подробнее о матчасти.
Переходим к практическим упражнениям!
Мне кажется, что каждый студент задаётся вопросом, сидя на лекции, например по матану: зачем мне весь этот бред? И как правило, не найдя ответа в обозримом будущем, к сожалению, теряет интерес к предмету. Поэтому я сразу покажу практическое применение данных знаний, а вы эти знания уже будете осваивать сами :).
Всё дальнейшее я буду реализовывать на сях. Делал всё, конечно, под Linux, но никакой специфики не использовал, по идее программа будет компилироваться и работать под другими платформами.
Для начала напишем программу для формирования звукового файла. Был взят wav-файл, как самый простой. Прочитать про его структуру можно тут.
Если кратко, то структура wav-файла описывается так: заголовок, который описывает формат файла, и далее идёт (в нашем случае) массив 16-ти битных данных (остроконечник) длиной: частота_дискретизации*t секунд или 44100*t штук.
Для формирования звукового файла был взят пример здесь. Я его немного модифицировал, исправил ошибки, и окончательная версия с моими правками теперь лежит на гитхабе тут
Сгенерируем двухсекундный звуковой файл с чистым синусом частотой 100 Гц. Для этого модифицируем программу таким образом:
#define S_RATE (44100) //частота дискретизации #define BUF_SIZE (S_RATE*10) /* 2 second buffer */ …. int main(int argc, char * argv[]) < . float amplitude = 32000; //берём максимальную возможную амплитуду float freq_Hz = 100; //частота сигнала /* fill buffer with a sine wave */ for (i=0; iwrite_wav("test.wav", BUF_SIZE, buffer, S_RATE); return 0; >
Обращаю внимание, что формула чистого синуса соответствует той, о которой мы говорили выше. Амплитуда 32000 (можно было взять 32767) соответствует значению, которое может принимать 16-ти битное число (от минус 32767 до плюс 32767).
В результате получаем следующий файл (можно его даже послушать любой звуковоспроизводящей программой). Откроем данный файл audacity и увидим, что график сигнала в действительности соответствует чистому синусу:
Чистый ламповый синус
Поглядим спектр этого синуса (Анализ->Построить график спектра)
График спектра
Виден чистый пик на 100 Гц (логарифмический масштаб). Что такое спектр? Это амплитудно-частотная характеристика. Существует ещё фазочастотная характеристика. Если помните, выше я говорил, что для построения сигнала надо знать его частоту, амплитуду и фазу? Так вот, можно из сигнала получить эти параметры. В данном случае у нас график соответствий частот амплитуде, при чём амплитуда у нас не в реальных единицах, а в Децибелах.
Величина, выраженная в децибелах, численно равна десятичному логарифму безразмерного отношения физической величины к одноимённой физической величине, принимаемой за исходную, умноженному на десять.
В данном случае просто логарифм амплитуды, умноженный на 10. Логарифмический масштаб удобно использовать при работе с сигналами.
Мне, честно говоря, не очень нравится анализатор спектра в этой программе, поэтому я решил написать свой с блекджеком и шлюхами, тем более, что это несложно.
Пишем свой анализатор спектра
Здесь может быть скучно, поэтому можете перейти сразу к следующей главе.
Поскольку я прекрасно понимаю, что тут портянки кода размещать нет смысла, те, кому реально интересно — сами найдут и поковыряют, а тем, кому это неинтересно, будут скучать, то я остановлюсь только на основных моментах написания анализатора спектра wav-файла.
Во-первых, нам wav-файл необходимо читать. Там необходимо прочитать заголовок, чтобы понять, что содержит данный файл. Я не стал реализовывать море вариантов чтения данного файла, а остановился только на одном. Пример чтения файла был взят отсюда практически без изменений, ИМХО — отличный пример. Там же есть реализация на питоне.
Следующее, что нам нужно, это быстрое преобразование Фурье. Это то самое преобразование, которое позволяет получить из конечного набора точек вектора исходных сигналов. Пусть вас пока это не пугает, дальше я объясню.
Опять же, велосипед изобретать не стал, а взял готовый пример отсюда.
Я понимаю, что чтобы объяснить, как работает программа, надо объяснить, что такое быстрое преобразование Фурье, а это как минимум ещё на одну некислую статью.
Для начала алокируем массивы:
c = calloc(size_array*2, sizeof(float)); // массив поворотных множителей in = calloc(size_array*2, sizeof(float)); //входный массив out = calloc(size_array*2, sizeof(float)); //выходной массив
Скажу лишь, что в программе мы читаем данные в массив длиной size_array (которое берём из заголовка wav-файла).
while( fread(&value,sizeof(value),1,wav) ) < in[j]=(float)value; j+=2; if (j >2*size_array) break; >
Массив для быстрого преобразования Фурье должен представлять собой последовательность , где fft_size=1 это массив комплексных чисел. Я даже боюсь представить, где используется комплексное преобразование Фурье, но в нашем случае мнимая часть у нас равна нулю, а действительная равна значению каждой точке масива.
Ещё одна особенность именно быстрого преобразования Фурье, что оно обсчитывает массивы, кратные только степени двойки. В результате мы должны вычислить минимальную степень двойки:
int p2=(int)(log2(header.bytes_in_data/header.bytes_by_capture));
Логарифм от количество байт в данных, делённых на количество байт в одной точке.
После этого считаем поворотные множители:
fft_make(p2,c);// функция расчёта поворотных множителей для БПФ (первый параметр степень двойки, второй алокированный массив поворотных множителей).
И скармливаем наш считанный массив в преобразователь Фурье:
fft_calc(p2, c, in, out, 1); //(единица означает, что мы получаем нормализованный массив).
На выходе мы получаем комплексные числа вида . Для тех, кто не знает, что такое комплексное число, поясню. Я не зря начал эту статью с кучи вращающихся векторов и кучи гифок. Так вот, вектор на комплесной плоскости определяется действительной координатой a1 и мнимой координатой a2. Или длиной (это у нас амплитуда Am) и углом Пси (фаза).
Вектор на комплексной плоскости
Обратите внимание, что size_array=2^p2. Первая точка массива соответствует частоте 0 Гц (постоянная), последняя точка соответствует частоте дискретизации, а именно 44100 Гц. В результате мы должны рассчитать частоту, соответствующей каждой точке, которые будут отличаться на частоту дельта:
double delta=((float)header.frequency)/(float)size_array; //частота дискретизации на размер массива.
Алокируем массив амплитуд:
double * ampl; ampl = calloc(size_array*2, sizeof(double));
И смотрим на картинку: амплитуда — это длина вектора. А у нас есть его проекции на действительную и мнимую ось. В результате у нас будет прямоугольный треугольник, и тут мы вспоминаем теорему Пифагора, и считаем длину каждого вектора, и сразу пишем её в текстовый файл:
for(i=0;i
В результате получаем файл примерно такого вида:
… 11.439514 10.943008 11.607742 56.649738 11.775970 15.652428 11.944199 21.872342 12.112427 30.635371 12.280655 30.329171 12.448883 11.932371 12.617111 20.777617 .
Окончательная версия программы обитает на гитхабе вот тут:
github.com/dlinyj/fft
Пробуем!
Теперь скармливаем получившейся программе тот звуковой файл синуса
./fft_an ../generate_wav/sin\ 100\ Hz.wav format: 16 bits, PCM uncompressed, channel 1, freq 44100, 88200 bytes per sec, 2 bytes by capture, 2 bits per sample, 882000 bytes in data chunk=441000 log2=18 size array=262144 wav format Max Freq = 99.928 , amp =7216.136
И получаем текстовый файл АЧХ. Строим его график с помощью гнуплота
Скрипт для построения:
#! /usr/bin/gnuplot -persist set terminal postscript eps enhanced color solid set output "result.ps" #set terminal png size 800, 600 #set output "result.png" set grid xtics ytics set log xy set xlabel "Freq, Hz" set ylabel "Amp, dB" set xrange [1:22050] #set yrange [0.00001:100000] plot "test.txt" using 1:2 title "AFC" with lines linestyle 1
Обратите внимание на ограничение в скрипте на количество точек по X: set xrange [1:22050]. Частота дискретизации у нас 44100, а если вспомнить теорему Котельникова, то частота сигнала не может быть выше половины частоты дискретизации, следовательно сигнал выше 22050 Гц нас не интересует. Почему так, советую прочитать в специальной литературе.
Итак (барабанная дробь), запускаем скрипт и лицезреем:
Спектр нашего сигнала
Обратите внимание на резкий пик на частоте 100 Гц. Не забывайте, что по осям — логарифмический масштаб! Шерсть справа, как я думаю, ошибки преобразования Фурье (тут на память приходят окна).
А давайте побалуем?
А давайте! Давайте поглядим спектры других сигналов!
Вокруг шум…
Для начала построим спектр шума. Тема про шумы, случайные сигналы и т.п. достойна отдельного курса. Но мы её коснёмся слегка. Модифицируем нашу программу генерации wav-файла, добавим одну процедуру:
double d_random(double min, double max) < return min + (max - min) / RAND_MAX * rand(); >
она будет генерировать случайное число в заданном диапазоне. В результате main будет выглядеть так:
int main(int argc, char * argv[]) < int i; float amplitude = 32000; srand((unsigned int)time(0)); //инициализируем генератор случайных чисел for (i=0; iwrite_wav("test.wav", BUF_SIZE, buffer, S_RATE); return 0; >
Сгенерируем файл, (рекомендую к прослушиванию). Поглядим его в audacity.
Сигнал в audacity
Поглядим спектр в программе audacity.
Спектр
И поглядим спектр с помощью нашей программы:
Наш спектр
Хочу обратить внимание на очень интересный факт и особенность шума — он содержит в себе спектры всех гармоник. Как видно из графика, спектр вполне себе ровный. Как правило, белый шум используется для частотного анализа пропускной способности, например, аудиоаппаратуры. Существуют и другие виды шумов: розовый, синий и другие. Домашнее задание — узнать, чем они отличаются.
А компот?
А теперь давайте посмотрим другой интереснейший сигнал — меандр. Я там выше приводил табличку разложений различных сигналов в ряды Фурье, вы поглядите как раскладывается меандр, выпишите на бумажку, и мы продолжим.
Для генерации меандра с частотой 25 Гц мы модифицируем в очередной раз наш генератор wav-файла:
int main(int argc, char * argv[]) < int i; short int meandr_value=32767; /* fill buffer with a sine wave */ for (i=0; ielse < meandr_value=32767; >> buffer[i]=meandr_value; > write_wav("test.wav", BUF_SIZE, buffer, S_RATE); return 0; >
В результате получим звуковой файл (опять же, советую послушать), который сразу надо посмотреть в audacity
Его величество — меандр или меандр здорового человека
Не будем томиться и поглядим его спектр:
Спектр меандра
Пока не очень что-то понятно, что такое… А давайте поглядим несколько первых гармоник:
Первые гармоники
Совсем другое дело! Ну-ка поглядим табличку. Смотрите-ка, у нас есть только 1, 3, 5 и т.д., т.е. нечётные гармоники. Мы так и видим, что у нас первая гармоника 25 Гц, следующая (третья) 75 Гц, затем 125 Гц и т.д., при этом у нас амплитуда постепенно уменьшается. Теория сошлась с практикой!
А теперь внимание! В реальной жизни сигнал меандра у нас имеет бесконечную сумму гармоник всё более и более высокой частоты, но как правило, реальные электрические цепи не могут пропускать частоты выше какой-то частоты (в силу индуктивности и ёмкости дорожек). В результате на экране осциллографа можно часто увидеть вот такой сигнал:
Меандр курильщика
Эта картинка прям как картинка из википедии, где для примера меандра берутся не все частоты, а только первые несколько.
Сумма первых гармоник, и как меняется сигнал
Меандр так же активно используется в радиотехнике (надо сказать, что — это основа всей цифровой техники), и стоит понимать что при длинных цепях его может отфильтровать так, что, родная мама не узнает. Его так же используют для проверки АЧХ различных приборов. Ещё интересный факт, что глушилки телевизоров работали именно по принципу высших гармоник, когда сама микросхема генерировала меандр десятки МГц, а его высшие гармоники могли иметь частоты сотни МГц, как раз на частоте работы телевизора, и высшие гармоники успешно глушили сигнал вещания телевизора.
Вообще тема подобных экспериментов бесконечная, и вы можете теперь сами её продолжить.
Рекомендации по прочтению
Книга
Для тех, кто нифига не понял, что мы тут делаем, или наоборот, для тех, кто понял, но хочет разобраться ещё лучше, а так же для студентам, изучающим ЦОС, крайне рекомендую эту книгу. Это ЦОС для чайников, которым является автор данного поста. Там доступным даже для ребёнка языком рассказываются сложнейшие понятия.
Заключение
В заключении хочу сказать, что математика — царица наук, но без реального применения многие люди теряют к ней интерес. Надеюсь, данный пост подстегнёт вас к изучению такого замечательного предмета, как обработка сигналов, и вообще аналоговой схемотехнике (затыкайте уши, чтобы не вытекали мозги!). 🙂
Удачи!
- Математика
- Визуализация данных
Испытание электрических машин — Методы частотного анализа спектра
МЕТОДЫ ЧАСТОТНОГО АНАЛИЗА СПЕКТРА И ВЫДЕЛЕНИЯ СОСТАВЛЯЮЩИХ РАЗЛИЧНОГО ПРОИСХОЖДЕНИЯ
В приборах, применяемых для виброакустических измерений, используется преобразование акустических величин (звукового давления) или механических колебаний (колебательного ускорения) в пропорциональные им и соответствующие по частоте значения напряжения и тока. Поэтому приборы для частотного анализа в настоящее время являются чисто радиоэлектронными и производится частотный анализ соответствующих электрических сигналов. Основные положения спектрального анализа гармонических и случайных процессов изложены в [7.2, 7.8,7.12,7.15, 7.19].
Спектральным анализом называется определение амплитуд и частот колебаний, входящих в состав сложного сигнала. При подробном анализе выявляются элементарные частотные составляющие сигнала, а при общем — роль отдельных частотных участков в общем спектре сигнала. С помощью приборов для анализа выявляют в исследуемом сигнале наличие частотных участков с шириной полосы, определяемой поставленной задачей. Проведение спектрального анализа колебательного процесса является сложной задачей, и главную роль в ее решении играет правильная методика измерений и оценка полученных результатов, для чего должны быть четко определены основные параметры анализирующих устройств.
Аналоговые методы анализа.
Анализирующие свойства прибора характеризуются разрешающей способностью, динамическим диапазоном и временем анализа. Разрешающая способность анализатора — это способность разделять смежные частотные составляющие сигнала. Она определяется частотным интервалом, при котором две смежные частотные составляющие разделяются провалом, достигающим 50% максимального значения (рис. 7.12). Разрешающая способность зависит от параметров фильтра и скорости анализу. Максимальная разрешающая способность наблюдается в статическом режиме. Увеличение скорости анализа уменьшает разрешающую способность. При правильном выборе скорости анализа в соответствии с выбранной шириной полосы пропускания изменение разрешающей способности анализатора сравнительно невелико и его можно не учитывать.
Время анализа сигналов, с, имеющих дискретный спектр, в анализаторе со ступенчатым переключением фильтров для каждого фильтра рассчитывается по формуле
где Δf — ширина полосы пропускания фильтра, Гц.
Общее время анализа суммируется для всех полос.
Ширина полосы фильтра определяется разностью высшей и низшей частот, на которых коэффициент передачи фильтра К снижается на 3 дБ, т. е. всех тех частот, где сигнал падает до уровня 0,707 от значения в полосе прозрачности (рис. 7.13). Такое определение вызвано тем, что реальная частотная характеристика фильтра значительно отличается от характеристики идеального прямоугольного фильтра.
Рис. 7.13. Полоса пропускания фильтра
Рис. 7.12. К определению разрешающей способности анализатора
Рис. 7.14. Структурная схема гетеродинного анализатора:
У В — усилитель входной; С — смеситель; Г — гетеродин; УПЧ — усилитель промежуточной частоты; Д — детектор; ИВ — выходной индикатор
Время анализа спектра случайного сигнала при постоянной относительной полосе пропускания равно
Динамический диапазон анализатора определяется как отношение максимальных и минимальных значений гармонических составляющих в рабочем диапазоне частот прибора.
Разложение сложного колебания на составляющие его спектра может быть произведено двумя различными способами: последовательным или параллельным (одновременным) анализами колебаний. При последовательном анализе спектр сигнала получается с помощью одного частотно-избирательного элемента (фильтра), параметры которого можно изменять, или с помощью набора избирательных элементов, подключаемых поочередно. Такой анализ не может быть произведен быстро, так как требуется время, чтобы переходные процессы в частотно-избирательном элементе не исказили результат измерений. Последовательный метод спектрального анализа пригоден для стационарных колебаний.
При параллельном анализе используется набор фильтров, настроенных на разные частоты, входы которых соединяются параллельно. Все фильтры вместе охватывают весь необходимый частотный диапазон. На выходах фильтров получают все составляющие исследуемого колебания, что позволяет зафиксировать одновременно все точки спектра. Время анализа всего спектра частот, в основном, определяется временем установившегося процесса в одном фильтре.
Рис. 7.15. Структурная схема анализатора с плавно перестраиваемым фильтром: УВ — усилитель входной; ФП — фильтр с плавной настройкой; УО — усилитель оконечный; Д — детектор; ИВ — выходной индикатор
Для анализа колебаний (вибрации и шума) применяют два вида аналоговых анализирующих устройств: гетеродинный и фильтровый анализаторы. Гетеродинный анализатор (рис. 7.14) позволяет каждую частоту сложного колебания поочередно подстраивать к частотам вспомогательных колебаний гетеродина. Прибор измеряет разность частот гетеродина и гармоник, причем эта частота меньше частоты режущего фильтра. Гетеродинный анализатор обеспечивает анализ с постоянной полосой пропускания в рабочем диапазоне частот. Краткие характеристики анализаторов гетеродинного типа приведены в табл. П7 приложения. Анализатор типа СК4-56 предназначен для исследования спектров сигналов произвольной формы, а также спектров стационарных шумов в диапазоне частот от 10 Гц до 60 кГц. Гетеродинный частотный анализатор типа 2010 (фирмы ’Брюль и Къер») позволяет проводить исследование звука и механических колебаний, измерять спектральную плотность мощности в диапазоне частот от 2 Гц до 200 кГц. В приборе имеется программное управление шириной полосы пропускания и постоянной времени усреднения, а также автоматическая компенсация ширины полосы пропускания при измерении спектральных плотностей мощности.
В состав фильтровых анализаторов частот входит плавно настраиваемый полосовой фильтр, в котором предусмотрено устройство, изменяющее относительную ширину полосы пропускания фильтра (рис. 7.15). Краткие характеристики анализаторов частот с плавной настройкой и постоянной относительной полосой пропускания приведены в табл. П8 приложения.
В состав другого вида фильтровых анализаторов входит набор электрических фильтров, настроенных на определенную полосу частот. Верхняя и нижняя границы полосы пропускания каждого фильтра последовательно перекрывают рабочий диапазон частот. В зависимости от отношения граничных частот полос пропускания фильтров, анализаторы частот получили названия октавных и третьоктавных (в акустике такие анализаторы называются спектрометрами). Интервал, ограниченный частотами с отношением fв/fш = 2, где fв и fн — верхняя и нижняя граничные частоты, называется октавой.
Средние частоты определяются как среднегеометрические от граничных частот полос, т. е.
Средние частоты фильтров выбираются согласно предпочтительному ряду частот, для акустических измерений. Распределение частот для октавных и третьоктавных фильтров в герцах приведено в табл. 7.2.
Частотные характеристики идеального и реального полосового фильтров показаны на рис. 7.16.
Октавные частотные полосы
Третьоктавные частотные полосы
Характеристики октавных и треть-октавных фильтров должны удовлетворять требованиям ГОСТ 17168-82 (СТ СЭВ 1807-79). Структурная схема спектрометра приведена на рис. 7.17.
В настоящее время получил распространение модульный принцип конструирования измерительной аппаратуры, поэтому аналоговый спектрометр собирается из двух модулей: измерительного усилителя и набора полосовых фильтров, каждый из которых может при необходимости функционировать самостоятельно. Технические характеристики некоторых спектрометров, измерительных усилителей и полосовых фильтров приведены в [7.1,7.13,7.21,7.22].
Цифровые методы анализа позволяют вести обработку сигнала в реальном масштабе времени, получать аналого-цифровое отображение информации на экране дисплея, повысить точность и стабильность измерений, анализировать стационарные, нестационарные и импульсные процессы. Применение процессоров и цифровых методов обработки сигнала расширяет функциональные возможности приборов и дает возможность использовать приборы совместно с ЭВМ и в автоматизированных измерительных системах.
Рис. 7.16. Характеристики полосовых фильтров 2-го класса для измерений нормальной точности:
а — октавный фильтр; б — третьоктавный фильтр
Рис. 7.17. Структурная схема спектрометра с полосовыми фильтрами:
УВ — усилитель входной; ПФ1, ПФ2 ПФЗ, . . ., ΠΦΝ — полосовые фильтры; УО — усилитель оконечный; Д — детектор; ИВ — выходной индикатор
Рис. 7.18. Дискретное преобразование Фурье сложной функции времени (действительная часть)
от —до °° непрерывных функций F(co) и /(ί) учитываются образуемые дискретными значениями функции F (к) и / (н).
Приращение в частотной области равно Δ/, т. е. интервал между смежными дискретными значениями, и At — приращение во временной области; соответствующая дискретному значению F (к) частота равна kAf, а соответствующее дискретному значению f(ri) время составляет nAt. Определяемое выражением (7.6) преобразование называется прямым ДПФ, а выражение (7.7) является определением обратного ДПФ. ДПФ делает возможным применение вычислительных машин. Однако численное ДПФ является процессом трудоемким и малоэффективным, так как при преобразовании N значений нужно N2 умножений комплексных чисел. Более эффективным является быстрое преобразование Фурье (БПФ), выражаемое аналогичным ДПФ алгоритмом, но уменьшающим число необходимых умножений до Mog2iV(MnA). В процессе прямого преобразования Фурье 7V дискретных значений во временной области преобразуются в N комплексных значений в частотной области. Число дискретных значений N равно 2 в определенной степени. Дискретные значения в комплексной частотной области расположены на равных расстояниях в частотном диапазоне от нуля до частоты выборки. Кроме того, результирующий спектр является периодическим с равным частоте выборки периодом, т. е. N комплексных дискретных значений повторяются вдоль оси частот с периодом, равным частоте выборки дискретных значений. Из периодичности спектров (рис. 7.18), получаемых в процессе^прямого преобразования, следует, что дискретные значения, находящиеся между частотой выборки fs и fN =/5/2 (частота Найквиста), являются представлением отрицательных частотных составляющих, а представлением положительных частотных составляющих являются дискретные значения, находящиеся между нулем и частотой Найквиста. Если предположить, что большинство физических процессов происходит в действительной области, процесс преобразования значительно упростится. В этом случае получаемые частотные спектры являются сопряженными и четными, а их составляющие с положительными и отрицательными частотами имеют определенную взаимосвязь.
Рис. 7.19. Упрощенная структурная схема узкополосного частотного анализатора типа 2031
Для определения таких спектров нужны лишь составляющие с положительными или отрицательными частотами. Поэтому N действительных значений во временной области можно преобразовать в Nj2 комплексных значений в частотной области.
При обработке результатов учитывается преобразование исходных функций времени в спектр с частотами от нуля до частоты Найквиста. Дискретные значения в частотной области, определяемые в процессе описанного выше преобразования Фурье, имеют вид
Каждой составляющей F (г) с положительной частотой +/ соответствует составляющая с отрицательной частотой — ϊ , т. е. F(—г ) = dj-ibi.
Относящаяся к частоте г мощность определяется суммой мощностей составляющих с положительной и отрицательной частотами, т. е. 2(а2 + b2). Соответствующие значения нескольких спектров можно подвергать усреднению с целью определения средних значений мощности, а затем после извлечения квадратного корня — определения СКЗ отдельных составляющих.
Упрощенная структурная схема узкополосного частотного анализатора типа 2031 фирмы «Брюль и Къер» в реальном масштабе времени показана на рис. 7.19. Электронное устройство прибора 2031 образует шесть блоков: аналоговый входной блок процессора (АВБП), центральный процессор (ЦП), дисплей (Д), блок универсального устройства сопряжения (УУС), блок аналогового выхода (БАВ) и блок управления (БУ). В приборе используются две 16-разрядные соединительные магистрали (Y и 27), способствующие обмену информацией между указанными выше блоками. Посредством универсальной соединительной магистрали (УСМ) через УУС осуществляется ввод (вывод) данных, дистанционное управление, индикация и связь с другими цифровыми приборами. Общее время управляемого главной программой цикла обработки информации, т. е. коррекции, преобразования Фурье, вычисления значения спектральной мощности и усреднения, составляет 200 мс. Благодаря применению буферных памятей, способствующих одновременному вводу и преобразованию информации, прибор работает в реальном масштабе времени от 0—10 Гц до 0—2 кГц. Разрешение по частоте β анализатора 2031 равно 1/400 его верхнего предела рабочего диапазона. Верхние пределы рабочего частотного диапазона 10 Гц — 20 кГц, а дискретная настройка по порядку 1—2—5. Краткие характеристики узкополосных анализаторов в реальном масштабе времени приведены в табл. П9 приложения.
Узкополосные частотные анализаторы в реальном времени обеспечивают: спектральный и статистический анализы сигналов, изменяющихся во времени; измерения амплитудного спектра мощности, плотности распределения амплитуд; анализ периодических, случайных и однократных процессов; выделение сигналов из шумов, порядковый анализ (с применением дополнительных блоков), допусковый контроль по спектрам, сличение спектров; выбор и запоминание максимальных значений, линейное и экспоненциальное усреднения спектров. Имеют цифровой отсчет основных параметров спектра, выход на аналоговые и цифровые регистрирующие устройства и связь с внешней ЭВМ.
Цифровые частотные анализаторы (спектрометры) измеряют и отображают на экране октавные и третьоктавные частотные спектры в реальном времени. Работа приборов основывается на применении цифровой техники, в частности цифровых методов частотной фильтрации, определении СКЗ значения и усреднения.
Рассмотрим принцип работы двухполюсного цифрового фильтра, обобщенная схема которого приведена на рис. 7.20. Этот фильтр относится к группе рекурсивных фильтров, т. е. к фильтрам, обратная связь которых гарантирует выходной сигнал фильтра в определенный момент времени в форме явной функции предшествующих этому моменту значений входных и выходных сигналов. Характеристика такого фильтра, т. е. форма его частотной кривой, относительная ширина полосы пропускания и конфигурация — фильтр нижних частот, фильтр верхних частот, полосовой или заграждающий фильтр — зависит от коэффициентов умножительных устройств А0, А\, А2, Ви В2.
Рабочий частотный диапазон фильтра определяется задержкой z_1. Задержка z_1 идентична элементарному интервалу выборки при предположении мгновенного выполнения операций сложения и умножения. Следовательно, рабочий диапазон фильтра можно регулировать путем настройки интервала выборки, например увеличения интервала· выборки вдвое приводит к сдвигу рабочего частотного диапазона фильтра на октаву ниже при сохранении относительной ширины полосы пропускания. Свойства и параметры цифрового фильтра, относящиеся к времени реакции и сдвигу фазы, практически идентичны соответствующим характеристикам аналогового фильтра.
Время, затрачиваемое реальными цифровыми фильтрами в процессе умножения, играет важную роль при сравнении с интервалом выборки z-1. Поэтому время задержки подбирается таким, чтобы оно вместе с временем умножения равнялось интервалу выборки. На вход цифрового фильтра подается последовательность дискретных данных, представляющая собой временную функцию анализируемого сигнала. Цифровой фильтр обрабатывает эти данные и выдает на выход соответствующую последовательность дискретных данных, представляющих собой временную функцию сигнала после фильтрации
Рис. 7.21. Упрощенная схема двухполюсного цифрового фильтра анализатора типа 2131
Рис- 7.22. Упрощенная структурная схема цифрового частотного анализатора (спектрометра) типа 2X31
.
Упрощенная структурная схема цифрового частотного анализатора 2131 приведена на рис. 7.22.
В соответствии с этой схемой можно выделить три основные секции прибора 2131: входной усилитель и блок фильтра, детектор СКЗ с устройством усреднения и выходной блок с устройствами управления и индикации. Входной усилитель и блок фильтра обеспечивают формирование, аналого-цифровое преобразование и частотный анализ поступающего на вход сигнала. Цифровой сигнал от блока фильтра возводится в квадрат, усредняется и логарифмически преобразуется в уровни СКЗ (в децибелах) во второй секции прибора, содержащей детектор СКЗ и устройство усреднения. Выходная секция, содержащая устройство управления, индикации и изображения данных, управляет изображением проанализированных и усредненных данных электронно-лучевой трубки и выдачей спектральных данных на внешние приемники информации. Эта секция также управляет вводом цифровых данных от внешней аппаратуры. Интервал времени между двумя очередными цифрами обмена информацией (44 мс) обеспечивает возобновление изображаемого на экране злектронно-лучевой трубки спектра. В табл. П10 приложения даны основные характеристики цифровых частотных анализаторов (спектрометров). Эти приборы применяются для частотного анализа стационарных и импульсных процессов в реальном масштабе времени, анализа и регистрации данных для их последующей цифровой обработки, анализа спектров шума и вибраций, при измерениях спектра электромагнитных полей и др.
Существует новый класс приборов для частотного анализа, основой которого является процессор. Все необходимые программы хранятся либо в памяти системы, либо могут храниться отдельно на кассетах или магнитных дисках. Комплекс программ позволяет сочетать в системе практически все функциональные возможности, необходимые для всестороннего анализа различных сигналов.
Алгоритмы преобразования Фурье и их применение при анализе звуковой информации
Щелбанин, А. В. Алгоритмы преобразования Фурье и их применение при анализе звуковой информации / А. В. Щелбанин, Л. А. Зинченко. — Текст : непосредственный // Молодой ученый. — 2016. — № 20 (124). — С. 29-34. — URL: https://moluch.ru/archive/124/34105/ (дата обращения: 16.03.2024).
В этой статье представлен вашему вниманию обзор алгоритмов преобразования Фурье и их применение при анализе звуковой информации. В статье представлены несколько конкретных реализаций преобразования Фурье, их анализ, а также накладываемые ограничения. В заключении был сделал вывод о возможности применения этих алгоритмов в различных условиях.
В последние годы инженеры-разработчики электронной аппаратуры, инженеры-проектировщики помещений, звукорежиссеры и люди других профессий, так или иначе связанных с обработкой звуковой информации, большое внимание качеству записываемой, хранимой и обрабатываемой звуковой информации. Одним из критериев качества звуковой информации является спектр сигнала, для анализа которого сложились устойчивые методики, некоторые из которых будут освещены в данной статье.
Преобразование Фурье
При анализе звуковой информации одним из наиболее важных параметров исходного звукового сигнала является его спектр. Спектр сигнала — это результат разложения сигнала на более простые в базисе ортогональных функций. В качестве разложения зачастую используется преобразование Фурье, качестве базисных функций спектра используют синусоидальные и косинусоидальные функции.
Преобразование Фурье (ℱ)— операция, ставящая в соответствие каждой функции действительного переменного f(x) её спектр или Фурье-образ :
(1)
Виды преобразования Фурье:
– непериодический непрерывный или дискретный сигнал можно разложить в интеграл Фурье;
– непериодический дискретный сигнал можно разложить в интеграл Фурье;
– периодический непрерывный сигнал можно разложить в бесконечный ряд Фурье;
– периодический дискретный сигнал можно разложить в конечный ряд Фурье.
На практике, обычно, используется последний вид преобразований в связи с тем, что компьютеры способны работать с конечным набором данных.
Дискретное преобразование Фурье
Дискретное преобразование Фурье (ДПФ) (DiscreteFourierTransform, DFT) имеет вид:
(2)
ДПФ ставит в соответствие N отсчетам сигнала x(n), где n = 0…N — 1, N отсчетов дискретного спектра X(k), при этом предполагается, что и сигнал, и спектр сигнала являются периодическими и анализируются на одном периоде повторения. В связи с тем, что вычисление ДФП требует умножений полиномов и вычислений синусов, использование данного алгоритма на практике может оказаться очень ресурсоемким.
Псевдокод метода, реализующего ДПФ, представлен ниже:
for k 0 to N/2
for i 0 to N
ReX[k] ReX[k] + x[i]∙cos(2πik/N)
ImX[k] ImX[k] – (x[i]∙sin(2πik/N))
returnX[]
Быстрое преобразование Фурье
Когда не хватает ресурсов для вычисления ДФП, переходят к быстрому преобразованию Фурье. В методе БПФ используются коэффициента полинома с четными и нечетными индексами, чтобы определить два новых полинома и с четными и нечетными коэффициентами:
(3)
(4)
В этом случае содержит все коэффициенты индексами (двоичное представление которых заканчивается цифрой 0), а содержит все коэффициенты с нечетными индексами (двоичное представление которых заканчивается цифрой 1), тогда спектр дискретного сигнала рассчитывается по формуле:
(5)
Таким образом, задача вычисления спектра сводится к следующим операциям:
- вычислить два полинома и , имеющие степень не выше n/2 d в точках ;
- вычислить спектр, объединив результаты, используя формулу (5).
Псевдокод метода, реализующего БПФ, представлен ниже:
if n = 1
then returnx[]
1
recursiveFFT()
recursiveFFT()
fork 0 to n/2 – 1
returna[]
Каждый вызов recursiveFFT, за исключением рекурсивных вызовов, занимает Θ(n), где n — длина исходного набора дискретных отсчетов. В таком случае, рекуррентное соотношение для временной сложности алгоритма выглядит следующим образом:
(6)
Самым важным ограничением, при реализации БПФ является то, что число дискретных отсчетов n должно быть степенью двойки. В случае, если это условие не выполняется, анализируемый сигнал можно дополнить нулями до степени двойки.
Помимо «классического» алгоритма БПФ также существует множество его вариаций, основная идея которых также основывается на декомпозиции ДПФ до операций с отдельными точками и последующее объединение полученных результатов:
– БПФ по основанию 2 с прореживанием по времени, БПФ по основанию 2 с прореживание по частоте — в этих алгоритмах используется двоично-инверсная перестановка и умножения результатов укороченного ДПФ на поворотные коэффициенты;
– полифазное БПФ (polyphaseFFT) — алгоритм, позволяющий получить очень высокое разрешение по частоте, по сравнению с другими алгоритмами БПФ;
– алгоритм БПФ Кули-Тьюки (Cooley-TukeyFFTalgorithm) и д. р.
Практическая реализация
В учебных целях был разработан анализатор спектра на микроконтроллере AtmelATmega32–16PU с использованием LCD-дисплея 16х2 на базе контроллера HitachiHD44780 LCD. Было принято решение использовать алгоритм ДПФ для реализации данной задачи в связи со следующими аппаратными и программные ограничениями:
– использование LCD-дисплея 16×2 означает, что имеется возможность визуализировать спектр сигнала с 16 дискретными частотами;
– стек микроконтроллер AtmelATmega32–16PU состоит из двух 8-битных регистров, поэтому, использование алгоритмов БПФ не представляется возможным в связи с возможным переполнением стека из-за рекурсии;
– в качестве лингвистического обеспечения для разработки был выбран язык программирования — C. В связи с этим основным лингвистическим ограничением является невозможность передачи массива в качестве аргумента в функцию, а также возвращать результат вычислений в виде массива в явном виде. В связи с этим ограничением для передачи данных из массива в функцию используются указатели;
– для уменьшения количества вычислительных операций, в память микроконтроллера были записаны возможные значения углов, синусов и косинусов.
Ниже представлен фрагмент кода на языке C, реализующий ДПФ на микроконтроллере ATmega32:
void discrete_fourier_transform (int32_t *x, uint32_t *amp, int n)
int32_t re_x, im_x;
Похожие статьи
Исследование процесса цифровой обработки сигнала при работе.
Проведена оценка преобразования Фурье на примере цифровой обработки сигналов, построены графики и смеси сигнала с шумом, исследован спектр сигнала. Ключевые слова: дискретное Преобразование Фурье, спектр сигнала, белый шум, импульс.
Реализация алгоритмов дискретного преобразования Фурье на.
– 336 с. Сайт Wikipedia. Discrete Fourier Transform.
Основные термины (генерируются автоматически): фазовая характеристика, частотный спектр, звуковой сигнал, свойство преобразования, треугольный сигнал, дискретное преобразование, быстрое.
Разработка программного комплекса для обработки НЧ сигналов
Разрабатываемый программный комплекс САЗСМЧ (спектральный анализ звуковых сигналов мозга человека) (рис. 2) оснащен несколькими программными алгоритмами на основе вейвлет-преобразования Добеши (5) [4] и Морле (6) [5, 6].
Преобразование Фурье как основополагающий частотный метод.
частотная область, преобразование, частотная фильтрация, образ, функция, частота, обработка сигналов, меньший размер, линейная фильтрация, дискретное преобразование.
Анализ нестационарных сигналов с помощью. | Молодой ученый
Преобразование Фурье переводит в частотный спектр амплитудно-временное представление сигнала.
Рис. 3. Нестационарный сигнал тока с присутствием разных частот после дискретного преобразования Фурье.
Преобразование Фурье и преобразование Хартли
Сопоставление составляющих спектра Хартли с действительной и мнимой частью спектра Фурье [3]. Свойства преобразования.
Алгоритмы преобразования Фурье и их применение при анализе звуковой информации.
Предварительная обработка речевых сигналов для системы.
речевой сигнал, программная оболочка, предварительная обработка, сигнал, нейронная сеть, WAV, частотный спектр, Обработка сигнала, амплитудный спектр, быстрое преобразование.
Моделирование особенностей бинаурального слуха.
Моделирование особенностей бинаурального слуха и исследование спектрального состава звуковых сигналов.
Рис. 4. Блок-диаграмма проведения измерений. Рис. 5. Полученные осциллограммы для тонового сигнала с частотой 100Гц.
Исследование принципов работы программ распознавания.
Важную роль в программах распознавания звука имеет такой параметр, как частота дискретизации, так как изначально аналоговый сигнал нужно преобразовать в цифровой для дальнейшей обработки. Микрофон конвертирует звуковые колебания в аналоговый.
- Как издать спецвыпуск?
- Правила оформления статей
- Оплата и скидки
Похожие статьи
Исследование процесса цифровой обработки сигнала при работе.
Проведена оценка преобразования Фурье на примере цифровой обработки сигналов, построены графики и смеси сигнала с шумом, исследован спектр сигнала. Ключевые слова: дискретное Преобразование Фурье, спектр сигнала, белый шум, импульс.
Реализация алгоритмов дискретного преобразования Фурье на.
– 336 с. Сайт Wikipedia. Discrete Fourier Transform.
Основные термины (генерируются автоматически): фазовая характеристика, частотный спектр, звуковой сигнал, свойство преобразования, треугольный сигнал, дискретное преобразование, быстрое.
Разработка программного комплекса для обработки НЧ сигналов
Разрабатываемый программный комплекс САЗСМЧ (спектральный анализ звуковых сигналов мозга человека) (рис. 2) оснащен несколькими программными алгоритмами на основе вейвлет-преобразования Добеши (5) [4] и Морле (6) [5, 6].
Преобразование Фурье как основополагающий частотный метод.
частотная область, преобразование, частотная фильтрация, образ, функция, частота, обработка сигналов, меньший размер, линейная фильтрация, дискретное преобразование.
Анализ нестационарных сигналов с помощью. | Молодой ученый
Преобразование Фурье переводит в частотный спектр амплитудно-временное представление сигнала.
Рис. 3. Нестационарный сигнал тока с присутствием разных частот после дискретного преобразования Фурье.
Преобразование Фурье и преобразование Хартли
Сопоставление составляющих спектра Хартли с действительной и мнимой частью спектра Фурье [3]. Свойства преобразования.
Алгоритмы преобразования Фурье и их применение при анализе звуковой информации.
Предварительная обработка речевых сигналов для системы.
речевой сигнал, программная оболочка, предварительная обработка, сигнал, нейронная сеть, WAV, частотный спектр, Обработка сигнала, амплитудный спектр, быстрое преобразование.
Моделирование особенностей бинаурального слуха.
Моделирование особенностей бинаурального слуха и исследование спектрального состава звуковых сигналов.
Рис. 4. Блок-диаграмма проведения измерений. Рис. 5. Полученные осциллограммы для тонового сигнала с частотой 100Гц.
Исследование принципов работы программ распознавания.
Важную роль в программах распознавания звука имеет такой параметр, как частота дискретизации, так как изначально аналоговый сигнал нужно преобразовать в цифровой для дальнейшей обработки. Микрофон конвертирует звуковые колебания в аналоговый.
БПФ-анализатор (анализатор спектра на основе быстрого преобразования Фурье)
В зависимости от типа измерения к максимальной входной частоте анализатора спектра могут предъявляться разные требования. Принимая во внимание различные возможные конфигурации анализаторов спектра, диапазоны входных частот можно разделить следующим образом:
- низкочастотный диапазон (AF) – до приблизительно 1 МГц;
- радиочастотный диапазон (RF) – до приблизительно 3 ГГц;
- диапазон СВЧ – до приблизительно 40 ГГц;
- миллиметровый диапазон – выше 40 ГГц
Диапазон AF (до приблизительно 1 МГц) охватывает низкочастотную электронику, а также аудиотехнику и механику. В радиочастотном диапазоне в основном используются приложения беспроводной связи, такие как мобильная связь, звуковое и телевизионное вещание, в то время как более высокие диапазоны частот (сантиметровые и миллиметровые волны) всё больше используются для широкополосных приложений, таких как каналы цифровой радиосвязи.
В зависимости частотного диапазона анализаторы могут быть построены по той или иной концепции. В следующих разделах подробно описаны две основные концепции построения анализаторов спектра.
БПФ-анализатор (анализатор спектра на основе быстрого преобразования Фурье)
Как объяснялось в главе 2, частотный спектр сигнала определяется его временной характеристикой. Временная и частотная области связаны друг с другом посредством преобразования Фурье. Таким образом, уравнение 1 можно использовать для вычисления спектра сигнала, записанного во временной области. Для точного вычисления частотного спектра входного сигнала потребуется бесконечный период наблюдения. Еще одним предварительным условием уравнения 1 является то, что в каждый момент времени должна быть известна амплитуда сигнала. Результатом этого расчета будет непрерывный спектр, и поэтому разрешение по частоте будет неограниченным.
Очевидно, что такие точные вычисления на практике невозможны. Тем не менее, при определенных условиях спектр может быть определен с достаточной точностью.
На практике преобразование Фурье выполняется с помощью цифровой обработки сигналов, поэтому анализируемый сигнал должен быть подвергнут дискретизации по времени и квантованию по амплитуде аналого-цифровым преобразователем. Посредством дискретизации непрерывный входной сигнал преобразуется в дискретный по времени сигнал, и информация о временной характеристике теряется. Следовательно, ширина полосы входного сигнала должна быть ограничена, иначе из-за дискретизации более высокие частоты сигнала вызовут эффекты наложения спектров (смотрите рисунок 1). Согласно теореме Найквиста-Шеннона-Котельникова о дискретизации, частота дискретизации fs должна быть как минимум вдвое выше, чем ширина полосы Bвх входного сигнала:
\[f_s \ge 2 \cdot B_ \qquad (1)\]
- fs – частота дискретизации;
- Bвх – ширина полосы сигнала;
- Ts – период дискретизации.
Для дискретизации сигналов, прошедших фильтр нижних частот (называемых низкочастотными сигналами), минимальная необходимая частота дискретизации определяется максимальной частотой сигнала fвх,max. Уравнение 1 преобразуется в следующее:
\[f_s \ge 2 \cdot f_ \qquad (2)\]
Если \(f_s = 2 \cdot f_\) , возможно, что из-за неблагоприятных условий выборки будет невозможно восстановить сигнал из значений выборок. Более того, в этом случае для ограничения полосы потребовался бы фильтр нижних частот с бесконечной крутизной характеристики. Поэтому на практике используются частоты дискретизации, намного превышающие 2fвх,max.
Для преобразования Фурье используется только часть сигнала. То есть для расчета используется только ограниченное количество выборок, N. Этот процесс называется «оконной обработкой». Входной сигнал (рисунок 2a) умножается на определенную оконную функцию до или после дискретизации во временной области. В примере, показанном на рисунке 2, используется прямоугольное окно (рисунок 2b). Результат умножения показан на рисунке 2c.
Вычисление спектра сигнала из выборок сигнала во временной области называется дискретным преобразованием Фурье (ДПФ).
Уравнение 1 преобразуется в следующее:
- k – номер частотного отсчета, где k = 0, 1, 2, . ;
- n – номер временного отсчета;
- x(nTs) – выборки в точке n·Ts, где n = 0, 1, 2, . ;
- N – длина ДПФ, т.е. общее количество выборок, используемых для вычисления преобразования Фурье.
Результатом дискретного преобразования Фурье является дискретный частотный спектр (рисунок 2d). Вычисленный спектр состоит из отдельных компонентов, соответствующих отдельным частотам, которые вычисляются как:
\[f(k) = k \cdot \frac = k \cdot \frac \qquad (4)\]
- f(k) – дискретный частотный компонент;
- k – номер дискретного частотного компонента, где k = 0, 1, 2, …;
- fs – частота дискретизации;
- N – длина дискретного преобразования Фурье.
Можно видеть, что разрешение (минимальный интервал между двумя спектральными соседними компонентами входного сигнала, f(k) и f(k+1), который может быть отображен) зависит от времени наблюдения N·Ts. По мере увеличения необходимого разрешения увеличивается и требуемое время наблюдения.
При дискретизации спектр сигнала становится периодическим с периодом fs (рисунок 1). Следовательно, на дискретном частотном спектре на рисунке 2d частотный компонент отображается на частотном отсчете f(k=6). При рассмотрении частотного диапазона от 0 до fs на рисунке 1a становится очевидным, что этот компонент находится на частоте fs – fвх.
В примере, показанном на рисунке 2, возможно точное вычисление спектра сигнала. В дискретном частотном спектре есть частотный отсчет, который точно соответствует частоте сигнала. Для этого должны быть выполнены следующие требования:
- сигнал должен быть периодическим (период T0);
- время наблюдения N·Ts должно быть целым числом, кратным периоду T0 сигнала.
На практике эти требования обычно не выполняются, поэтому результат преобразования Фурье отличается от ожидаемого. Это отклонение характеризуется более широким спектром сигнала и ошибкой в амплитуде. Оба эффекта описаны ниже.
Перемножение входного сигнала и оконной функции во временной области соответствует свертке в частотной области [1]. В частотной области величина передаточной функции прямоугольного окна, показанного на рисунке 2, приводит к синусоидальной оконной функции:
- W(f) – оконная функция в частотной области;
- N·Ts – ширина окна
В дополнение к отчетливым вторичным максимумам, нулевые значения получаются кратными 1/(N·Ts). Из-за свертки с помощью оконной функции результирующий спектр сигнала «размывается», и поэтому он становится заметно шире. Это называется эффектом растекания спектра.
Если входной сигнал периодический, а время наблюдения N·Ts является целым кратным периоду, эффект растекания при прямоугольном окне отсутствует, поскольку, за исключением частоты сигнала, нули всегда попадают в соседние частотные отсчеты (рисунок 2d).
Если эти условия не выполняются, что является обычным случаем, то частотный отсчет, соответствующий частоте сигнала, отсутствует. Этот случай показан на рисунке 3. Спектр, полученный в результате дискретного преобразования, заметно шире, поскольку фактическая частота сигнала находится между двумя частотными отсчетами, а нули оконной функции больше не попадают в соседние частотные отсчеты.
Как показано на рисунке 3d, в этом случае также возникает ошибка в амплитуде. При постоянном времени наблюдения величина этой ошибки в амплитуде зависит от частоты входного сигнала (рисунок 4). Ошибка будет максимальна, если частота сигнала находится точно между двумя частотными отсчетами.
Увеличивая время наблюдения, можно уменьшить абсолютное расширение спектра за счет более высокого разрешения, но максимально возможная ошибка амплитуды остается неизменной. Однако эти два эффекта можно уменьшить, используя вместо прямоугольного окна оптимизированную оконную обработку. Такие оконные функции показывают более низкие вторичные максимумы в частотной области, и поэтому эффект растекания уменьшается, как показано на рисунке 5. Дополнительную информацию об оконных функциях можно найти в [2] и [3].
Для получения высокой точности, необходимой для спектрального анализа, обычно используется окно с плоской вершиной (flat top window). Максимальная ошибка по амплитуде этой оконной функции составляет всего 0,05 дБ. Ее недостатком является относительно широкий главный лепесток, который снижает разрешение по частоте.
Количество вычислительных операций, необходимых для преобразования Фурье, может быть уменьшено с помощью оптимизированных алгоритмов. Наиболее широко используемый метод – быстрое преобразование Фурье (БПФ, FFT). Анализаторы спектра, работающие на этом принципе, называются БПФ-анализаторами. Структурная схема такого анализатора показана на рисунке 6.
Чтобы придерживаться теоремы о дискретизации, ширина полосы входного сигнала ограничивается аналоговым фильтром нижних частот (частота среза fср = fвх,max) перед аналого-цифровым преобразователем. После дискретизации квантованные значения сохраняются в памяти, а затем используются для вычисления сигнала в частотной области. И в конце частотный спектр отображается на дисплее.
Квантование выборок вызывает шум квантования, который вызывает ограничение динамического диапазона в сторону его нижнего предела. Чем выше разрешение (количество бит) используемого аналого-цифрового преобразователя, тем ниже шум квантования.
Поскольку у доступных аналого-цифровых преобразователей высокого разрешения полоса пропускания ограничена, для БПФ-анализаторов необходимо искать компромисс между динамическим диапазоном и максимальной входной частотой. В настоящее время широкий динамический диапазон около 100 дБ может быть достигнут у БПФ-анализаторов только для низкочастотных приложений до 100 кГц. Более высокая полоса пропускания неизбежно ведет к меньшему динамическому диапазону.
В отличие от других концепций построения анализаторов, во время сложного преобразования Фурье фазовая информация о сигнале не теряется. Таким образом, БПФ-анализаторы могут определять комплексный спектр, т.е. содержащий информацию и об амплитуде, и о фазе. Если они обладают достаточно высокой скоростью вычислений, то они позволяют проводить анализ даже в реальном времени.
БПФ-анализаторы не подходят для анализа импульсных сигналов (рисунок 7). Результат быстрого преобразования Фурье зависит от выбранного участка временной функции. Поэтому для правильного анализа необходимо знать некоторые параметры анализируемого сигнала для запуска конкретного измерения.
Справочная информация
- Brigham, E.O.: The Fast Fourier Transform and its Application. Prentice Hall, 1988.
- Parks, T.W., Burrus, C.S.: Digital Filter Design. John Wiley & Sons, Inc., New York, Chichester, Brisbane, Toronto, Singapore, 1987.
- Oppenheim, A.V., Schafer, R.W.: Discrete-Time Signal Processing. Prentice Hall, 1989.