Гармоника в электротехнике

Лабораторные работы по курсу физики / Лабораторные работы 2 семестра / Лаб.раб.№2. Переменный ток

Лабораторная работа

ИЗУЧЕНИЕ ПРОЦЕССОВ, ПРОИСХОДЯЩИХ В ЦЕПИ

ГАРМОНИЧЕСКОГО ПЕРЕМЕННОГО ТОКА

Приборы и принадлежности: катушка индуктивности, батарея конденсаторов, реостат, амперметр, вольтметр, источник переменного напряжения.

Цель работы: определить индуктивность катушки, емкость конденсатора, экспериментально проверить закон Ома для полной цепи переменного тока.

ТЕОРИЯ

Переменным током называется такой электрический ток, который с течением времени изменяется по величине и направлению.

Гармоническим ( синусоидальным) током называется переменный ток, который с течением времени изменяется по закону синуса или косинуса:

i = Im sin ( t —  )

или i = Im cos ( t —  )

Здесь i — мгновенное значение переменного тока — величина тока, соответствующая данному моменту времени,

Im — максимальное ( амплитудное ) значение тока,

(t —  )- фаза синусоидального тока,

 = 2 — круговая ( циклическая ) частота тока,

 — частота тока,

 — начальная фаза.

Гармонический ток создается синусоидальным или косинусоидальным напряжением той же частоты

u = Um sint

u = Um cost

Для характеристики силы переменного тока сопоставляют его среднее тепловое действие с тепловым действием постоянного тока соответствующей силы и вводят понятие действующего ( эффективного) значения переменного тока. Эффективное значение переменного тока численно равно значению такого постоянного тока, который выделяет в данной цепи за единицу времени такое же количество тепла как и данный переменный ток. Математически эта величина равна среднеквадратичному за период значению силы переменного тока и связана с его максимальным значением соотношением:

Iэф =

Аналогично определяется и эффективное значение напряжения

Uэф =

При расчете цепей переменного тока приходится производить сложение и вычитание синусоидальных токов или напряжений, имеющих одинаковую частоту, но в общем случае различные амплитуды и начальные фазы. Решение подобных задач значительно облегчается, если применить метод векторных диаграмм, основанный на изображении величины тока или напряжения с помощью вращающихся векторов. Для этого амплитудные значения тока Im и напряжения Um представляют векторами, вращающимися в плоскости OXY ( обычно вращение берут против часовой стрелки ) вокруг начала координат O с угловой скоростью, соответствующей циклической частоте  . Угол поворота векторов t отсчитывают от оси OX. На рис.1а изображено положение векторов для момента времени t = 0, на рис.2б для времени t>0. Проекции векторов Im и Um на ось OY будут определять мгновенные значения тока i=Imsint и напряжения U=Umsint

Цепь переменного тока с активным сопротивлением

Активным ( омическим ) сопротивлением в цепях переменного тока называют сопротивление, в котором происходит необратимый процесс превращения электрической энергии в какой-либо иной вид, например, в тепловую. Это сопротивление зависит от материала проводника, его размеров и формы. Для однородного по составу проводника при постоянном сечении S и длине l сопротивление рассчитывается по формуле R=, где — удельное сопротивление,характеризующее материал проводника, зависит от температуры: =0(1+t0). Поэтому активное сопротивление зависит также от температуры проводника.

В цепи переменного тока, содержащей активное сопротивление ( Рис.2а), как и в случае постоянного тока, выполняется закон Ома, который может быть применен к мгновенным, амплитудным и эффективным значениям тока и напряжения:

i= ; Im= ; Iэф=

Индуктивность в цепи переменного тока

Рассмотрим цепь переменного тока, в которую включена катушка индуктивностью L ( Рис.3а). Пусть напряжение в цепи изменяется по закону u=Umsin t . При протекании переменного тока через катушку на концах катушки возникает ЭДС самоиндукции &i = — L .

Если активное сопротивление катушки принять равным нулю, то внешнее приложенное напряжение U, согласно закону Ома для цепи, содержащей ЭДС, по величине равно и по направлению противоположно ЭДС самоиндукции, то есть

U=-&i = L

или Umsin t=L , откуда sin t и di = sin t dt интегрируя последнее выражение получим:

i = — t = t — 2 ),

где — амплитуда тока.

Тогда по аналогии с законом Ома для участка цепи можно записать, что Im=, где величинуможно рассматривать как индуктивное сопротивление.

При оценке фазовых соотношений между током и напряжением на индуктивности видно, что ток в цепи, подобно напряжению, имеет синусоидальный характер, но по фазе отстает на угол 2, то есть в момент, когда напряжение на катушке достигает максимума сила тока равна нулю, а в момент, когда напряжение становится равным нулю, сила тока максимальна по модулю. Графики тока и напряжения, а также векторная диаграмма цепи переменного тока, содержащей индуктивность, представлены на рис . 3 (б, в)_.

Емкость в цепи переменного тока

Рассмотрим цепь переменного тока, в которую включен конденсатор С ( Рис.4а).

Пусть напряжение в цепи изменяется по закону u = Um sin t. При напряжении U на конденсаторе емкости С заряд на его обкладках будет равен q=CU.

Периодическое изменение U вызывает периодическое изменение q, и возникает емкостный ток:

i=

Продифференцировав это выражение ,получим:

i=CUm cos t = CUm sin ( t + /2),

где СUm=Im — амплитуда тока.

Cравнивая с законом Ома для участка цепи Im=Um/XC , получаем

СUm = Um / XC , отсюда

XC = 1 /  C .

Видно, что величина XC=1/C играет роль сопротивления конденсатора переменному току, она называется емкостным сопротивлением.

Из сравнения фазы тока и напряжения видно, что ток в цепи конденсатора, подобно напряжению, имеет синусоидальный характер, но по фазе опережает напряжение на угол  / 2.

Цепь переменного тока с активным, индуктивным и

емкостным сопротивлениями.

Рассмотрим основные соотношения электрических величин в цепи переменного тока с индуктивностью, емкостью и активным сопротивлением, соединенными последовательно ( Рис .5 а ).

При последовательном соединении проводников, ток, протекающий через сопротивление одинаков

iL=iC=iR=Im sin t

Полное напряжение цепи будет складываться из падений напряжения на индуктивности, емкости и активном сопротивлении. Составим векторную диаграмму цепи, пользуясь результатами, полученными выше.

В произвольном масштабе отложим вектор амплитуды тока, оди наковый для всех сопротивлений и укажем направление его вращения ( Рис. 5б). Вектор амплитуды напряжения на активном сопротивлении UmR=ImR отложим по направлению вектора тока, так как эти величины совпадают по фазе. Вектор амплитуды напряжения на индуктивном сопротивлении UmL=ImL отложим вверх под углом /2 к вектору тока Im , так как это напряжение опережает ток по фазе на угол /2. Вектор амплитуды напряжения на емкости UmC=ImC отложим вниз под углом /2 к вектору Im, так как это напряжение отстает от тока на угол /2. Сложив геометрически векторы UmL, UmC и UmR, получим вектор полного напряжения Um, приложенного ко всей цепи ( Рис. 5б).

Применив теорему Пифагора, найдем

Um===

=

Отсюда

Im=

Последняя формула представляет собой закон Ома для полной цепи переменного тока для амплитудных значений. Полным сопротивлением или импедансом цепи называется величина

Z =

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

Угол сдвига фаз между током и напряжением ( угол  на рис 5б) может быть определен из соотношений

tg =

Импеданс тканей организма

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

Наилучшую электропроводность имеют спинно-мозговая жидкость, сыворотка крови, несколько меньшую — цельная кровь и мышечная ткань. Значительно меньше электропроводность тканей внутренних органов, а также нервной, жировой и соединительной тканей. Плохими проводниками являются роговой слой кожи, связки и сухожилия, костная ткань без надкостницы. В ряде случаев их можно отнести даже к диэлектрикам.

Ткани организма состоят из структурных организмов — клеток, омываемых тканевой жидкостью. Цитоплазма клетки отделена от тканевой жидкости клеточной мембраной. Тканевая жидкость и цитоплазма — хорошие проводники. Клеточная мембрана проводит элеткрический ток плохо. Такая система напоминает конденсатор и обладает электрической емкостью.

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

Как показывает опыт, ткани организма не имеют практически заметной индуктивности, но обладают емкостью и активным сопротивлением. Поэтому при прохожденити переменного тока через ткани организма следует учитывать их полное сопротивление, или импеданс.

Электрические параметры участка тканей организма, находящиеся между наложенными на поверхность тела электродами, можно представить в виде эквивалентных электрических схем. В наиболее упрощенном виде эта схема для слоя кожи и подкожной клетчатки может быть представлена как значительная емкость C ( Рис.6а), шунтированная большим сопротивлением R и включенная последовательно со значительно меньшим сопротивлением R*, а для глубоко лежащих тканей — это включенные параллельно сопротивление и емкость ( Рис.6б).

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

частности, кровонаполнение сосудов. На этом основан один из способов исследования периферического кровообращения — РЕОГРАФИЯ.

При этом в течение цикла сердечной деятельности регистрируется изменение импеданса определенного участка тканей, на границах которого накладываются электроды. При реографии применяется переменный ток частотой 20 — 30 кГц. Этим методом получают реограммы головного мозга — реоэнцефалограммы, печени, легких, магистральных сосудов и т.д.

Зависимость импеданса тканей организма от частоты переменного тока позволяет оценить жизнеспособность этих тканей, что важно знать, например, при пересадке ( трансплантации) тканей и органов. На рис.7 представлены частотная зависимость импеданса здоровой ткани (1) и мертвой (2) , убитой кипячением в воде

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

Порядок выполнения работы.

Упражнение 1. Определение индуктивности катушки

  1. Проверить электрическую цепь (рис.8), состоящую из последовательно соединенных катушки индуктивности L, батареи конденсаторов C, амперметра A и реостата R.

2. Подключить вольтметр для измерения напряжения на катушке.

3. Поставить движок реостата в среднее положение.

4. Включить цепь и, изменяя сопротивление реостата, получить пять различных значений тока ( в пределах от 0,1 до 0,3 A) и напряжения.

5. Вычислить индуктивное сопротивление катушки по формуле

XL=, гдеR — активное сопротивление

катушки ( указано на катушке).

6. Найти среднее значение XL и рассчитать индуктивность катушки

, Гц

7. Результаты измерений и вычислений занести в таблицу 1.

Таблица 1

№ п/п

U (B)

I (A)

R (Ом)

XL (Ом)

L ( Гн )

Сумма _________

Среднее _________

Упражнение 2. Определение емкости конденсатора.

1. Переключить вольтметр для измерения напряжения на конденсаторе C.

2. Поставить движок реостата в среднее положение.

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

4. Вычислить емкостное сопротивление по формуле

5. Найти среднее значение и рассчитать емкость конденсатора:

6. Результаты измерений и вычислений записать в таблицу 2.

Таблица 2

№ п/п

U (B)

I (A)

XC(Ом)

С (Ф)

Cумма__________

Среднее ___________

Упражнение 3. Проверка закона Ома для полной цепи переменного тока.

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

2. Включить цепь и измерить одно значение напряжения и силы тока (в пределах 0,1 — 0,3 A) на этом участке.

3. Вычислить полное сопротивление участка АВ:

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

и сравнить с результатом, полученным в пункте 3.

5. Результаты измерений и вычислений занести в протокол.

Контрольные вопросы.

1. Переменный ток.

2. Уравнение и график гармонического тока.

3. Мгновенное, амплитудное и эффективное значение силы переменного тока и ЭДС.

4. Цепь переменного тока с активным сопротивлением R.

5. Цепь переменного тока с емкостным сопротивлением XC.

6. Цепь переменного тока с индуктивным сопротивлением XL.

7. Вывод закона Ома для полной цепи переменного тока. Импеданс цепи.

8. Понятие о сдвиге фаз в цепи переменного тока с XL, XC и в цепи с полным сопротивлением. В каких случаях сдвиг фаз равен нулю

9. Понятие о резонансе напряжений.

10. Импеданс тканей организма. Эквивалентные схемы тканей.

11. Понятие о реографии, ее виды.

12.Частотная зависимость импеданса тканей, ее использование в медицине.

Гармонические колебания

На хабре было несколько статей по преобразованию Фурье и о всяких красивостях типа Цифровой Обработки Сигналов (ЦОС), но неискушённому пользователю совершенно не понятно, зачем всё это нужно и где, а главное как это применить.

АЧХ шума.
Лично мне после прочтения этих статей (например, этой ) не стало понятно, что это и зачем оно нужно в реальной жизни, хотя было интересно и красиво.
Хочется не просто поглядеть красивые картинки, а так сказать, ощутить нутром, что и как работает. И я приведу конкретный пример с генерацией и обработкой звуковых файлов. Можно будет и послушать звук, и поглядеть его спектр, и понять, почему это так.
Статья не будет интересна тем, кто владеет теорией функций комплексной переменной, ЦОС и прочими страшными темами. Она скорее для любопытствующих, школьников, студентов и им сочувствующих :).
Сразу оговорюсь, я не математик, и многие вещи могу даже сказать неправильно (поправляйте личным сообщением), и данную статью пишу, опираясь на собственный опыт и собственное понимание текущих процессов. Если вы готовы, то поехали.

Пару слов о матчасти

Если мы вспомним школьный курс математики, то для построения графика синуса мы использовали круг. В общем-то так и получается, что вращательное движение можно превратить в синусоиду (как и любое гармоническое колебание). Самое лучшая иллюстрация этого процесса приведена в википедии

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

f(x) = A sin (ωt + φ),
где A — длина вектора (амплитуда колебаний), φ — начальный угол (фаза) вектора в нулевой момент времени, ω — угловая скорость вращения, которая равна:
ω=2 πf, где f — частота в Герцах.
Как мы видим, что зная частоту сигнала, амплитуду и угол, мы можем построить гармонический сигнал.
Магия начинается тогда, когда оказывается, что представление абсолютно любого сигнала можно представить в виде суммы (зачастую бесконечной) различных синусоид. Иначе говоря, в виде ряда Фурье.
Я приведу пример из английской википедии. Для примера возьмём пилообразный сигнал.

Пилообразный сигнал
Его сумма будет представлена следующей формулой:

Если мы будем по очерёдно суммировать, брать сначала n=1, затем n=2 и т.д., то увидим, как у нас гармонический синусоидальный сигнал постепенно превращается в пилу:

Наверное красивее всего это иллюстрирует одна программа, найденная мной на просторах сети. Выше уже говорилось, что график синуса является проекцией вращающегося вектора, а как же быть в случае более сложных сигналов? Это, как ни странно, проекция множества вращающихся векторов, а точнее их суммы, и выглядит это всё так:

Вектора рисуют пилу.
Вообще рекомендую сходить самим по и попробовать самим поиграться с параметрами, и посмотреть как меняется сигнал. ИМХО более наглядной игрушки для понимания я ещё не встречал.
Ещё следует заметить, что есть обратная процедура, позволяющая получить из данного сигнала частоту, амплитуду и начальную фазу (угол), которое называется Преобразование Фурье.

Разложение в ряд Фурье некоторых известных периодических функций (отсюда)
Я детально на нём останавливаться не буду, но покажу, как это можно применить по жизни. В списке литературы порекомендую то, где можно почитать подробнее о матчасти.

Переходим к практическим упражнениям!

Мне кажется, что каждый студент задаётся вопросом, сидя на лекции, например по матану: зачем мне весь этот бред? И как правило, не найдя ответа в обозримом будущем, к сожалению, теряет интерес к предмету. Поэтому я сразу покажу практическое применение данных знаний, а вы эти знания уже будете осваивать сами :).
Всё дальнейшее я буду реализовывать на сях. Делал всё, конечно, под Linux, но никакой специфики не использовал, по идее программа будет компилироваться и работать под другими платформами.
Для начала напишем программу для формирования звукового файла. Был взят wav-файл, как самый простой. Прочитать про его структуру можно .
Если кратко, то структура wav-файла описывается так: заголовок, который описывает формат файла, и далее идёт (в нашем случае) массив 16-ти битных данных (остроконечник) длиной: частота_дискретизации*t секунд или 44100*t штук.
Для формирования звукового файла был взят пример . Я его немного модифицировал, исправил ошибки, и окончательная версия с моими правками теперь лежит на гитхабе тут
github.com/dlinyj/generate_wav
Сгенерируем двухсекундный звуковой файл с чистым синусом частотой 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; i<BUF_SIZE; i++) { buffer +=(int)(amplitude * sin((float)(2*M_PI*i*freq_Hz/S_RATE))); } write_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=(float)value; j+=2; if (j > 2*size_array) break; }

Массив для быстрого преобразования Фурье должен представлять собой последовательность {re, im, re, im,… re, im}, где fft_size=1<< p — число точек БПФ. Объясняю нормальным языком:
это массив комплексных чисел. Я даже боюсь представить, где используется комплексное преобразование Фурье, но в нашем случае мнимая часть у нас равна нулю, а действительная равна значению каждой точке масива.
Ещё одна особенность именно быстрого преобразования Фурье, что оно обсчитывает массивы, кратные только степени двойки. В результате мы должны вычислить минимальную степень двойки:
int p2=(int)(log2(header.bytes_in_data/header.bytes_by_capture));
Логарифм от количество байт в данных, делённых на количество байт в одной точке.
После этого считаем поворотные множители:
fft_make(p2,c);// функция расчёта поворотных множителей для БПФ (первый параметр степень двойки, второй алокированный массив поворотных множителей).
И скармливаем наш считанный массив в преобразователь Фурье:
fft_calc(p2, c, in, out, 1); //(единица означает, что мы получаем нормализованный массив).
На выходе мы получаем комплексные числа вида {re, im, re, im,… re, im}. Для тех, кто не знает, что такое комплексное число, поясню. Я не зря начал эту статью с кучи вращающихся векторов и кучи гифок. Так вот, вектор на комплесной плоскости определяется действительной координатой 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<(size_array);i+=2) { fprintf(logfile,»%.6f %f\n»,cur_freq, (sqrt(out*out+out*out))); cur_freq+=delta; }
В результате получаем файл примерно такого вида:
… 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 #set yrange plot «test.txt» using 1:2 title «AFC» with lines linestyle 1
Обратите внимание на ограничение в скрипте на количество точек по X: set xrange . Частота дискретизации у нас 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; i<BUF_SIZE; i++) { buffer +=(int)amplitude*d_random(-1.0, 1.0); //nois } write_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; i<BUF_SIZE; i++) { //meandr if (!(i%(S_RATE/((int)freq_Hz/2)))) { if (meandr_value==32767) { meandr_value=-32767; } else { meandr_value=32767; } } buffer=meandr_value; } write_wav(«test.wav», BUF_SIZE, buffer, S_RATE); return 0; }
В результате получим звуковой файл (опять же, советую послушать), который сразу надо посмотреть в audacity
Его величество — меандр или меандр здорового человека
Не будем томиться и поглядим его спектр:
Спектр меандра
Пока не очень что-то понятно, что такое… А давайте поглядим несколько первых гармоник:
Первые гармоники
Совсем другое дело! Ну-ка поглядим табличку. Смотрите-ка, у нас есть только 1, 3, 5 и т.д., т.е. нечётные гармоники. Мы так и видим, что у нас первая гармоника 25 Гц, следующая (третья) 75 Гц, затем 125 Гц и т.д., при этом у нас амплитуда постепенно уменьшается. Теория сошлась с практикой!
А теперь внимание! В реальной жизни сигнал меандра у нас имеет бесконечную сумму гармоник всё более и более высокой частоты, но как правило, реальные электрические цепи не могут пропускать частоты выше какой-то частоты (в силу индуктивности и ёмкости дорожек). В результате на экране осциллографа можно часто увидеть вот такой сигнал:
Меандр курильщика
Эта картинка прям как картинка из википедии, где для примера меандра берутся не все частоты, а только первые несколько.
Сумма первых гармоник, и как меняется сигнал
Меандр так же активно используется в радиотехнике (надо сказать, что — это основа всей цифровой техники), и стоит понимать что при длинных цепях его может отфильтровать так, что, родная мама не узнает. Его так же используют для проверки АЧХ различных приборов. Ещё интересный факт, что глушилки телевизоров работали именно по принципу высших гармоник, когда сама микросхема генерировала меандр десятки МГц, а его высшие гармоники могли иметь частоты сотни МГц, как раз на частоте работы телевизора, и высшие гармоники успешно глушили сигнал вещания телевизора.
Вообще тема подобных экспериментов бесконечная, и вы можете теперь сами её продолжить.

Рекомендации по прочтению

Книга
Для тех, кто нифига не понял, что мы тут делаем, или наоборот, для тех, кто понял, но хочет разобраться ещё лучше, а так же для студентам, изучающим ЦОС, крайне рекомендую эту книгу. Это ЦОС для чайников, которым является автор данного поста. Там доступным даже для ребёнка языком рассказываются сложнейшие понятия.

Заключение

В заключении хочу сказать, что математика — царица наук, но без реального применения многие люди теряют к ней интерес. Надеюсь, данный пост подстегнёт вас к изучению такого замечательного предмета, как обработка сигналов, и вообще аналоговой схемотехнике (затыкайте уши, чтобы не вытекали мозги!). 🙂
Удачи!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *