- •Введение
- •1. Исследование простейшей сау - физическая модель
- •1.1. Описание лабораторной установки
- •1.2. Задание по работе
- •1. Предварительные действия
- •7. В уютной домашней обстановке
- •3. Экспериментальное измерение частоты среза и запаса устойчивости по фазе
- •4. Экспериментальное измерение ачх сар
- •5. Для «шустрых» студентов.
- •6. Выключить все приборы.
- •1.3. Содержание отчета
- •1.4. Контрольные вопросы
- •2. Исследование системы фазовой автоподстройки частоты (фапч)
- •2.1. Описание лабораторной установки
- •2.2. Задание по работе
- •Выключить все приборы.
- •2.3. Содержание отчета
- •2.4. Контрольные вопросы
- •3. Исследование синтезатора частоты с системой фапч
- •3.1. Описание лабораторной установки
- •3.2. Задание по работе
- •3.3. Содержание отчета
- •3.4. Контрольные вопросы
- •4. Исследование сау с минимизацией шумовой ошибки
- •2) Приобретение навыков работы с измерительной техникой.
- •4.1. Описание лабораторной установки
- •4.2. Задание по работе
- •4.3. Содержание отчета
- •4.4. Контрольные вопросы
- •5. Параметрическая оптимизация сау при наличии динамической и шумовой ошибок (лабораторная работа 5)
- •5.1. Описание лабораторной установки
- •5.2. Задание по работе
- •5.3. Содержание отчета
- •5.4. Контрольные вопросы
- •6. Исследование нелинейной сау
- •6.1. Описание лабораторной установки
- •6.2. Задание по работе
- •1. Предварительные действия
- •2. Исследование переходных процессов.
- •3. Анализ автоколебаний.
- •4. Исследование линеаризированных сау.
- •5. Оценка фильтрующих свойств линейных сау 3-х типов.
- •6. Выключить все приборы.
- •6.3. Содержание отчета
- •6.4. Контрольные вопросы
- •7. Исследование нелинейных элементов методом статистической линеаризации (лабораторная работа 7)
- •7.1. Описание лабораторной установки
- •7.2. Задание по работе
- •7.3. Контрольные вопросы
- •8. Система фапч на сигнальном процессоре adsp
- •8.1. Теоретические сведения
- •8.2. Описание лабораторной установки
- •8.3. Задание по работе
- •8.3.1. Расчетная часть работы
- •8.3.2. Экспериментальное исследование помехоустойчивости системы фапч (исследовательская часть работы)
- •8.3.3. Ознакомительная часть работы
- •8.4. Содержание отчета
- •8.5. Контрольные вопросы
- •Список литературы
- •Содержание
- •1. Исследование простейшей сау - физическая модель
8.2. Описание лабораторной установки
Лабораторная установка состоит из генератора синусоидального сигнала, осциллографа, отладочной платы EZ-KIT и управляющего компьютера (рис. 9).
Отладочная плата EZ-KIT содержит сигнальный процессор BF533, АЦП для преобразования сигнала генератора в цифровую форму и ввода данных в память процессора, ЦАП для вывода данных из процессора на осциллограф, а также интерфейс USB для связи процессора с управляющим компьютером. Компьютер содержит интегрированную среду разработки программ "Visual DSP" для сигнального процессора, которая позволяет редактировать программы и вводить их в сигнальный процессор. В лабораторной работе используются готовые программы, хранящиеся в памяти компьютера. Компьютер используется также для контроля состояния регистров и памяти процессора. С помощью компьютера строятся графики процессов, записанных в память процессора. При выполнении работы имеется возможность изменять коэффициенты усиления следящей системы и уровень флюктуационной помехи.
Рис. 9
Современные сигнальные процессоры, АЦП и ЦАП являются сверхбольшими интегральными схемами, которые при каждом включении требуют инициализации управляющих регистров. Поэтому значительная часть программ содержит команды инициализации процессора, интерфейсов связи с АЦП и ЦАП. После завершения инициализации процессор переходит в режим ожидания получения данных из АЦП. Частота получения данных определяется частотой дискретизации 48 кГц в АЦП. При этой частоте дискретизации возможно высококачественное 24-разрядное преобразование входных сигналов с частотой до 20 кГц. 24-разрядные числа с помощью прямого доступа в память (DMA) поступают в ОЗУ процессора. После записи данных в ОЗУ формируется сигнал прерывания приема, который используется для запуска программы обработки принятых данных. При обработке данных в реальном времени длительность выполнения программы должна быть меньше, чем период дискретизации. Поэтому обработка данных после записи результатов в ОЗУ завершается переходом в режим ожидания следующего прерывания. Результаты обработки из ОЗУ передаются в ЦАП и, затем, на осциллограф.
Для программной реализации системы ФАПЧ используется сигнальный процессор с фиксированной точкой и 16-разрядным словом. В таком процессоре все числа представляются или в дробном виде – fract16 или как целые числа – int. При обработке сигналов используется дробная запись, которая позволяет представлять значения в интервале [-1,1]. Недостатком такой записи является необходимость масштабирования.
В современных сигнальных процессорах для сокращения затрат времени на составление программ широко используется язык программирования С. При этом структура процессора оптимизирована для повышения эффективности компилятора, преобразующего программу С в исполняемый файл.
Программа обработки данных содержится в файле Process_ pll.
//Process_pll
#include <btc.h>
#include "fc.h"
#include "fsm.h"
#include <complex.h>
complex_fract16 dds;//сигнал с частотой 6 кГц
complex_fract16 s;//выходной сигнал квадратурного детектора
complex_fract16 ds;//опорный сигнал
complex_fract16 er;//сигнал ошибки
int time3;
int time=0;//счетчик времени с периодом 8 циклов (частота 6 кГц)
int time2=0;//счетчик времени с периодом 48 циклов (частота 1 кГц)
int acc[2]={0,0};//acc[0] - интегратор частоты, acc[1] - интегратор фазы
int sigma_2;
fract16 d_ph=0;// ошибка измерения фазы
fract16 php;//оценка фазы сигнала
fract16 k1=0x2E1;//коэффициент усиления интегратора частоты
fract16 k2=0x1333;//коэффициент усиления интегратора фазы
fract16 kN=0xC51;//множитель помехи
//--------------------------------------------------------------------------//
// Функция Process_Data()
//--------------------------------------------------------------------------//
void Process_Data(void)
{
//--------------------------------------------------------------------------//
// квадратурный детектор
//--------------------------------------------------------------------------//
// формирование сигнала cos с частотой 6 кГц
dds.re = cos2pi_fr16(time*0x1000);
// умножение принятого сигнала на cos
iChannel0LeftOut = mult_fr1x16(dds.re, iChannel0LeftIn);
// формирование сигнала sin с частотой 6 кГц
dds.im = -sin2pi_fr16(time*0x1000);
// умножение принятого сигнала на sin
iChannel0RightOut = mult_fr1x16(iChannel0LeftIn, dds.im);
time=(time+1)%8;
// формирование квадратурных сигналов s.re и s.im с помощью фильтрации
fir_fr16(&iChannel0LeftOut, &s.re,1, &state1);
fir_fr16(&iChannel0RightOut, &s.im,1, &state2);
{ time2=(time2+1)%48;// децимация частоты дискретизаци 48 кГц - 1 кГц
//--------------------------------------------------------------------------//
// фазовая автоподстройка частоты
//--------------------------------------------------------------------------//
if (time2==0) {
php=(acc[1]>>16)*0.5+0x4000;//преобразование интервала [-1,1] в [0,1]
ds.re = cos2pi_fr16(php);//вычисление опорного сигнала cos
ds.im = -sin2pi_fr16(php);//вычисление опорного сигнала -sin
er=cmlt_fr16(s,ds);//вычисление комплексного сигнала ошибки
d_ph=atan2_fr16(er.im,er.re);//вычисление сигнала ошибки
//запись сигналов для построения графиков ошибки и фазы на дисплее
signal_probe( p_probe, d_ph, acc[1]>>16);
time3=(time3+1)%20;
if (time3==0) {
int temp;
temp=mult_fr1x32(d_ph,d_ph);
//расчет дисперсии ошибки
sigma_2=add_fr1x32(mult_fr1x32x32(temp, 0x0020C49B),mult_fr1x32x32(sigma_2, 0x7FDF3B64));
}
//d_ph+=mult_fr1x16(kN,rand()); //суммирование помехи и сигнала ошибки
acc[1]+=acc[0];//экстраполяция в интеграторе фазы
acc[0]+=mult_fr1x32(d_ph,k1);//коррекция интегратора частоты
acc[1]+=mult_fr1x32(d_ph,k2);//коррекция интегратора фазы
}
}
iChannel1LeftOut = ds.re;//передача опорного сигнала в ЦАП
iChannel1RightOut =s.re;//передача входного сигнала в ЦАП
}
В начале программы включены заголовочные файлы с расширением .h, содержащие объявление глобальных переменных и правила работы с комплексными данными. Затем идет список комплексных и целочисленных переменных. Комплексные переменные состоят из двух частей – .re и .im.
Интеграторы acc[] используют переменную типа int для повышения точности потому, что она имеет длину 32 разряда. Остальные переменные содержат 16 разрядов.
Функция
Process_Data
не имеет аргументов и запускается
прерыванием приема данных из АЦП с
частотой 48 кГц. При вычислении косинуса
и синуса используются функции cos2pi_fr16
и sin2pi_fr16,
масштабированные таким образом, что
интервалу (
)
соответствует интервал (0,1). Приращение
фазы в шестнадцатеричной записи 0х1000
равно 1/8. Таким образом, период составляет
8 тактов частоты 48 кГц, и формируются
функции косинуса и синуса с частотой 6
кГц. Эти сигналы умножаются на входной
сигнал из АЦП – iChannel0LeftIn.
Результаты умножения обрабатываются
функциями С fir_fr16,
в которых содержатся программы ФНЧ с
полосой пропускания 400 Гц. Результаты
фильтрации содержатся в s.re
и s.im.
После фильтрации можно снизить частоту
дискретизации до 1 кГц путем децимации
– исключения части отсчетов. Для
децимации используется счетчик n2.
Этот счетчик выполняет суммирование
единиц по модулю 48, т.е. после достижения
суммы 48 производится запись 0. Алгоритм
ФАПЧ запускается только при условии
n2==0
и действует, соответственно, с частотой
1 кГц.
Для
преобразования 32-разрядных данных
аккумулятора в 16-разрядные используется
сдвиг на 16, а для согласования масштаба
– умножение на 0,5. Кроме того, выполняется
смещение на 0х4000 (0,5), чтобы попасть в
середину интервала (0,1). После вычисления
опорного сигнала ds
выполняется комплексное умножение на
сигнал s
– cmlt_fr16.
Ошибка измерения фазы определяется с
помощью функции atan2_fr16.
Эта функция использует 16-разрядные
числа и также использует масштабирование
.
Таким образом, интервалу углов
соответствуют значения
.
Это масштабирование затем компенсируется
при вычислении косинуса и синуса и не
влияет на коэффициент усиления
разомкнутого контура. Однако, из-за
масштабирования в интеграторе частоты
(рис. 8) вместо значения
хранится
.
Отличие программы от схемы на рис. 8
заключается в том, что умножение на
выполняется до интегратора. Тогда в
интеграторе хранится величина
,
которая согласно теореме Котельникова
всегда меньше единицы. Действительно,
частота дискретизации
,
но
и
.
Таким образом, в интеграторе хранится
приращение фазы (с масштабным множителем
)
за время
,
пропорциональное значению частоты. В
лабораторной работе
мс
и для получения истинного значения
необходимо умножить число в интеграторе
acc[0] на 500.
Экстраполяция, в соответствии с (1), выполняется командой acc[1]+=acc[0], которая добавляет к величине фазы приращение фазы.
Операция фильтрации выполняется в соответствии с (2) и (3).
Значения s.re и ds.re поступают в ЦАП для наблюдения на осциллографе. При слежении за фазой эти напряжения совмещены. Кроме того, сигналы ошибки и фазы поступают в телеметрический канал системы "Visual DSP" для получения осциллограммы на дисплее компьютера.
