Исследование дискретизации сигналов
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Исходные заготовки проекта находятся в папке 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, просмотров: 444.