Исходные заготовки проекта находятся в папке MyProjects.
Шаг 1. Скопировать заготовку проекта в свою папку и переименовать проект (первые буквы Вашей фамилии на английском языке).
В проекте открыть программу с расширением «.с».
Шаг 2. Подключить генератор тона запуском программы NCH Tone Generator (рис. 64), установить в соответствии с Вашим вариантом частоту гармонического сигнала и запустить генератор, нажав кнопку .
Рис. 64. Рабочее окно генератора тона |
Шаг 3. Подключить осциллограф Velleman PCS -500, запуском программы PC - Lab 2000. Осциллограф позволяет исследовать осциллограммы (Oscilloscope) и спектры (Spectrum Analyzer) сигналов, поступивших с двух каналов CH 1, CH 2.
Шаг 4. Исследование дискретизации сигналов проводится в программе (расширение .с). В структуре программы можно выделить несколько блоков:
1. подключение библиотек,
2. формирование массива заданной длины (300 точек),
3. установка параметров кодека,
4. объявление переменных для генерации гармонического сигнала,
5. выделение одного колебания,
6. поиск минимума и максимума гармоники на одном периоде,
7. установка требуемых библиотек,
8. запуск кодека,
9. считывание сигнала с генератора тона и передача его на выход,
9а. выдача сигнала в левый канал кодека,
9б. выдача сигнала в правый канал кодека,
10. выделение одного колебания и поиск минимума и максимума,
11. формирование на основе двух считанных значений выходного сигнала и выдача его на динамики,
12. восстановление аналогового сигнала по ДПФ и выдача его на динамики,
13. выключение кодека.
Пример программы дискретизации гармонического сигнала
/*1.Подключение библиотек*/
#include "teziscfg.h"
#include "dsk5510.h"
#include "dsk5510_aic23.h"
#include <stdio.h>
#include <math.h>
/*2. Длина массива гармонического сигнала */
#define SINE_TABLE_SIZE 300
//#define Dlit 15
/*3. Установка параметров кодека */
DSK5510_AIC23_Config config = {
0x0017, // 0 DSK5510_AIC23_LEFTINVOL Left line input channel volume
0x0017, // 1 DSK5510_AIC23_RIGHTINVOL Right line input channel volume
0x00d8, // 2 DSK5510_AIC23_LEFTHPVOL Left channel headphone volume
0x00d8, // 3 DSK5510_AIC23_RIGHTHPVOL Right channel headphone volume
0x0011, // 4 DSK5510_AIC23_ANAPATH Analog audio path control
0x0000, // 5 DSK5510_AIC23_DIGPATH Digital audio path control
0x0000, // 6 DSK5510_AIC23_POWERDOWN Power down control
0x0043, // 7 DSK5510_AIC23_DIGIF Digital audio interface format
0x0081, // 8 DSK5510_AIC23_SAMPLERATE Sample rate control
0x0001 // 9 DSK5510_AIC23_DIGACT Digital interface activation
};
/*4. Описание переменных и массивов программы*/
Int16 sinetable[SINE_TABLE_SIZE], sinevosst[SINE_TABLE_SIZE];
int sinetableZN[SINE_TABLE_SIZE];
Int16 WriteSignal[SINE_TABLE_SIZE];
float Amp,Amp1;
double W,W1;
int i,TABLE_SIZE;
int Max,NumMax,Min,NumMin, NumMinusPlus_1, NumMinusPlus_2;
int C1,C2;
void MaxMin()
{ //5. Выделение одного колебания
for (i=0;i<299;i++)
{if ((sinetableZN[i]<0)&&(sinetableZN[i+1]>=0))
{NumMinusPlus_1=i;
break;};
};
for (i=NumMinusPlus_1+1;i<299;i++)
{if ((sinetableZN[i]<0)&&(sinetableZN[i+1]>=0))
{NumMinusPlus_2=i;
break;};
};
// 6. Поиск минимума и максимума гармоники на 1 периоде
Max=0;
NumMax=NumMinusPlus_1;
Min=32000;
NumMin=NumMinusPlus_1;
for (i=NumMinusPlus_1;i<NumMinusPlus_2;i++)
{if (sinetableZN[i]<Min)
{Min=sinetableZN[i];
NumMin=i;
};
if (sinetableZN[i]>Max)
{Max=sinetableZN[i];
NumMax=i;
};
};
}
void main()
{
DSK5510_AIC23_CodecHandle hCodec;
Int16 msec; //, Int=1000;
Int16 ReadData; //, sample;
int Dlit,t;
Amp=0x7fff;
/*7. Инициализация процессора и компонентов платыDSK 5510 */
DSK5510_init();
/*8. Запуск кодека */
hCodec = DSK5510_AIC23_openCodec(0, &config);
for (i=0;i<300;i++)
{sinetable[i]=0;};
//9. Считыв. сигнала с генер. тона и передача его на выход
for (msec = 0; msec < 2000; msec++)
{
for (i = 0; i < 300; i++)
{
DSK5510_AIC23_read16(hCodec, &ReadData);
sinetable[i]=ReadData*10;
sinetableZN[i]=ReadData;
/9а* Передача сигнала в левый канал кодека*/
while (!DSK5510_AIC23_write16(hCodec, sinetable[i]));
/9б* Передача сигнала в правый канал кодека */
while (!DSK5510_AIC23_write16(hCodec, sinetable[i]));
};
};
//10. Выделение одного колебания и поиск мин. и макс.
MaxMin();
//11. Формир. на основе 2 считанных значений вых. сигнала
Dlit=NumMinusPlus_2-NumMinusPlus_1;
printf("значение Dlit= %f \n",Dlit);
for (i=0;i<Dlit/2;i++)
{WriteSignal[i]=Max;
};
for (i=Dlit/2;i<Dlit;i++)
{WriteSignal[i]=Min;
};
for (msec = 0; msec < 2000; msec++)
{
for (i = 0; i < Dlit; i++)
{
/* Передача сигнала в левый канал кодека */
while (!DSK5510_AIC23_write16(hCodec, WriteSignal[i]));
/* Передача сигнала в правый канал кодека */
while (!DSK5510_AIC23_write16(hCodec, WriteSignal[i]));
};
};
//12. Восстановление аналогового сигнала по ДПФ
t=0;
C1=(Max+Min)/2;
C2=(Max-Min)/2;
W=Dlit;
W=6.28/W;
for (i=0;i<Dlit;i++)
{
sinevosst[i]=C1+2*C2*cos(W*t);
t++;
};
for (msec = 0; msec < 2000; msec++)
{
for (i = 0; i < Dlit; i++)
{
/* Передача сигнала в левый канал кодека */
while (!DSK5510_AIC23_write16(hCodec, sinevosst[i]));
/* Передача сигнала в правый канал кодека */
while (!DSK5510_AIC23_write16(hCodec, sinevosst[i]));
};
};
/*13. Остановить кодек */
DSK5510_AIC23_closeCodec(hCodec);
}
Шаг 5. Провести компиляцию и запуск программы. Открыть рабочее окно осциллографа и последовательно получить осциллограммы и спектры аналогового гармонического, дискретизированного, восстановленного сигналов. Примеры осциллограмм и спектров исследуемых сигналов приведены (в соответствии с порядком исследования) на рис. 65-68.
Рис. 65. Осциллограмма аналогового гармонического и дискретизирован. сигналов |
Рис. 66. Спектр аналогового гармонического сигнала |
Рис. 67. Спектр дискретизированного сигнала |
Рис. 68. Осциллограмма аналогового гармонического и восстановлен. сигналов |
Задание на лабораторную работу
Задание 1. Создать свой проект, позволяющий дискретизировать аналоговый гармонический сигнал и проводить его восстановление.
Для гармонического сигнала S ( t )= N * Sin ( N * ω * t ), ω =2 p f =2 p 102, N -номер варианта, определить коэффициенты Сn ДПФ, аналитическое выражение восстановленного сигнала. Полученные выражения подставить в пункт № 12 программы дискретизации гармонического сигнала C1, C2, sinevosst[i].
Задание 2. В соответствии с пунктом №2 теоретической части провести исследование:
– входного аналогового гармонического сигнала,
– дискретизированного гармонического сигнала,
– восстановленного гармонического сигнала.
Зарисовать полученные осциллограммы и спектры.
Задание 3. Изменить параметры аналогового гармонического сигнала (амплитуду и частоту). Провести исследование в соответствии с заданием №2. Письменно сделать выводы.
6 Контрольные вопросы
1. Методика дискретизации гармонического сигнала в аппаратном комплексе TMS320C5510 DSK.
2. Восстановление гармонического сигнала по дискретным отсчетам.
3. Влияние параметров гармонического сигнала (амплитуды и частоты) на процесс дискретизации и восстановления.
Список рекомендуемой литературы
1. Микушин А.В., Сажнев А.М., Седина В.И. «Цифровые устройства и микропроцессоры», СПб.: БХВ-Петербург – 2010.
2. Угрюмов Е.П. «Цифровая схемотехника»,2-е издание. Учебное пособие для ВУЗов. СПб. 2007.
3. Солонина А. И., Улахович Д. А., Арбузов С. М., Соловьева Е. Б., Гук И. И. Основы цифровой обработки сигналов: Курс лекций. СПб.: БХВ-Петербург, 2010.
Практическая работа № _6_
Количество часов, отводимых на выполнение практической работы _2_
1 Тема: « Исследование прямого и обратного вейвлет - преобразования Хаара»
2 Цель: Исследование методов представления радиотехнических сигналов. Вейвлет-представление сигналов.
Дата: 2018-11-18, просмотров: 510.