Чем определяется частота дискретизации сигнала по времени?
Чем определяется дискретизация сигнала по уровню?
Как выбирается частота дискретизации?
Как рассчитать количество отсчетов в записанной реализации?
Каково назначение окон меню “Установки”?
Какая последовательность установок при записи данных в файл?
Сергиенко А.Б. Цифровая обработка сигналов – Спб.: Питер,2003.-608 с.
Изерман Р. Цифровые системы управления: Пер. с англ.-М.: Мир, 1984.- 541с.
Остем К., Виттенмарк Б. Системы управления сЭВМ: Пер. с англ.- М.: Мир, 1987.- 480с.
Программное обеспечение платы L-154.
Цель работы: изучение процесса преобразования аналоговых сигналов в цифровых системах управления. Знакомство с пакетом Matlab.
Оборудование: Pentium 2 с пакетом Matlab.
В процессе
преобразования непрерывного сигнала
в последовательность цифровых данных
происходит квантование входного сигнала
по времени и уровню. Квантование по
времени происходит в результате того,
что измерение происходит только в
дискретные моменты времени. Физически
дискретизатор (квантователь по времени)
представляет собой быстродействующий
ключевой элемент. В цифровых системах
интервал времени
,
через который происходит срабатывание
ключа, называется циклом опроса, тактом
квантования или периодом дискретизации.
На выходе ключевого элемента из
непрерывного сигнала
получается дискретный сигнал
,
состоящий из последовательности
импульсов, высота каждого из которых
равна величине непрерывного сигнала в
дискретные моменты времени. Математически
дискретная функция
,
получаемая путем квантования по времени
непрерывного сигнала с постоянным
тактом описывается выражением:
при
,
при
В аналого-цифровом
преобразователе амплитуда каждого
импульса кодируется в цифровой сигнал,
подвергаясь округлению или усечению.
Возникновение квантования по уровню
в АЦП связано с дискретностью представления
величины сигнала в виде двоичного числа.
В АЦП значение измеряемой величины как
бы сравнивается с некоторой градуировочной
шкалой, состоящей из целого числа
дискретных ступеней. Цена деления или
шаг квантования по уровню определяется
разрядностью преобразователя, т.е.
числом двоичных разрядов для записи
числа. Поскольку максимальное число
различных чисел, которые можно представить
с помощью двоичного кода разрядностью
равно
,
то шаг квантования по уровню для АЦП с
максимальным входным сигналом 1в равен
.
Цифровой сигнал на выходе АЦП
формируется (рассматривается) как целое
число
шагов квантования по уровню
,
содержащихся в каждом импульсе
,
т.е.
,
,
.
Остаток
либо округляется, либо усекается. Ошибка
квантования заключена в следующих
пределах:
при округлении и
при усечении. Эффекты, связанные с
округлением и усечением можно рассматривать
как некоторый шум, накладываемый на
полезный сигнал. Математическое ожидание
шума квантования при округлении
и равно
при усечении. Поэтому в высококачественных
АЦП используется округление. У АЦП,
имеющих не менее 10 двоичных разрядов,
эффекты квантования по уровню практически
незаметны, поскольку шум (погрешность)
квантования становится меньше статических
и динамических ошибок датчиков. В этом
случае выходной сигнал АЦП
,
поступающий в ЭВМ можно с достаточной
точностью рассматривать как
дискретизированный только по времени,
т.е.
.
Поскольку ЭВМ
вырабатывает выходной сигнал в дискретные
моменты времени, возникает задача
восстановления значений измеряемых
величин в промежутках между моментами
квантования. Такое восстановление
проводят различными методами экстра и
интерполяции. Простейший метод
экстраполяции – ступенчатая экстраполяция,
при которой мгновенное значение
дискретного сигнала
фиксируется на период, равный такту
квантования. Устройство, реализующее
такое запоминание выходного сигнала,
называется экстраполятором нулевого
порядка. Такая экстраполяция не требует
никаких вычислений. Однако при одном и
том же периоде квантования ступенчатая
экстраполяция дает большую погрешность,
чем другие методы экстраполяции
(линейная, параболическая). Для снижения
загрузки ЭВМ в системах контроля со
многими датчиками заданная точность
определения контролируемых величин
обеспечивается без применения сложных
алгоритмов экстраполяции за счет
повышения частоты квантования по
времени. Точность измерения величины
оценивают средней квадратичной
погрешностью. На интервале между
соседними замерами средняя квадратичная
погрешность дискретизации по времени
является функцией времени. В моменты
времени
,
равна 0. Она обычно достигает максимума
в конце периода дискретизации.
При выборе частоты
дискретизации ее нельзя задавать слишком
большой экономя процессорное время.
При известных статистических
характеристиках измеряемой величины
величину
определяют из соотношения
,
где
- корреляционная функция измеряемой
величины,
- максимальная средняя квадратичная
погрешность преобразования. Когда
неизвестна корреляционная функция
измеряемой величины, то для определения
периода дискретизации
поступают следующим образом:
Экспериментально проводят 30-40 измерений величины с произвольным интервалом времени h между соседними замерами.
Повторяют п.1 с интервалами времени равными 2h,3h,…
Полученные данные сводят в таблицу, в которой каждой строке i соответствует номер отсчета, а каждому столбцу j соответствует отклонение (изменение) величины сигнала за время кратное h, т.е. за время jh.
Для каждого столбца
j
вычисляют
величину среднеквадратичного отклонения
сигнала за время jh
и строят график
.
Для заданной
погрешности
,
по графику определяют требуемое значение
.
Если в результате построения функции окажется, что все точки кривой лежат примерно на горизонтальной линии, необходимо существенно уменьшить интервал h и снова повторить эксперимент.
Сформировать вектор отсчетов (цифровое представление), для заданного преподавателем аналогового сигнала.
Исследовать зависимость погрешности цифрового представления от шага квантования и частоты дискретизации.
Определить шаг квантования по уровню в абсолютных и относительных единицах в зависимости от разрядности (7-15двоичных разряда) для АЦП с максимальным входным сигналом равным 5.12в.
Получите у преподавателя исследуемую входную функцию и определите необходимый шаг квантования.
Войдите в среду Mathlab, дважды щелкнув на иконке в виде выпуклой поверхности расположенной на рабочем столе машины. При этом откроются два окна: окно переменных, в котором будут отображаться вводимые пользователем переменные и их размерности и рабочее окно, в которое пользователем вводятся команды, выполняемые при нажатии клавиши Enter.
Войдите в окно редактирования. Оно имеет нумерацию строк. Окно редактирования, предназначенное для написания, редактирования и записи программ на диск, вызывается из меню File – New – M-file. Перенос команд из окна редактирования в рабочее окно выполняется копированием.
Сформировать в среде Mathlab вектор отсчетов времени, задав шаг квантования по времени. Составлять программу лучше в окне редактирования и затем копировать ее фрагменты в рабочее окно для выполнения. Для ввода массива данных, изменяющихся с постоянным шагом, нужно напечатать в командном окне команду следующего формата: t=t0:dt:et;, где t0 – начальное значение элементов вектора, dt – шаг изменения элементов вектора, et – значение конечного элемента. Для вывода любой переменной на рабочее поле используется команда disp(x); , где x – выводимая переменная. Проконтролировать правильность формирования вектора можно командой вывода вектора на экран: disp(t).
Например, ввести
вектор
из 100 элементов с шагом 0.01 и первым
элементом равным 0: t=0:0.01:9.99;
disp(t);.
Убрать переменную можно командой Clear
x;
,где x
–убираемая переменная. Просмотреть
список переменных можно командой Who;.
Эмулируя работу АЦП построить в пакете Mathlab массив данных y содержащий значения отсчетов сигнала. Для этого, используя оператор цикла FOR, сформировать элементы массива. Формат необходимых команд виден из приведенного ниже примера.
for i=1:100 %Заголовок цикла на 100 отсчетов
y(i)=sin(2*pi*0.1*t(i)); %Ввод дискретизированной по времени функции sin(2**0.1*X) %
end; % Конец цикла.
Информация, записанная после символа «%» рассматривается как комментарий. Точка с запятой запрещает вывод полученных данных на дисплей.
Вывести график функции. Для вывода графика функции используется функция plot(x,y,’r’); , где x- вектор аргументов, y – вектор соответствующих значений, r – первая буква цвета графика. Если аргумент не указан (опущен), то в качестве аргумента используется номер отсчета. Для вывода нескольких графиков на одном рисунке используют команду hold on; без аргументов. Массивы данных и аргументов должны иметь одинаковую размерность. Для ввода осей графика используется функция axis([a,b,c,d]); . Аргументы функции axis равны соответственно нижней и верхней границе аргумента выводимой функции, нижнему и верхнему значению самой функции. Если вектор аргументов не указан, то по умолчанию используется вектор номеров отсчетов. Для задания цвета выводимого графика он указывается первой буквой названия цвета, взятой в апострофы. Пример: plot(t,y,’r’);.
Представить на графике массив отсчетов, т.е. дискретизированный по времени сигнал. Для этого используют функцию stem, которая имеет формат аналогичный команде plot. Например: stem(t,y); .
Установить параметры квантователя (по уровню) q командой q=quantizer([n1,n2]);. Параметрами команды являются соответственно – количество двоичных разрядов, отводимых под данные, и количество двоичных разрядов, отводимых под дробную часть числа. Функция range(q) возвращает параметры квантователя. Для просмотра параметров квантователя использовать disp(range(q));.
Провести квантование по уровню полученного ранее вектора отсчетов, записав результат в новый вектор. Для этого используют функцию квантования yy=quantize(q,y1);. Первый аргумент – имя квантователя, второй – имя исходного вектора отсчетов.
Вывести на график квантованные сигналы командой stem и сравнить с сигналами не квантованными по уровню. Для вывода нескольких функций на одном графике используется команда hold on; , после исполнения которой все выводимые позже данные будут размещаться на одном графике. Команда действует только на текущее графическое окно.
Изменяя параметры квантователя и выполняя п. 6-8, получить векторы квантованных сигналов при различных параметрах квантователя. Провести сравнение. Объяснить полученные результаты.
r |
Только для чтения |
w |
Только для записи |
r+ r+ |
Чтение и запись |
b |
Бинарный файл |
t |
Текстовый файл |
a |
Добавление в конец файла |
Вычислив среднеквадратичное значение приращения функции на шаге квантования определить требуемый период дискретизации для заданных преподавателем функции и параметров квантователя.
Записать несколько файлов одной функции с разными частотами дискретизации и различными значениями шага квантования по уровню.
Прочитать файлы данных в пакете Mathlab и получить графики полученных функций.
Отчет должен содержать название работы, цель работы, программу, графики исходного и дискретизированного сигналов. Файлы данных представляются на диске или дискете.