Часто в электронных схемах требуется сгенерировать разные типы сигналов, имеющих различные частоты и формы, такие как меандры, прямоугольные, треугольные, пилообразные сигналы и различные импульсы.
Эти сигналы различной формы могут использоваться в качестве сигналов синхронизации, тактирующих сигналов или в качестве запускающих синхроимпульсов. В первую очередь необходимо понять основные характеристики, описывающие электрические сигналы.
С технической точки зрения, электрические сигналы являются визуальным представлением изменения напряжения или тока с течением времени. То есть, фактически — это график изменения напряжения и тока, где по горизонтальной оси мы откладываем время, а по вертикальной оси — значения напряжения или тока в этот момент времени. Существует множество различных типов электрических сигналов, но в целом, все они могут быть разбиты на две основные группы.
- Однополярные сигналы — это электрические сигналы, которые всегда положительные или всегда отрицательные, не пересекающие горизонтальную ось. К однонаправленным сигналам относятся меандр, тактовые импульсы и запускающие импульсы.
- Двухполярные сигналы — эти электрические сигналы также называют чередующимися сигналами, так как они чередуют положительные значения с отрицательными, постоянно пересекая нулевое значение. Двухполярные сигналы имеют периодическое изменение знака своей амплитуды. Наиболее распространенным из двунаправленных сигналов, является синусоидальный.
Будучи однонаправленными, двунаправленными, симметричными, несимметричными, простыми или сложными, все электрические сигналы имеют три общие характеристики:
- Период — это отрезок времени, через который сигнал начинает повторяться. Это временное значение также называют временем периода для синусоид или шириной импульса для меандров и обозначают буквой T.
- Частота — это число раз, которое сигнал повторяет сам себя за период времени равный 1 секунде. Частота является величиной, обратной периоду времени, ( *** QuickLaTeX cannot compile formula: f = 1/T *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37 ). Единицей измерения частоты является Герц (Гц). Частотой в 1Гц, обладает сигнал, повторяющий 1 раз за 1 cекунду.
- Амплитуда — это величина изменения сигнала. Измеряется в Вольтах (В) или Амперах (А), в зависимости от того, какую временную зависимость (напряжения или тока) мы используем.
Периодические сигналы
Периодические сигналы являются самыми распространенными, поскольку включают в себя синусоиды. Переменный ток в розетке дома представляет из себя синусоиду, плавно изменяющуюся с течением времени с частотой 50Гц.
Время, которое проходит между отдельными повторениями цикла синусоиды называется ее периодом. Другими словами, это время, необходимое для того, чтобы сигнал начал повторяться.
Период может изменяться от долей секунды до тысяч секунд, так как он связан с его частотой. Например, синусоидальный сигнал, которому требуется 1 секунда для совершения полного цикла, имеет период равный одной секунде. Аналогично, для синусоидального сигнала, которому требуется 5 секунд для совершения полного цикла, имеет период равный 5 секундам, и так далее.
Итак, отрезок времени, который требуется для сигнала, чтобы завершить полный цикл своего изменения, прежде чем он вновь повторится, называется периодом сигнала и измеряется в секундах. Мы можем выразить сигнал в виде числа периодов T в секунду, как показано на рисунке ниже.
Ссылки
- [standartgost.ru/%D0%93%D0%9E%D0%A1%D0%A2%2016465-70 ГОСТ 16465-70].
Это заготовка статьи об электронике. Вы можете помочь проекту, дополнив её. |
: неверное или отсутствующее изображение | Для улучшения этой статьи желательно:
|
Синусоидальный сигнал
Время периода часто измеряется в секундах ( с ), миллисекундах (мс) и микросекундах (мкс).
Для синусоидальной формы волны, время периода сигнала также можно выражать в градусах, либо в радианах, учитывая, что один полный цикл равен 360° (Т = 360°), или, если в радианах, то
*** QuickLaTeX cannot compile formula: 2 \pi *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37 (T = *** QuickLaTeX cannot compile formula: 2 \pi *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
).
Период и частота математически являются обратными друг другу величинами. С уменьшением времени периода сигнала, его частота увеличивается и наоборот.
Соотношения между периодом сигнала и его частотой:
*** QuickLaTeX cannot compile formula: f = \frac{1}{T} *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
Гц
*** QuickLaTeX cannot compile formula: T = \frac{1}{f} *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
c
Один герц в точности равен одному циклу в секунду, но один герц является очень маленькой величиной, поэтому часто можно встретить префиксы, обозначающие порядок величины сигнала, такие как кГц, МГц, ГГц и даже ТГц
Префикс | Определение | Запись | Период |
Кило | тысяча | кГц | 1 мс |
Мега | миллион | МГц | 1 мкс |
Гига | миллиард | ГГц | 1 нс |
Тера | триллион | ТГц | 1 пс |
ШИМ сигнал
Аппаратный
Для генерации ШИМ сигнала с заданным заполнением есть стандартная функция analogWrite(pin, duty), подробнее обсуждали в уроке про ШИМ сигнал, а частоту можно изменить перенастройкой таймера, как в уроке об увеличении частоты ШИМ. На самом деле таймеры позволяют настроить ШИМ сигнал с более точной или более высокой частотой и другими диапазонами заполнения (до 10 бит), но в ядре Arduino это не предусмотрено. Если такое будет нужно, можно воспользоваться библиотекой GyverPWM. Пример:
pinMode(10, OUTPUT); // запустить ШИМ на D10 с частотой 150’000 Гц, режим FAST_PWM PWM_frequency(10, 150000, FAST_PWM);
Программный ШИМ
Программная генерация ШИМ сигнала может пригодиться, если не хватает лишнего таймера или частота ШИМ низкая и не повлияет на остальной код, а он на неё. ШИМ сигнал на “миллисе” можно организовать вот таким образом, переключая выход по двум периодам:
Софт ШИМ на millis()
Функцию PWMgen(заполнение) в данной реализации нужно вызывать как можно чаще в основном цикле программы:
#define PWM_PRD 20 // период ШИМ, мс #define PWM_PIN 13 // пин ШИМ void setup() { pinMode(PWM_PIN, OUTPUT); } void loop() { PWMgen(analogRead(0) / 4); // берём значение ШИМ с А0, 0.. 255 } void PWMgen(byte duty) { static uint32_t tmr; static bool flag; if (duty == 0) digitalWrite(PWM_PIN, LOW); else if (duty == 255) digitalWrite(PWM_PIN, HIGH); else { int prd = (PWM_PRD * duty) >> 8; // равносильно / 255 if (millis() — tmr >= (flag ? prd : PWM_PRD — prd)) { tmr = millis(); digitalWrite(PWM_PIN, flag = !flag); } } }
Здесь мы на каждом вызове считаем новый период переключения, тратя на это какое-то время. Можно считать период в отдельной функции, а сам ШИМ генерировать отдельно. Реализацию можно посмотреть в библиотеке PWMrelay.
Полуаппаратный ШИМ
Можно снизить нагрузку на процессор, отдав счёт времени аппаратному таймеру. Примеры на базе GyverTimers (для ATmega328, 2560):
8 бит ШИМ
// частота ШИМ = ~ (частота вызова tick / 256); #define PWM_FREQ 100 // частота ШИМ #define PWM_PIN 13 // пин ШИМ #include // подключаем библиотеку аппаратных таймеров volatile uint8_t pwm_duty = 0; // переменная для хранения заполнения шим 0-255 volatile uint8_t counter = 0; // аналог счетного регистра таймера void setup() { Timer2.setFrequency(256L * PWM_FREQ); // частота прерываний Timer2.enableISR(); // включаем прерывания таймера pinMode(PWM_PIN, OUTPUT); // пин как выход } void loop() { // задаём скважность ШИМ потенциометром с пина А0 pwm_duty = analogRead(0) / 4; // 1023 -> 255 // задержка задания значения, чтобы избежать скачков delay(100); } // прерывание таймера ISR(TIMER2_A) { if (!pwm_duty) digitalWrite(PWM_PIN, LOW); // заполнение ШИМ == 0 else { if (!counter) digitalWrite(PWM_PIN, HIGH); // при обнулении счётчика HIGH else if (counter == pwm_duty) digitalWrite(PWM_PIN, LOW); // при совпадении LOW counter++; } }
Настройка разрядности
// частота ШИМ = ~ (частота вызова tick / (глубина ШИМ + 1)); #define PWM_DEPTH 100 // разрядность ШИМ #define PWM_PIN 13 // пин ШИМ #include // подключаем библиотеку аппаратных таймеров volatile uint8_t pwm_duty = 0; // переменная для хранения заполнения шим 0-255 volatile uint8_t counter = 0; // аналог счетного регистра таймера void setup() { Timer2.setPeriod(10); // прерывания по таймеру с частотой 100 кгц Timer2.enableISR(); // включаем прерывания таймера 2 pinMode(PWM_PIN, OUTPUT); // устанавливаем пин на выход } void loop() { // получить заполнение ШИМ с потенциометра A0 pwm_duty = map(analogRead(A0), 0, 1023, 0, PWM_DEPTH); // задержка задания значения, чтобы избежать скачков delay(100); } ISR(TIMER2_A) { if (!pwm_duty) digitalWrite(PWM_PIN, LOW); // заполнение ШИМ == 0 else { if (!counter) digitalWrite(PWM_PIN, HIGH); // при обнулении счётчика HIGH else if (counter == pwm_duty) digitalWrite(PWM_PIN, LOW); // при совпадении LOW if (++counter > PWM_DEPTH) counter = 0; // проверка на переполнение } }
Как известно, digitalWrite() является очень тяжёлой и долгой функцией, и для генерации софт ШИМ рекомендуется заменить её чем-то более быстрым, например прямым обращением к регистру или вот такой конструкцией (для ATmega328p):
void digitalWriteFast(uint8_t pin, bool x) { if (pin <
Если не хватает количества стандартных ШИМ-выходов, можно поднять полуаппаратный ШИМ на таймере на несколько пинов сразу:
Многоканальный софт ШИМ
#define PWM_FREQ 100 // частота ШИМ const uint8_t pwm_pins[] = {2, 3, 4, 5}; // пины #include // подключаем библиотеку аппаратных таймеров const uint8_t PWM_PINS = sizeof(pwm_pins); volatile uint8_t pwm_duty[PWM_PINS]; // переменная для хранения заполнения шим 0-255 volatile uint8_t counter; // счётчик void setup() { Timer2.setFrequency(256L * PWM_FREQ); // прерывания по таймеру Timer2.enableISR(); // включаем прерывания таймера 2 // устанавливаем пины на выход for (int i = 0; i < PWM_PINS; i++) pinMode(pwm_pins, OUTPUT); // заполнение pwm_duty[0] = 10; pwm_duty[1] = 20; pwm_duty[2] = 128; pwm_duty[3] = 128; } void loop() { } // прерывание таймера ISR(TIMER2_A) { for (int i = 0; i < PWM_PINS; i++) { if (!pwm_duty) digitalWrite(pwm_pins, LOW); // заполнение ШИМ == 0 else { if (!counter) digitalWrite(pwm_pins, HIGH); // при обнулении счётчика HIGH else if (counter == pwm_duty) digitalWrite(pwm_pins, LOW); // при совпадении LOW } } counter++; }
Этот алгоритм является не самым оптимальным, более интересный можно посмотреть в GyverHacks.
Примечание: во всех трёх алгоритмах используется проверка совпадения со счётчиком counter == pwm_duty. Это сильно снижает использование процессорного времени в прерывании, но при резком уменьшении заполнения может приводить к одиночным “вспышкам” заполнения до максимума, так как условие не выполнится. Для более плавной работы можно сделать counter >= pwm_duty, тогда условие будет каждый раз “подстраиваться” под новое значение заполнения, но установка пина будет осуществляться на каждом тике!
Можно ввести буферизацию заполнения ШИМ и брать новое значение только при нулевом значении счётчика, это решит проблему:
ШИМ с буферизацией
// софт шим с буферизацией #define PWM_FREQ 100 // частота ШИМ #define PWM_PIN 13 // пин ШИМ #include // подключаем библиотеку аппаратных таймеров volatile uint8_t pwm_duty = 0; // переменная для хранения заполнения шим 0-255 volatile uint8_t counter = 0; // аналог счетного регистра таймера volatile uint8_t real_duty = 0; void setup() { Timer2.setFrequency(256L * PWM_FREQ); // частота прерываний Timer2.enableISR(); // включаем прерывания таймера pinMode(PWM_PIN, OUTPUT); // пин как выход } void loop() { // задаём скважность ШИМ потенциометром с пина А0 pwm_duty = analogRead(0) / 4; // 1023 -> 255 } // прерывание таймера ISR(TIMER2_A) { if (!pwm_duty) digitalWrite(PWM_PIN, LOW); // заполнение ШИМ == 0 else { if (!counter) { // при счётчике == 0 digitalWrite(PWM_PIN, HIGH); // HIGH real_duty = pwm_duty; // берём из «буфера» } else if (counter == real_duty) digitalWrite(PWM_PIN, LOW); // при совпадении LOW counter++; } }
Можно применить буферизацию и к остальным алгоритмам.
Библиотека Servo
Как известно, RC сервоприводы управляются при помощи ШИМ сигнала с частотой ~50 Гц и длительностью импульса от~500 до ~2500 микросекунд. В стандартной библиотеке Servo.h реализована генерация полуаппаратного ШИМ сигнала, причём количество пинов можно менять во время работы. Библиотеку можно использовать как генерацию ШИМ, если его параметры подходят для использования.
Меандр
Меандры широко используются в электронных схемах для тактирования и сигналов синхронизации, так как они имеют симметричную прямоугольную форму волны с равной продолжительностью полупериодов. Практически все цифровые логические схемы используют сигналы в виде меандра на своих входах и выходах.
Так как форма меандра симметрична, и каждая половина цикла одинакова, то длительность положительной части импульса равна промежутку времени, когда импульс отрицателен (нулевой). Для меандров, используемых в качестве тактирующих сигналов в цифровых схемах, длительность положительного импульса называется временем заполнения периода.
Для меандра, время заполнения
*** QuickLaTeX cannot compile formula: \tau *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
равно половине периода сигнала. Так как частота равна обратной величине периода, (1/T), то частота меандра:
*** QuickLaTeX cannot compile formula: \ *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
Например, для сигнала с временем заполнения равным 10 мс, его частота равна:
*** QuickLaTeX cannot compile formula: f = \frac{1}{(10+10) \cdot 10^{-3}c} = 50 *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
Гц
Меандры используются в цифровых системах для представления уровня логической «1» большими значениями его амплитуды и уровня логического «0» маленькими значениями амплитуды.
Если время заполнения, не равно 50% от длительности его периода, то такой сигнал уже представялет более общий случай и называется прямоугольным сигналом. В случае, или если время положительной части периода сигнала мало, то такой сигнал, является импульсом.
Синус или меандр?
Cистемы автономного и бесперебойного питания, как правило, используются для обеспечения работы аппаратуры с питанием 220 В. В этом случае остро стоит вопрос обеспечения электропитания 220 В. Как только речь заходит о мощности 220 В надо четко понимать, что существуют две единицы измерения мощности — ватты (Вт), и вольт-амперы (ВА). 1 Вт = 1.4 ВА или 1ВА = 0.7 Вт
Как правило, на блоках и инверторах указывают значения в вольт-амперах. Поэтому, чтобы получить значение максимальной мощности в Ваттах, эту величину надо поделить на 1,4. При этом мощность потребителя электроэнергии может быть указана в зависимости от типа прибора в любой из двух единиц. Скажем, обычная лампа накаливания имеет номинал в ваттах. Т.е. лампочку 100 Вт нельзя подключать к ББП или Инвертору с номиналом 100 ВА, а только не менее чем к 150 ВА.
Инверторы и Блоки бесперебойного питания (ББП)
можно классифицировать по форме выходного напряжения — синус или модифицированный синус (меандр с паузами).
Синус или меандр?
Большинство потребителей даже и не задумываются какова форма выходного напряжения данного прибора. А ведь большинство представленных на рынке приборов выдают не «чистый синус»
, а так называемый
«модифицированный синус» (такие приборы гораздо дешевле «синусоидальных»)
.
Модифицированный синус — это приближения к синусоидальному сигналу с помощью сигналов «прямоугольной’» формы. Самое грубое, но простое приближение — это меандр — сигнал прямоугольной формы переменной полярности (рис. 1). Причем речь идет о передаче энергетики сигнала, т.е. о равенстве эффективного значения напряжения (площади под кривой напряжения). Как следствие, амплитуды двух сигналов — синуса и меандра отличаются. Чтобы получить Uэфф=220 В меандр должен иметь амплитуду 220 В, а синус имеет амплитуду 311 В.
На практике меандр не применяется, т.к. в момент резкой смены полярности возникают очень неприятные эффекты в аппаратуре. Применяют обычно меандр с паузой, или так называемый «модифицированный синус» (рис.2).
Более дорогие устройства используют более качественные приближения к синусу путем увеличения количества ступенек. На рис. 3 показан следующий уровень приближения. Увеличивая количество ступенек, мы постепенно получим сигнал, практически по своей форме мало отличающийся от синуса.
Чем синус лучше модифицированного синуса?
Существует аппаратура, для которой форма сигнала важна. Прежде всего, это аппаратура, чувствительная к помехам, аппаратура с трансформаторными источниками питания, электродвигатели, компрессоры и т.д. Есть потребители, которые нечувствительны к форме сигнала — это лампы накаливания, простые нагревательные приборы, приборы с бестрансформаторными импульсными источниками питания (компьютеры, современные телевизоры).
Что происходит, когда на трансформаторный источник питания подается модифицированный синус?
Резко снижается КПД трансформатора, в результате чего он начинает перегреваться и может выйти из строя. Кроме того, плохой (как правило, китайский подпольного производства) трансформатор начнет давать при работе посторонние звуки. Эта проблема не актуальна, когда мощность трансформатора заведомо существенно выше требуемой, но такие ситуации встречаются только в устройствах с очень малым потреблением (несколько ватт). Начиная с устройств, потребляющих 10 Вт трансформатор, как правило, оптимизирован, и использовать с такими потребителями прибор с модифицированным синусом не рекомендуется. Электродвигатели дают тот же эффект — снижение КПД, перегрев и посторонние звуки. Не рекомендуют применять модифицированный синус для питания чувствительной аппаратуры (например, медицинской), т.к. модифицированный синус — верный источник помех.
Как определить форму выходного сигнала?
Конечно, прочитав паспорт. Если выходная форма синусоидальная, то производитель обязательно так и напишет. А фразы типа «квазисинус» или «модифицированный синус»указывают на несинусоидальную форму выходного сигнала. Иногда в паспорте указывается коэффициент гармоник. Если он меньше 8 %, то это почти идеальный синус. Стоит заметить, что при одинаковой выходной мощности, цена преобразователя с синусом на выходе будет как минимум в 2 раза выше!
С покупкой обычного компьютерного UPS(источника бесперебойного питания) проблем нет — это проще сделать в любой компьютерной фирме. С хорошим мощным инвертором ситуация гораздо сложнее. Купить качественный прибор будет довольно непросто — очень мало фирм в России занимаются подобной техникой (одна из лучших — «Свободная Энергия»). Хорошо налажено производство и поставки 220 В мощных инверторов, предназначенных для обеспечения питания систем связи, но удовлетворение очень высоких технических требований Минсвязи приводит к тому, что стоит подобная техника достаточно недешево.
чистый синус | Квази-синус |
Автор
: Яновский М.Г
Прямоугольный сигнал
Прямоугольные сигналы отличаются от меандров тем, что длительности положительной и отрицательной частей периода не равны между собой. Прямоугольные сигналы поэтому классифицируются как несимметричные сигналы.
В данном случае я изобразил сигнал, принимающий только положительные значения, хотя, в общем случае, отрицательные значения сигнала могут быть значительно ниже нулевой отметки.
На изображенном примере, длительность положительного импульса больше, чем длительность отрицательного, хотя, это и не обязательно. Главное, чтобы форма сигнала была прямоугольной.
Отношение периода повторения сигнала
*** QuickLaTeX cannot compile formula: T *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37 , к длительности положительного импульса *** QuickLaTeX cannot compile formula: \tau *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
, называют скважностью:
*** QuickLaTeX cannot compile formula: \ *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
Величину обратную скважности называют коэффициентом заполнения (duty cycle):
*** QuickLaTeX cannot compile formula: \ *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
Пример расчета
Пусть имеется прямоугольный сигнал с импульсом длительностью 10мс и коэффициентом заполнения 25%. Необходимо найти частоту этого сигнала.
Коэффициент заполнения равен 25% или ¼, и совпадает с шириной импульса, которая составляет 10мс. Таким образом, период сигнала должен быть равен: 10мс (25%) + 30мс (75%) = 40мс (100%).
*** QuickLaTeX cannot compile formula: f = \frac{1}{T} = \frac{1}{(10 + 30) \cdot 10^{-3}c} = 25 *** Error message: Cannot connect to QuickLaTeX server: SSL certificate problem: certificate has expired Please make sure your server/PHP settings allow HTTP requests to external resources («allow_url_fopen», etc.) These links might help in finding solution: https://wordpress.org/extend/plugins/core-control/ https://wordpress.org/support/topic/an-unexpected-http-error-occurred-during-the-api-request-on-wordpress-3?replies=37
Гц
Прямоугольные сигналы могут использоваться для регулирования количества энергии, отдаваемой в нагрузку, такую, например, как лампа или двигатель, изменением скважности сигнала. Чем выше коэффициент заполнения, тем больше среднее количество энергии должно быть отдано в нагрузку, и, соответственно, меньший коэффициент заполнения, означает меньшее среднее количество энергии, отдаваемое в нагрузку. Отличным примером этого является использование широтно-импульсной модуляции в регуляторах скорости. Термин широтно-импульсная модуляция (ШИМ) буквально и означает «изменение ширины импульса».
Добавить ссылку на обсуждение статьи на форуме
РадиоКот >Конкурсы >Поздравь Кота по-человечески 2022! >
Теги статьи: | Добавить тег |
Универсальный генератор сигналов
Автор: Integrator Опубликовано 20.09.2017 Создано при помощи КотоРед. Участник Конкурса «Поздравь Кота по-человечески 2022!»
Однажды, доставая из коробки кусок макетной платы с запутанными проводами и припаянной к ней NE555, я понял что мне нужен нормальный генератор сигналов. Хотелось получить одновременно и хорошую функциональность и простоту схемы с использованием доступных компонентов. В интернете нашлось несколько интересных схемных решений. Однако при ближайшем рассмотрении у всех выявились свои недостатки. В итоге было решено сделать свой собственный генератор, с максимально — возможным числом функций, дабы хватило если не на все, то на большую часть потребностей.
От аналогичных устройств собранных на основе AVR контролеров отличается широким выбором генерируемых сигналов, более доступными и дешёвыми компонентами и однополярным питанием. Конечно, он не сравниться с заводскими приборами, но может оказаться полезен в домашней лаборатории.
Характеристики.
Форма сигнала:
- синус
- треугольник
- пила
- обратная пила
- ЭКГ
- шум
- меандр
- высокая частота
- ШИМ (прямоугольник с рег. скважностью)
- импульсы специальной формы
- ТВ сигнал(полосы)
Частота:
- Синус, треугольник, пила, обратная пила, ЭКГ: 1Гц — 111.1КГц
- Меандр: 1Гц — 500.0Кгц
- Меандр(высокая частота): 1МГц, 2МГц, 4МГц, 8МГц
ШИМ:
- 1Гц-99КГц
- коэффициент заполнения 1% — 99%
- возможность внешней синхронизации
Импульсы специальной формы:
- Tмин. = Trise+Ton+Tfall+Toff = 8мкс
- Tмакс. = Trise+Ton+Tfall+Toff = 4000000мкс
- число импульсов 1 — 65535
- возможность запуска внешним импульсом
Напряжение питания 12В Амплитуда сигнала 0 — 5В Смещение -3 — 3В Разрядность ЦАП 8бит Частота дискретизации 1,78МГц
У генератора имеется 2 выхода — A, D и вход — E. Сигналы в режимах синус, треугольник, пила, обратная пила, ЭКГ, шум, ТВ, pulse выводятся на выход A.
Выход D — цифровой, на него выводятся сигналы в режимах ШИМ, меандр, высокая частота. на выходе имеется защитный резистор.
Вход E используется для запуска режима PULSE и для синхронизации в режиме ШИМ. На входе имеется защитный резистор и стабилитрон, подтяжки к питанию нет.
Все установленные параметры сохраняются в энергонезависимой памяти контроллера после запуска генератора.
Режимы работы.
После включения прибора на дисплее в верхней строке отображается текущий режим работы и состояние(включен или выключен). В нижней строке указываются дополнительные параметры. При нажатии кнопки реж.(mode) происходит смена режима работы устройства. При нажатии кнопки уст.(set) включается режим установки параметров для текущего режима. Кнопка вкл./выкл(on/off) запускает или выключает генератор. Переключатель Ф. включает и выключает аналоговый фильтр на выходе A.
Синус (SINE), треугольник (TRIANGLE), пила (SAWTOOH WAVE), обратная пила (RSAWTOOH WAVE), ЭКГ (ECG). Сигнал выбранной формы генерируется табличным методом. Для перехода в режим ввода частоты нужно нажать кнопку уст. В этом режиме в верхней строке показывается текущая частота, в нижней — шаг устанавливаемого числа. Значение устанавливается кнопками +/-, шаг можно изменить кнопкой реж. По окончанию ввода нужно ещё раз нажать кнопку уст., после чего генератор перейдет в основной режим.
Синус 1КГц, 5В, смещение 1В.
Пила 21КГц.
треугольник 1КГц.
ЭКГ 1Кгц
Шум (NOISE). Генерирует шум, используется стандартная библиотечная функция rand(), не имеет настраиваемых параметров.
Меандр (SQUAREWAVE). Генерирует прямоугольные импульсы с коэффициентом заполнения ~50% методом DDS.
Высокая частота (HIGH SPEED). Генерирует прямоугольные импульсы высокой частоты, с коэффициентом заполнения ~50%. Имеет всего 4 значения частоты: 1МГц, 2МГц, 4МГц, 8МГц.
ШИМ (PWM). Генерирует прямоугольные импульсы с регулируемым коэффициентом заполнения путем деления тактовой частоты. В этом режиме есть 3 настраиваемых параметра, переход между ними осуществляется последовательно нажатием кнопки уст.
F — частота устанавливается аналогично предыдущим режимам.
DC — коэффициент заполнения устанавливается в диапазоне 1-99% с шагом в 1% кнопками +-.
ШИМ 21КГц, 80%.
EXT SYNC — внешняя синхронизация может иметь 3 значения, которые выбираются кнопками +- :
- NO – отсутствует, генератор будет работать все время после нажатия кнопки вкл.
- HIGH – генератор будет работать при наличии высокого уровня на входе E.
- LOW — генератор будет работать при наличии низкого уровня на входе E.
ШИМ 21КГц, 80%, внешняя синхр. E=H.
Импульсы специальной формы (PULSE). Позволяет генерировать импульсы с заданным периодом линейного нарастания/спада уровня сигнала. Имеет 6 настраиваемых параметров.
Trise — период нарастания импульса 2 — 1000000мкс; Ton — период высокого уровня 2 — 1000000мкс; Tfall — период спада импульса 2 — 1000000мкс; Toff — период низкого уровня 2 — 1000000мкс, устанавливаются кнопками +-, шаг выбирается кнопкой реж.
Trise=Ton=Tfall=Toff=100мкс, N=ND
N – число импульсов, устанавливается кнопками +-, шаг выбирается кнопкой реж.
- Диапазон 1 — 65535, после запуска генератор выдаст установленное количество импульсов на выход A.
- ND – не определено, генератор будет работать все время после нажатия кнопки вкл.
Trise= 3мкс,Ton=Tfall=Toff=100мкс, N=3
TRIGGER — запуск генератора внешним импульсом на входе E. Значения, выбираются кнопками +- :
- NO – отсутствует, генератор будет работать все время после нажатия кнопки вкл.
- RISE – после нажатия кнопки вкл. генератор запустится только по фронту импульса на входе E. Во время ожидания в верхней строке дисплея будет показываться W:R
- FALL — после нажатия кнопки вкл. генератор запустится только по спаду импульса на входе E. Во время ожидания в верхней строке дисплея будет показываться W:F
ТВ (TV). Генерирует аналоговый видеосигнал — вертикальные полосы. Для правильной работы нужно установить смещение на 0В, амплитуду 5В. Выход A подключается к видеовходу телевизора.
Сброс установок.
Может понадобиться, если у вас не прошилась EEPROM или в процессе настройки случился какой-то коллапс и теперь прибор показывает что-то страшное. Для сброса установок в обесточенном генераторе зажимается кнопка уст.(set), затем подается питание и не отпуская кнопку ждем 5сек. После этого настройки в EEPROM перезаписываются на дефолтные.
Схема.
Вся цифровая часть реализована в микроконтроллере Atmega8A, работающим на частоте 16МГц. К микроконтроллеру подключен резистивный R2R ЦАП, выдающий аналоговый сигнал. С выхода ЦАП сигнал поступает на буферный усилитель на U2B. После чего проходит через активный НЧ фильтр 2 порядка, собранный по схеме Баттерворта на U2A, с частотой среза 300КГц. Фильтр рассчитывался в онлайн калькуляторе от AD.
Переключатель SW5 позволяет выбирать, снимать сигнал непосредственно с повторителя или прошедший через НЧ фильтр. Далее в схеме стоит инвертирующий усилитель с регулируемым коэффициентом усиления 0 — 0.5. Такой коэффициент выбран неслучайно. Дело в том что, нижнее напряжение питание ОУ TL082 должно быть на 1,5В ниже выходного. Т.е. при амплитуде в 5В, питание должно быть -6.5В, что потребовало бы изменение в схеме преобразователя напряжения. Затем сигнал поступает на второй инвертирующий усилитель, который сдвигает уровень относительно напряжения смещения, регулируемое резистором RV1. А также восстанавливает амплитуду сигнала, которая была уменьшена ранее в U3B.
Сигналы в режимах ШИМ и меандр(высокая частота) генерируются таймером-счетчиком микроконтроллера, путем деления тактовой частоты. В режиме меандр — программным методом DDS.
Для экономии портов в/в дисплей подключен по схеме только на запись, с заземленным выводом RW. Линии D4 – D7 имеют двойное назначение, помимо передачи данных в дисплей, к ним подключены кнопки управления. Для избежания к.з., при одновременном нажатии кнопки и передачи данных, установлены защитные резисторы. Передача данных и чтение состояний кнопок происходит последовательно.
Также на плате имеются контактные штыри линий Rx, Tx, на которые выведен программный UART 19200 8b1. В текущей версии прошивки этот интерфейс работает только на вывод.
По линии V_GEN контроллер выдает прямоугольные импульсы частотой ~20КГц, которые поступают на преобразователь напряжения. Он генерирует -5,6В, необходимое для питания операционных усилителей.
Немного теории.
В генераторе используется метод прямого цифрового синтеза частоты(DDS). За основу был взят алгоритм из прибора AVR DDS signal generator V2.0 и доработан. В частности, заменив чтение табличных значений из флэш на буфер в оперативной памяти, удалось сократить время рабочего цикла на 1 такт. Что привело к увеличению частоты дискретизации с 1.6 до 1.78МГц. На его основе был написан алгоритм генерации прямоугольника и импульсов с произвольным временем линейного нарастания — спада.
Простейший цифро-аналоговый генератор на МК делается довольно легко. Берется таблица значений аналогового сигнала(например синусоида) за 1 период. И последовательно выводится в порт МК к которому подключен ЦАП. Частота выходного сигнала будет равняться:
FOUT = FCLK / C; FCLK – частота с которой происходит вывод в порт(частота дискретизации), C – число значений в таблице.
Основным недостатком этого метода является неудовлетворительная способность к перестройке по частоте. Поскольку частота дискретизации испытывает деление на целое число, шаг перестройки будет переменным, причем, чем меньше коэффициент деления, тем больше относительная величина шага.
При прямом цифровом синтезе частота дискретизации остается постоянной. В алгоритм вводиться специальная переменная, которая хранит текущее значение фазы сигнала, называемая аккумулятором фазы. В конкретном примере его размер составляет 24 бита. Основной код алгоритма написан на ассемблере:
;в регистр Z загружается адрес буфера в ОЗУ, содержащий таблицу из 256 значений одного периода генерируемого сигнала ;для правильной работы алгоритма адрес буфера должен быть выровнен на 0x100h, т. е. начинаться с 0xXX00h ;в данном случае буфер находиться по адресу 0x0100 ldi zh, 0x01 ldi zl, 0
;регистры r18, r19, zl составляют 24битный фазовый аккумулятор ;старшие 8 разрядов также являются индексом в таблице сигнала eor r18, r18 ;обнуление аккумулятора eor r19, r19 ;обнуление аккумулятора
;в регистрах r22, r23, r24 находиться 24битное значение приращения фазы — M
1: add r18, r22 ;сложение аккумулятора с М adc r19, r23 ;сложение аккумулятора с М adc zl, r24 ;сложение аккумулятора с М ld r0, z ;загрузка значения из таблицы по адресу Z out _SFR_IO_ADDR(R2RPORT), r0 ;вывод значения в ЦАП sbic _SFR_IO_ADDR(BTN_PIN), START ;условие для прерывания цикла,если кнопка нажата выходим rjmp 1b ;прыжок на начало цикла
В цикле, который крутится с заранее известной частотой FCLK, к аккумулятору фазы прибавляется некоторое постоянное число которое называется приращением фазы – M. При этом значение аккумулятора увеличивается с постоянной скоростью, а его старшие 8бит используются как индекс в таблице аналоговых значений сигнала. Период переполнения аккумулятора будет равен одному периоду генерируемого сигнала. При этом сам период может быть не кратным значением тактовой частоты, см. график.
FOUT = M * FCLK/N где FOUT – выходная частота, FCLK – частота дискретизации, M – приращения фазы, N – максимальное значение аккумулятора фазы.
частота дискретизации равна FCLK = F_CPU/NUM_CYCLES ,где F_CPU тактовая частота процессора — 16Мгц ,NUM_CYCLES — число машинных тактов за один проход цикла — 9 FCLK = 16000000/9 = 1777777Гц
Минимальная частота сигнала будет при M = 1 FMIN = 1 * 1777777 / 2^24 = 0,105Гц, и она же является шагом изменения частоты.
Значение приращения фазы для требуемой частоты можно рассчитать так:
M = FOUT * N / FCLK
С увеличением частоты уменьшается количество выборок и форма сигнала упрощается, появляются ступеньки. Поэтому максимальная частота ограничена 111.1КГц, при которой ещё более-менее сохраняется форма сигнала. Также для уменьшения ступенек в схему добавлен аналоговый фильтр на 300КГц.
Алгоритм генерации меандра методом DDS принципиально особо не отличается. Отличие только в том, что сигнал генерируется ногодрыгом, а не через ЦАП. Уровень на выводе порта МК просто инвертируется после переполнения аккумулятора фазы.
ldi zh, 1<;Загружаем в zh маску вывода
;обнуление аккумулятора ldi zl, 0 eor r18, r18 eor r19, r19 in r0, _SFR_IO_ADDR(HSPORT); запоминаем состояние порта 1: add r18, r22 ;сложение аккумулятора с М adc r19, r23 ;сложение аккумулятора с М adc zl, r24 ;сложение аккумулятора с М BRCC 2f eor r0, zh;если случилось переполнение аккумулятора, инвертируем бит порта 2: out _SFR_IO_ADDR(HSPORT), r0 ;вывод sbic _SFR_IO_ADDR(BTN_PIN), START ;условие для прерывания цикла,если кнопка нажата выходим rjmp 1b ;прыжок на начало цикла
И формулы немного изменятся: FOUT = M * FCLK/(2*N);
M = FOUT * 2 * N / FCLK
Такой способ генерации прямоуголного сигнала имеет большую точность установки частоты, нежели простое деление таймером-счётчиком(которое используется в режиме ШИМ). Однако в сигнале постоянно присутствует дрожание фронтов(джиттер) из-за несогласованности фазы с частотой дескретизации.
Ну надеюсь кто-нибудь что-нибудь поймет из моего сумбурного объяснения.
Прошивка.
Помимо файла программы, необходимо также прошить EEPROM. Фьюз биты: LOW = 0xFF, HIGH = 0xD9. Будьте осторожны, при последующей прошивке контроллер без кварца может не определяться прошивальщиком!
Сборка, настройка.
Для R2R ЦАП желательно брать резисторы из одной партии, или выбирать при помощи мультиметра, так чтобы их сопротивлению отличалось не более чем на 0.5%. К статье приложена обновленная печатная плата, она отличается от той что на фото в корпусе.
На новой ПП предусмотрены площадки под SMD резисторы, чтобы народ не мучался высверливая дополнительно 48 дырок. После включения первым делом нужно проверить наличие всех питающих напряжений, особенно -5.6В, на выводах ОУ. Далее подстроечным резистором RV3 нужно добиться, чтобы на крайних выводах резистора RV1 напряжение было примерно равно -1В и 1В. На этом, собственно, настройка окончена.
Корпус.
Корпус прибора склеен из 4мм фанеры. Лучше для этого использовать шлифованную фанеру, так как она более ровная и имеет меньше дефектов. Все детали корпуса выпилены вручную лобзиком.
При наличии ЧПУ станка всё делается гораздо проще, но если кто надумает сделать вручную, хочу дать несколько советов.
Сначала в САПР или вручную, на листе в клетку, рисуются детали будущего корпуса в натуральную величину. Следует продумать размещение дисплея и ручек управления, и остальных деталей. Шипы соединения по краям деталей не стоит делать слишком узкими, иначе при склейке подгонять замучаетесь. Оптимальная ширина шипов/пазов для 4мм фанеры 15 — 25мм. После чертеж переносится на фанеру, особое внимание следует уделять геометрии, чтобы не было перекосов и все углы были прямыми. Затем высверливаются или выпиливаются внутренние отверстия, и только потом выпиливается сама деталь.
Чтобы избежать при сверлении больших отверстий сколов и задиров шпона следует юзать только острые сверла. Предварительно просверлить по центру отверстие малого диаметра, и сильно не давить при подаче.
После того, как все элементы корпуса выпилены, наступает самый нудный и ответственный момент, от которого зависит итоговый вид корпуса. Нужно подогнать шипы/пазы на соединяемых деталях. Делать это лучше узким плоским напильником. Положив деталь на основание с плоской кромкой(кусок ДСП например), так чтобы пазы оказались на одном уровне. В итоге детали должны хорошо прилегать друг к другу с минимальными зазорами.
Для склейки лучше всего подходит клей ЭДП(эпоксидка), т. к. он заполняет щели и не дает усадку после затвердевания. Но я клеил обычным канцелярским ПВА-М, результат оказался неплохим. Только не используйте обычный строительный ПВА, он гораздо жиже и прочность склейки оставляет желать лучшего.
Когда клей высохнет, плоским напильником нужно сточить выступающие части шипов на гранях получившейся коробки. Если к этому моменту на поверхностях всё-же появились сколы древесины, то ничего страшного, их можно просто зашпаклевать смесью клея и опилок. После обработки напильником и шлифовки наждачкой эти места будут почти незаметны.
Надписи на корпусе сделаны путем переноса распечатанных на лазерном принтере изображений на водный акриловый лак.
Изначально я пробовал переводить изображения с бумаги при помощи утюга, как в технологии ЛУТ. Однако из-за плохой теплопроводности дерева тонер практически не прилипал к поверхности корпуса. В итоге после нескольких экспериментов был подобран способ обеспечивающий более-менее приемлемый и главное повторяемый результат.
Для начала поверхность корпуса нужно подготовить, убрать пыль сухой кисточкой и покрыть одним слоем лака. После высыхания фанеру нужно обработать мелкой наждачкой прямо по лаку. Это необходимо, чтобы убрать ворсистость появившуюся после намокания дерева.
На листе бумаги с непромокаемым покрытием( я использовал подложку от самоклейки) были распечатаны отзеркаленные версии переносимых изображения. Бумага для печати должна быть с идеально гладкой поверхностью. Любые дефекты, такие как перегибы или царапины плохо скажутся на результате. Тонер с поверхности бумаги либо не приклеится к фанере, либо приклеится сама бумага.
Далее в месте приклеивания на корпус с избытком наносится лак. И на него ложится лист с распечаткой и тщательно разглаживался. Избыток жидкого лака убирается кисточкой или салфеткой. После высыхания бумага должна легко отклеиваться, а все изображения вместе с лаком остаться на дереве. Если результат окажется неудовлетворительным, то надписи можно аккуратно удалить при помощи ватной палочки смоченной в ацетоне. А затем повторить процедуру.
Если после высыхания где-то образовались наплывы из лака, то их нужно заровнять мелкой наждачкой.
После нанесения всех изображений корпус покрывается последним слоем лака.
По поводу износостойкости таких переведённых изображений пока сказать ничего не могу. Ногтем ничего не стирается. Вероятно всё зависит от используемого лака.
Подходящих кнопочных толкателей для корпуса найти не удалось. Поэтому были сделаны самодельные из корпусов старых советских электролитических конденсаторов и отрезков коаксиального кабеля. Современные китайские конденсаторы для препарирования непригодны, так как сделаны из очень тонкого алюминия и легко мнутся. Кабель должен быть прямым и достаточно жестким, я использовал антенный, диаметром 5мм.
Сначала острым канцелярским ножом конденсатор разделяется на 2 части, вся начинка выбрасывается. Получившийся стакан промывается растворителем, для удаления грязи, надписей и остатков электролита. Из куска кабеля вытаскивается внутренний изолятор с оплеткой и режется на куски. В стакан (полученный ранее) наливается термоклей и, пока он не затвердел, по центру вставляется отрезок внутренней изоляции от кабеля. Для того чтобы толкатель не вываливался из корпуса, на получившеюся конструкцию одевается отрезок внешней изоляции с шайбой подходящих размеров. Длина внешней изоляции должна быть больше чем внутренней, чтобы толкатель не сваливался со штока кнопки.
Плата крепиться к задней крышке корпуса. Сама крышка притягивается к передней части при помощи винтов М3 и шестигранных стоек. Стойки крепятся снизу винтами с потайной головкой. Вместо ножек я использовал пластиковые набойки, которые применяются для обтяжки мебели.
В заключении.
Надеюсь кому-нибудь моя статья пригодиться.
А кота хочу поздравить и пожелать побольше свежего контента с колбасой!
Ссылки на используемые источники:
- AVR DDS signal generator V2.0 https://www.scienceprog.com/avr-dds-signal-generator-v20/
- Всё о синтезаторах DDS https://www.kit-e.ru/articles/powersource/2005_1_28.php
- Прямой цифровой синтез https://www.rlocman.ru/review/article.html?di=143994
- Функциональный DDS генератор сигналов «OSKAR-DDS»
- TV Video PAL Signal Generator with Arduino https://www.javiervalcarce.eu/html/arduino-tv-signal-generator-en.html
- Analog Filter Wizard https://www.analog.com/designtools/ru/filterwizard/
- Mixing C and Assembly in AVR GCC and AVR Studio 4 https://ucexperiment.wordpress.com/2012/02/09/mixing-c-and-assembly-in-avr-gcc-and-avr-studio-4/
- О принципе действия DDS синтезатора https://npl-polus.ru/articles/electronic/dds
- Прямые цифровые синтезаторы частоты (DDS) https://life-prog.ru/1_42141_pryamie-tsifrovie-sintezatori-chastoti-DDS.html
- Параллельный Цифро Аналоговый Преобразователь по схеме R-2R https://easyelectronics.ru/parallelnyj-cifro-analogovyj-preobrazovatel-po-sxeme-r-2r.html
- Для микроконтроллеров и не только: Алгоритм DDS — синтез точной произвольной частоты на микроконтроллере (генерация сигнала произвольной формы нужной частотой с точностью до долей герца) https://electronics-and-mechanics.azm.su/page56.html
Файлы:
Прошивка Схема, плата в формате sprint layout 5 Исходники прошивки, AVRGCC
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? | |
161 | 2 | 5 |
2 | 0 |
Треугольные сигналы
Треугольные сигналы, как правило, это двунаправленные несинусоидальные сигналы, которые колеблются между положительным и отрицательным пиковыми значениями. Треугольный сигнал представляет собой относительно медленно линейно растущее и падающее напряжение с постоянной частотой. Скорость, с которой напряжение изменяет свое направление равна для обоих половинок периода, как показано ниже.
Как правило, для треугольных сигналов, продолжительность роста сигнала, равна продолжительности его спада, давая тем самым 50% коэффициент заполнения. Задав амплитуду и частоту сигнала, мы можем определить среднее значение его амплитуды.
В случае несимметричной треугольной формы сигнала, которую мы можем получить изменением скорости роста и спада на различные величины, мы имеем еще один тип сигнала известный под названием пилообразный сигнал.
Пилообразный сигнал
Пилообразный сигнал — это еще один тип периодического сигнала. Как следует из названия, форма такого сигнала напоминает зубья пилы. Пилообразный сигнал может иметь зеркальное отражение самого себя, имея либо медленный рост, но очень крутой спад, или чрезвычайно крутой, почти вертикальный рост и медленный спад.
Пилообразный сигнал с медленным ростом является более распространенным из двух типов сигналов, являющийся, практически, идеально линейным. Пилообразный сигнал генерируется большинством функциональных генераторов и состоит из основной частоты (f) и четных гармоник. Это означает, с практической точки зрения, что он богат гармониками, и в случае, например, с музыкальными синтезаторами, для музыкантов дает качественный звук без искажений.