Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК МПСС.doc
Скачиваний:
38
Добавлен:
09.11.2019
Размер:
11 Mб
Скачать

3. Реализация ких фильтра на dsk5510 для фильтрации звукового сигнала в реальном времени.

  1. Сконфигурировать ИСР CCS для работы с платой DSK5510.

  2. Создать проект «exp_2» аналогичный проекту «exp_3» из работы №2.

  3. В файл «main.c» внести изменения в соответствии с листингом 3.1.

Листинг 3.1 – Листинг файла «main.c»

#include "bios_filtrcfg.h"

#include "filter.h"

#include "dsk5510.h"

#include "dsk5510_aic23.h"

/* Codec configuration settings */

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

};

void main()

{

DSK5510_AIC23_CodecHandle hCodec;

Int16 *x;

DSK5510_init();

hCodec = DSK5510_AIC23_openCodec(0, &config);

DSK5510_AIC23_setFreq(hCodec,DSK5510_AIC23_FREQ_44KHZ);

ClearSimpleBuff();

while(1)

{

while (!DSK5510_AIC23_read16(hCodec, x));

inp_buf[0]=*x;

run_filter();

while (!DSK5510_AIC23_write16(hCodec, inp_buf[0])); //вывод исходного сигнала в левый канал

while (!DSK5510_AIC23_write16(hCodec, out_buf[0])); //вывод отфильтрованного сиганала в правый канал

}

}

  1. В директорию с проектом скопировать файл «filter.h» из проекта рассмотренного во втором разделе.

  2. В файле «filter.h» изменить значение константы «LENBUF» со 120 на 1. Таким образом, размер входного и выходного буфера станет равным единицы.

  3. Линейный выход звуковой карты соединить с линейным входом платы DSK5510.

  4. В разветвитель, в линейном входе звуковой карты, вставить колонки (наушники).

  5. Свободное гнездо разветвителя соединить с линейным выходом платы DSK5510.

  6. Запустить программу «TES2» и открыть окно спектроанализатора.

  7. Скомпилировать проект в среде ИСР CCS, и загрузить в плату.

  8. Поставить на воспроизведение любой звуковой файл.

  9. Запустить программу на выполнение, после этого в окне спектроанализатора программы «TES2» появится спектр сигнала, рисунок 3.1.

Рисунок 3.1 – Спектр исходного и отфильтрованного сигнала.

Здесь красным цветом обозначен исходный сигнал, а синим отфильтрованный сигнал. Программа «TES2» анализирует левый и правый канал стерео сигнала, разделяя их на канал А и канал В.

Частота среза вычисляется следующим образом: 44000 Гц (частота дискретизации) * 0.0773 ≈ 3400 Гц.

Индивидуальные задания студентам выдаются во время лабораторной работы преподавателем.