Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_lab_GII.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
671 Кб
Скачать
☆

4 Комутація каналів

4.1 Мета роботи

Дослідити вузькосмуговий адаптивний багатошвидкісний модуль кодування AMR-NB, який застосовується у системах з комутацією каналів і відповідної специфікації Європейського інституту стандартів зв'язку 3GPP TS 26.073. Наприклад, при передачі мови в системах мобільного глобального зв'язку.

4.2 Методичні вказівки з організації самостійної роботи студентів

Дати загальне уявлення про фільтрацію сигналів.

Визначити вимоги до характеристик фільтра.

Познайомитися з КІХ-фільтрами (фільтрами з кінцевою імпульсною характеристикою).

Оцінити переваги цифрових фільтрів.

Обговорити переваги використання ЦПОС для реалізації цифрових фільтрів.

Розглянути джерела шуму в цифрових фільтрах.

Після закінчення самопідготовки студентам необхідно отримати уявлення про аналогові та цифрові фільтри.

4.3 Опис лабораторної установки

4.3.1 Опис цифрового фільтра

М аємо трансверсальний цифровий фільтр восьмого порядку, зображений на рис. 4.1. Необхідно дослідити вплив параметрів фільтра на характеристики фільтра в часовій і частотній областях за допомогою тестових цифрових послідовностей, наведених у специфікації GSM Європейського інституту стандартів зв'язку.

Рисунок 4.1 – Трансверсальний цифровий фільтр восьмого порядку

4.3.2 Опис функції fwrite

Функція fwrite записує дані в потік.

size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

Function

Required Header

Compatibility

fwrite

<stdio.h>

ANSI, Win 95, Win NT

For additional compatibility information, see Compatibility in the Introduction.

Libraries

LIBC.LIB

Single thread static library, retail version

LIBCMT.LIB

Multithread static library, retail version

MSVCRT.LIB

Import library for MSVCRT.DLL, retail version

Return Value fwrite returns the number of full items actually written, which may be less than count if an error occurs. Also, if an error occurs, the file-position indicator cannot be determined.

Parameters buffer

Pointer to data to be written size

Item size in bytes count

Maximum number of items to be written stream

Pointer to FILE structure

Remarks

The fwrite function writes up to count items, of size length each, from buffer to the output stream. The file pointer associated with stream (if there is one) is incremented by the number of bytes actually written. If stream is opened in text mode, each carriage return is replaced with a carriage-return – linefeed pair. The replacement has no effect on the return value.

Example

/* FREAD.C: This program opens a file named FREAD.OUT and

* writes 25 characters to the file. It then tries to open

* FREAD.OUT and read in 25 characters. If the attempt succeeds,

* the program displays the number of actual items read.

*/

#include <stdio.h>

void main( void )

{

FILE *stream;

char list[30];

int i, numread, numwritten;

/* Open file in text mode: */

if( (stream = fopen( "fread.out", "w+t" )) != NULL )

{

for ( i = 0; i < 25; i++ )

list[i] = (char)('z' - i);

/* Write 25 characters to stream */

numwritten = fwrite( list, sizeof( char ), 25, stream );

printf( "Wrote %d items\n", numwritten );

fclose( stream );

}

else

printf( "Problem opening the file\n" );

if( (stream = fopen( "fread.out", "r+t" )) != NULL )

{

/* Attempt to read in 25 characters */

numread = fread( list, sizeof( char ), 25, stream );

printf( "Number of items read = %d\n", numread );

printf( "Contents of buffer = %.25s\n", list );

fclose( stream );

}

else

printf( "File could not be opened\n" );

}

Output

Wrote 25 items

Number of items read = 25

Contents of buffer = zyxwvutsrqponmlkjihgfedcb

4.4 Порядок виконання роботи та методичні указівки щодо її виконання

Крок 1. На основі проекту вузькосмугового адаптивного багато швидкісного модуля кодування AMR-N стандарту GSM 06.73, розробленого у другій лабораторній роботі, створити здійсненний файл AMR_N_extract12k.exe. Цей файл знадобиться для перетворення файла (Seq01.cod) параметрів кодування в 5 файлів за допомогою командного рядка (/AMR_N_extract12k.exe MR122 Seq01.inp Seq01.cod). Створення здійсненного файла виконати в такий спосіб:

1) за допомогою команди Open Workspace меню File пакета автоматизованого проектування Microsoft Visual C++ відкрити робочий простір проекту модуля кодування, створеного у другій лабораторній роботі та виконати зміну файла coder.c;

2) після оголошення штатного файлу в рядку #104 (FILE *file_serial = NULL; /* File of coded bits*/) додати оголошення для формованого файла

FILE *file_prm_Seq01_L_L9 = NULL; /* File of coded parameters L9*/

3) після оголошення буфера штатного файла в рядку #108 (Word16 serial[SERIAL_FRAMESIZE]; /* Output bitstream buffer */) додати оголошення буфера для формованого файла

Word16 prm_Seq01_L_L9[1]; /* Output parameter Seq01_L_L9 buffer */

4) після функції відкриття штатного вихідного файла в рядку #211

else if ((file_serial = fopen (serialFileName, "wb")) == NULL)

{

fprintf (stderr,"Error opening output bitstream file %s !!\n",serialFileName);

exit (1);

}

fprintf (stderr, " Output bitstream file: %s\n", serialFileName);

додати функцію відкриття вихідного файла AMR_N_Seq01_L_L9.12k

if ((file_prm_Seq01_L_L9 = fopen (“AMR_N_Seq01_L_L9.12k”, "wb")) == NULL)

{

fprintf (stderr,"Error opening output bitstream file %s !!\n",serialFileName);

exit (1);

}

fprintf (stderr, " Output bitstream file: %s\n", serialFileName);

5) під час функції кодування

Speech_Encode_Frame(speech_encoder_state, mode,

new_speech, &serial[1], &used_mode);

необхідно додати вказівник на масив параметрів, формованих модулем кодування

Speech_Encode_Frame(speech_encoder_state, mode,

new_speech, &serial[1], &used_mode, &prm_Seq01_L_L9[0]);

6) у файлі sp_enc.c доповнити визначення функції Speech_Encode_Frame () вказівником на вихідний масив параметрів prm

int Speech_Encode_Frame (

Speech_Encode_FrameState *st, /* i/o : post filter states */

enum Mode mode, /* i : speech coder mode */

Word16 *new_speech, /* i : speech input */

Word16 *serial, /* o : serial bit stream */

enum Mode *usedMode, /* o : used speech coder mode */

Word16 *prm_Seq01_L_L9 /* o : parameter stream */

)

7) у файлі sp_enc.c записати після виклику функції кодування (cod_amr(st->cod_amr_state, mode, new_speech, prm, usedMode, syn);) оператор, що вибирає з масиву параметрів один потрібний елемент, що містить період основного тону відповідно до таблиці параметрів кодування, записаної у файлі bitnb.tab

prm_Seq01_L_L9[0] = prm[5];

8) після функції, що записує штатний вихідний файл

if (fwrite (serial, sizeof (Word16), SERIAL_FRAMESIZE, file_serial)

!= SERIAL_FRAMESIZE) {

fprintf(stderr, "\nerror writing output file: %s\n",

strerror(errno));

exit(-1);

}

fflush(file_serial);

додати функцію, що записує файл AMR_N_Seq01_L_L9.12k

if (fwrite (prm_Seq01_L_L9, sizeof (Word16), 1, file_prm_Seq01_L_L9)

== SERIAL_FRAMESIZE) {

fprintf(stderr, "\nerror writing output file: %s\n",

strerror(errno));

exit(-1);

}

fflush(file_prm_Seq01_L_L9);

Крок 2. Виконати тестування створеного проекту: за допомогою пакета EDSW зрівняти отриманий файл AMR_N_Seq01_L_L9.12k з файлом Seq01_L_L9.12k, що досліджувався в третій лабораторній роботі. Вони мають бути однаковими.

Крок 3. Аналогічно отримати файли AMR_N_Seq02_S_F1.12k, AMR_N_Seq02_S_F2.12k, AMR_N_Seq02_S_F3.12k, AMR_N_Seq02_S_F4.12k, AMR_N_Seq02_S_F5.12k). Файли мають містити параметри короткочасного передбачення вузькосмугового модуля кодування стандарту GSM06.73, отримані при стисненні тестової цифрової послідовності Seq02.inp.

Крок 4. Дослідити цифрову послідовність відліків параметра трансверсального фільтра короткочасного лінійного передбачення модуля кодування стандарту GSM06.10, що втримується у файлі Seq02_S_LAR8.13k:

– за допомогою пакета EDSW відкрити такі файли: Seq02.inp, що містить вихідну тестову послідовність на вході модуля кодування по 160 відліків сигналу в кожному кадрі, і Seq02_S_LAR8.13k, що містить послідовність відліків на виході модуля кодування по одному на кожний кадр вихідної цифрової послідовності ;

– у файлі Seq02_S_LAR8.13k знайти та записати у звіт номери відліків (кадрів) і часові межі фрагмента послідовності, у якому величина параметра міняється від найменшого значення до найбільшого, виділити кольором знайдений блок;

– знайти у вихідній звуковій цифровій послідовності Seq02.inp фрагмент, що відповідає виділеному кольором блоку в послідовності Seq02_S_LAR8.13k.13k, для прискорення пошуку виділеного блоку цифрову послідовність Seq02.inp необхідно розмітити. Для цього правим клацанням миші на графіку цифрової послідовності потрібно викликати контекстне меню властивостей об'єкта. У діалоговому вікні, що відкрилося, «Параметри вікна» слід вибрати аркуш «Часові позначки» і в поле «Кадрові позначки» необхідно їх включити, встановити період 160 відліків, початок відліку рівним 0;

– виділити кольором і прослухати заданий фрагмент за допомогою команди Відтворення/Виділений блок панелі меню;

– визначити та записати у звіт динамічний діапазон зміни рівня амплітуд у виділеному блоці вхідного звукового сигналу;

– обробити виділений блок за допомогою команди Обробка / Спектральний аналіз / Сонограма, схематично зарисувати сонограму;

– оцінити та записати у звіт відліків частоти, що відповідають максимумам в амплітудно-частотному спектрі виділеного блоку; зарисувати у звіті форму імпульсів вхідної тестової послідовності, що відповідають знайденим максимумам амплітудно-частотного спектра.

Крок 5. Відповідно за наведеною вище методикою дослідити цифрову послідовність відліків параметрів трансверсального фільтра короткочасного лінійного передбачення для вузькосмугового адаптивного багатошвидкісного модуля кодування AMR-N стандарту GSM06.73.

Крок 6. Поповнити конспект лекцій необхідним матеріалом, оформити звіт у робочому зошиті та подати його викладачеві для захисту.

4.5 Зміст звіту

У робочому зошиті побудувати графіки, отримані за допомогою пакета EDSW.

4.6 Контрольні запитання та завдання

1. Які форми подання структурних схем фільтрів з кінцевою імпульсною характеристикою Вам відомі?

2. Як пов'язане дискретне перетворення Фур'є та сонограма?

3. У чому розходження між оцінкою амплітудного спектра за допомогою швидкого перетворення Фур'є та оцінкою спектра за допомогою регресивної моделі восьмого порядку – моделі лінійного передбачення (LPC)?

4. Яка розрядність подання кожного з параметрів моделі аналізу модуля кодування стандарту GSM?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]