ЭУМК по дисциплине "Программирование проблемно-ориентированных вычислительных средств реального времени" › Теория › Тема 1. Программирование синусоидальных сигналов аналитическими и табличными методами

# Электронный учебно-методический
комплекс по дисциплине
"Программирование проблемно-ориентированных вычислительных средств реального времени"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

1.2. Табличные методы программирования синусоиды
1.2.1. Прямой табличный метод

Все табличные методы используют таблицу синуса для углов от 0 до 360° длиной N отсчетов, которая представлена в таблице 1.1:

Таблица | 1.1 - Таблица синуса из N отсчетов

ИНДЕКС | УГОЛ | ТАБЛИЦА СИНУСА
0 | 0×360°/N | S[0] = sin(0°/N)
1 | 1×360°/N | S[1] = sin(360°/N)
2 | 2×360°/N | S[2] = sin(720°/N)
… | … | …
N-2 | (N-2)×360°/N | S[N-2] = sin((N-2)×360°/N)
N-1 | (N-1)×360°/N | S[N-1] = sin((N-1)×360°/N)

Данные такой таблицы позволяют получить точные значения синуса с относительными частотами ωk = 2Πk/N кратными минимальной частоте (частоте первой гармоники) ω1 = 2Π/N, где k – номер гармоники, равный шагу в таблице (целое число).
Но данная таблица позволяет также с некоторым приближением сформировать синусоидальный сигнал с частотой не кратной ω1. Используя индекс в таблице как угол и параметр Δ (действительное число) как величину шага, прямой табличный метод может быть записан в виде выражения:

| S[Int{mod(Δ·n,N)}] для n = 1, 2, 3, 4, … | (1.6)

где Int(a) – целая часть от числа a, mod(a,b) – остаток при делении нацело a/b (т.е. значение в интервале от 0 до N-1).
Это можно проиллюстрировать рисунком 1.3:

###

### Рисунок 1.3 – Синусоида с дробным шагом аргумента

Реальная частота формируемого сигнала f зависит от интервала дискретизации t и величины шага Δ и определяется выражением:
f = Δ / (t·N) [Гц]
Следует помнить, что согласно теореме Котельникова Δ ≥ N/2 .
На рисунке N = 8, Δ = 0.6 и если t = 0.000125 с, то частота сигнала будет равна:
f = 0.6 / (8·0.000125) Гц = 600 Гц
Алгоритм формирования синусоиды заключается в использовании дробных чисел при вычислении индекса, но для индексации в таблице используется только целая часть. Число разрядов целой части должно соответствовать длине таблицы, а дробной – числу промежуточных гармоник. Например для таблицы из 8-ми точек и трех промежуточных гармоник (шаг ¼) необходимо 3 разряда в целой части и два в дробной.
Недостатком метода являются довольно большие нелинейные искажения, возникающие из-за того, что энергия сигнала распределяется между основной гармоникой с частотой f и гармоническими (nf) и субгармоническими (nf/m) составляющими (где n и m - целые числа).
Полные нелинейные искажения (Total Harmonic Distortion – THD ) определяются выражением:
THD = энергия паразитных гармоник / полная энергия сигнала
Чем больше отсчетов в таблице, тем меньше нелинейные искажения. Значения величин нелинейных искажений в зависимости от длины таблицы и шага приведено в таблице 1.2.

Таблица | 1.2 - Значения THD для разных приращений

Δ | Значение THD для таблицы длиной
32 | 64 | 128
2.00 | 0.00000024 | 0.00000048 | 0.00000054
2.25 | 0.00300893 | 0.00075269 | 0.00018859
2.50 | 0.00240751 | 0.00060219 | 0.00015080
2.75 | 0.00300917 | 0.00075239 | 0.00018835
3.00 | 0.00000024 | 0.00000018 | 0.00000012
8.25 | 0.00300924 | 0.00075204 | 0.00018889
11.625 | 0.00315807 | 0.00079078 | 0.00020128

1.2.2. Табличный метод с линейной интерполяции

Данный метод является модификацией предыдущего и в его основе лежит точно такая же таблица синуса и обычная линейная интерполяция функции между двумя точками.
Данный метод описывается выражением
sin(2Π(i+d)/N) ≈ sin(2Πi/N) + d·[sin(2Π(i+1)/N) – sin(2Πi/N)] = S(i) + d·[S(i+1) – S(i)]
где i – целая часть аргумента (индекс в таблице синуса), а d – дробная часть (коэффициент пропорциональности).
Данный метод может быть проиллюстрирован рисунком 1.4:

###

### Рисунок 1.4 – Синусоида с дробным шагом аргумента и интерполяцией

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

Таблица | 1.3 - Значения THD для разных приращений

Δ | Значение THD для таблицы длиной
32 | 64 | 128
2.00 | 0.00000024 | 0.00000048 | 0.00000054
2.25 | 0.00169343 | 0.00018884 | 0.00000054
2.50 | 0.00135476 | 0.00015055 | 0.00000012
2.75 | 0.00169379 | 0.00018771 | 0.00000101
3.00 | 0.00000024 | 0.00000018 | 0.00000012
8.25 | 0.00169361 | 0.00018806 | 0.00000006
11.625 | 0.00177808 | 0.00019815 | 0.00000155

Для вычисления коэффициента нелинейных искажений можно воспользоваться выражением:
THD = (E(total)–E(fundamental)) / E(total) ,
где E(total) и E(fundamental) значения полной энергии и энергии основной гармоники сигнала соответственно. Расчет энергии сигнала необходимо вести на интервале, включающем целое число гармоник. Например при шаге Δ=1,5 и длине таблицы 128 число обрабатываемых отсчетов n должно быть таким, чтобы величина n Δ была кратна 128. Минимальное значение n=256 (256×1,5=384=128×3). В общем случае, если Δ=А/В, где А и В целые числа, минимальное значение n будет равно B×N точек. Полная энергия сигнала считается по формуле

### ,

а энергия основной гармоники по формуле

### ,

где X(k) – изображение Фурье k-й гармоники

### .

Значения THD, приведенные в таблицах, были рассчитаны по вышеприведенным формулам на ПЭВМ с использованием арифметики с плавающей запятой с двойной точностью.

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах
© БГУИР , 2012