реклама на сайте
подробности

 
 
> Сдвиг частотного спектра с помощью МДКП (MDCT). Прошу помочь., проблема с реальным аудиосигналом. Подскажете?
ZeroQu
сообщение Aug 4 2011, 08:23
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 13-08-07
Пользователь №: 29 763



Задача: передать аудиосигнал по аналоговому каналу, который плохо проводит сигналы аудиочастот. Для этого входной аудиосигнал преобразовать в спектр, изменить этот спектр (сдвинуть и сжать/растянуть) и затем обратно преобразовать в аудио. На удаленном конце сделать обратную процедуру.

Решено было использовать Модифицированное Дискретное Косинусное Преобразование, т.к. оно позволяет склеивать соседние куски при обработке.

Все это делается на микроконтроллете STM32F103RET6. Есть DSP-библиотека от ST, из которой позаимствована функция БПФ (на 64 отсчета). В интернете так же нашел реализацию МДКП через БПФ. smile3046.gif

Работает это так. АЦП непрерывно молотит данные в буфер длиной 4N. Когда половина заполняется - возникает прерываение и первые 2N отсчетов поступают в функцию МДКП (в это время АЦП заполняет вторую часть буфера). Функция МДКП формирует массив длиной 4N: первая половина - вход АЦП от предыдущего(!) вызова функции; вторая половина - то что только что получили из буфера АЦП (оно же сохраняется для следующего вызова МДКП). Затем накладывается окно Ханна (т.е. просто полпериода синуса).

Затем собственно само МДКП: сдвиг на 1/4; преротация (подготовка к БПФ; из 4N отсчетов получаем N комплексных числа); само БПФ; постротация; сортировка.

Потом, по идее, должно идти преотразование спектра. Но пока тут ничего не делаю.

Затем оМДКП (все аналогично МДКП; на выходе имеем 4N отсчетов).

На эти выходные 4N значений опять накладываем такое же окно, и к первой половине прибавляем вторую половину, но от предыдущего вызова функции. А вторую половину, соответственно, сохраняем для следующего вызова.

Я проверял все это на синусоидальном входном сигнале.

Проблема заключается в том, что алгоритм нормально работает только когда во входных (для МДКП) 2N отсчетах помещается целое количество периодов входного сигнала. Как быть? Я знаю, что МДКП применяется, например в OGG Vorbis, и вроде бы даже в простом MP3.

Уважаемые форумчане, прошу подсказать: cranky.gif

1. Как работает МДКП, когда на входе произвольный сигнал? Правильно ли я использую наложение окон?

2. Можно ли добитсья поставленной цели другим путем? Нужно перевести в частотную область, там преобразовать определенным образом, и потом перевести обратно во временную. При этом чтобы голос был нормально слышен.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
связист
сообщение Aug 4 2011, 09:21
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 1-08-08
Из: Санкт-Петербург
Пользователь №: 39 377



А может быть надо просто сдвинуть спектр в ту область, которая хорошо передаётся по каналу связи. Затем передать сигнал. И после этого сдвинуть обратно. Сделать это можно очень просто во временной области, при этом не используя ни МДКП, ни БПФ, ни какое-либо другое подобное преобразование.
Не понятно для чего нужно играть со спектром - сжимать и разжимать его.
Go to the top of the page
 
+Quote Post
ZeroQu
сообщение Aug 4 2011, 09:57
Сообщение #3





Группа: Участник
Сообщений: 8
Регистрация: 13-08-07
Пользователь №: 29 763



связист, вы не могли бы сказать, как можно сдвинуть спектр во временной области? Буду благодарен. Не очень разбираюсь в ЦОСе.


Сжимать/разжимать спектр предполагается для того, чтобы как можно лучше "вписаться" в характеристики линии передачи. Одновременно со сдвигом спектра предполагается и увеличение частоты семплирования на удаленном конце.

Go to the top of the page
 
+Quote Post
bahurin
сообщение Aug 4 2011, 10:11
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 20-09-08
Пользователь №: 40 347



Цитата(ZeroQu @ Aug 4 2011, 13:57) *
связист, вы не могли бы сказать, как можно сдвинуть спектр во временной области? Буду благодарен. Не очень разбираюсь в ЦОСе.


Сжимать/разжимать спектр предполагается для того, чтобы как можно лучше "вписаться" в характеристики линии передачи. Одновременно со сдвигом спектра предполагается и увеличение частоты семплирования на удаленном конце.


Сигнал сдвигается по частоте при помощи модулятора. Читай здесь

Сообщение отредактировал bahurin - Aug 4 2011, 10:12
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016