"Стереосигнал"

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

"Стереосигнал"

Сообщение Santik »

Где найти программу для получения с аудиокарты компьютера "стереосигнала" (1-й канал - микрофон, 2-й канал - преобразование Гильберта 1-го канала) ?
Последний раз редактировалось Santik 28 дек 2010, 15:42, всего редактировалось 1 раз.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: стереосигнал

Сообщение Бахурин Сергей »

ну насчет стандартных программ не вкурсе, но можете взять dsp.dll c сайта, там есть преобразователь гильберта и такую софтинку написать самостоятельно. Также можно взять матлаб или октаве и в нем сделать преобразование и вывести все через звуковуху

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: "Стереосигнал"

Сообщение Ivan Karamazov »

Santik, а что Вы в результате хотите получить?? Т.е. супермодулятор прямо с выхода звуковухи или что еще? Т.е. Вы задали много странных вопросов, на которые невозможно ответить, не зная, чего Вы хотите...
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: "Стереосигнал"

Сообщение Santik »

Цель - получение SSB.
Пока рассматриваю варианты и возможности построения фазовращателя на звуковой карте... Но вопросов пока много чисто "по железу": 1. Взаимное проникновение каналов 2. Есть ли фазовый сдвиг между каналами
Как это все будет влиять на конечный сигнал?
И по теории вопрос: как показано в http://matlab.exponenta.ru/communicatio ... ammod7.php избавиться от несущей невозможно даже теоретически :( Какие-то еще способы сдвига частотного спектра "вверх" существуют?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: "Стереосигнал"

Сообщение Бахурин Сергей »

1. Немного не ясно что имеется ввиду под взаимным проникновением каналов. Если вы хотите получить ssb, то ваши квадратуры будут связаны преобразованием Гильберта. Разумеется реальный преобразователь всегда будет оставлять в отрицательной области недодавленные компоненты.
2. Поскольку ваши каналы связаны преобразоанием гильберта, то между ними фазовый сдвиг 90 градусов. В результате этого сдвига конечный сигнал потеряет одну боковую полосу.
3. Поскольку преобразователь гильберта неидеален, то избавиться от постоянки не удастся. Способ сдвига частотного спектра вверх это умножение вашего комплексного аналитического сигнала на комплексную экспоненту на нужной несущей частоте.

почитайте для начала вот это http://www.dsplib.ru/content/hilbert/hilbert.html и вот это http://www.dsplib.ru/content/quadmod/quadmod.html

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: "Стереосигнал"

Сообщение Santik »

1. "Взаимопроникновение каналов" - реальный параметр любой саунд-карты. У хороших -100дБ, у плохих до -60дБ.
Таким образом на выходе (в каждом канале) имеем некую смесь левого и правого канала. Если учесть, что один из каналов будет имеет фазовый сдвиг 90 градусов (преобразование Гильберта), хотелось бы оценить насколько этот параметр будет влиять на качество SSB сигнала.
Амплитуда и фаза такой помехи зависит от частоты...
2. А насколько хорошо он "потеряет одну боковую полосу", если учесть пункт 1 и возможный постоянный временной сдвиг левого и правого канала (до 0.5 периода частоты дискретизации)?
3. Пример, приведенный мной из http://matlab.exponenta.ru/communicatio ... ammod7.php - не очень хороший, т.к. сигнал имеет постоянную составляющую. В реальном речевом сигнале её не будет, так что теоретически в SSB сигнале несущая будет задавлена полностью.
4. Сайт позиционируется как "Теория и практика цифровой обработки сигналов". Пока только "теорию" вижу...

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: "Стереосигнал"

Сообщение Бахурин Сергей »

Santik писал(а): 2. А насколько хорошо он "потеряет одну боковую полосу", если учесть пункт 1 и возможный постоянный временной сдвиг левого и правого канала (до 0.5 периода частоты дискретизации)?
Ну надо проверять. Я думаю, что будут большие проблемы с подавлением боковой, ибо задержка на 0.5 периода дискретизации вносит фазовой рассогласование. При этом фазовое рассогласование в 3 градуса дает уровень боковой полосы в -40 дБ.
Santik писал(а): Сайт позиционируется как "Теория и практика цифровой обработки сигналов". Пока только "теорию" вижу...
А что вы ожидали увидеть? Чем бесплатная длл алгоритмов ЦОС не практика? Или быть может по-вашему радиолюбительские поделки а-ля ssb через звуковуху компа это практика?

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: "Стереосигнал"

Сообщение Ivan Karamazov »

Взаимопроникновение каналов приведет к тому, что на "нормальный" однополосный спектр наложится инверсный спектр исходного сигнала с фазовым сдвигом каждой частотной компоненты П/2 с уровнем, соотв. уровню взаимопроникновения каналов -- т.е. к специфическим нелинейным искажениям (не слишком большим). Не хочю лишать Santik'а удовольствия получить этот результат самостоятельно.
В любом случае, феномен взаимопроникновения существенно аналоговый, и может быть *очень легко* усугублен кабелями и собственно RF-частью (от I/Q входов до ножек модулятора)

То, что LR - отсчеты могут иметь сдвиг до полутакта -- давно с таким не сталкивался. Будет время -- проверю на доступном железе. Что точно знаю -- общая проблема всех бытовых звуковух -- их неспособность адекватно работать на частотах некратных 48 Кгц. В частности, на 44,1 КГц можно ждать чего угодно. Т.е. если Вы собираетесь использовать бытовую звуковуху, я бы рекомендовал выбрать Fд=16 КГц. И на этой частоте ее обмерять. Если феномен действительно будет иметь место -- можно попробовать перейти на 48 КГц, но это сильно осложнит жизнь с реализацией Гильберта.
В любом случае, что обязательно надо сделать -- поставить перед Гильбертом хороший полосовой фильтр -- так примерно от 150 до 7000 Гц (для Fд 16000) -- это даст возможноть воспользоваться простой КИХ-реализацией фильтра Гильберта (с ДПФ, на *мой* взгляд можно поупражняться 2-м этапом -- и не факт, что это будет сильно лучше). Не забудьте, кстати, что КИХ-фильтр имеет групповую задержку, равную половине его порядка, т.е. в I-канале должна присутствовать соотв. задержка.
Кстати, о порядке КИХ фильтра Гильберта. Очевидно, что он должен быть четным, менее очевидно -- что порядок/2 должен быть (для удобства вычислений) -- *нечетным*. (Просили "практики" -- догадайтесь почему).
И еще раз о задержках -- звуковуха требует буферизации (как правило -- несколько тысяч отсчетов на ввод + столько же на вывод) -- это создаст весьма заметную временную задержку, которая может обесценить весь проект. Свет в конце туннеля в том, что групповая задержка КИХ фильтра Гильберта на фоне этого безобразия (для речи порядок фильтра где-то в районе 500-700-1000) пренебрежимо мала. ...

PS:
"А что вы ожидали увидеть? Чем бесплатная длл алгоритмов ЦОС не практика? Или быть может по-вашему радиолюбительские поделки а-ля ssb через звуковуху компа это практика?"
По поводу тезиса #2 -- Да, насчет соотношения теории/практики высказывание Santik'a вполне некорректно, малоприятно, и заслужено э... В общем, заслужено. Но -- сам по себе проект, даже при неудаче, может оказаться, на *мой* вкус, весьма полезен его автору. И даже жизнь изменить. А может и нет... Во всяком случае, я пытаюсь отвечать из расчета на положительный результат.
Последний раз редактировалось Ivan Karamazov 02 янв 2011, 23:44, всего редактировалось 3 раза.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

фазовые сдвиги между каналами -- лаб. работа.

Сообщение Ivan Karamazov »

Итак, фазовые сдвиги между каналами для разных звуковух:
Условия -- Fд=44,1 КГц, частота сигнала - 20 КГц (я очень хотел взять 21 КГц, но одна из карточек отказалась его воспроизводить):
Realtek AC97 встроенный (древняя, отстойная и ни на что не годная) -- фазовый сдвиг -8,2 град +-2 град.
Realtek High Definition Audio (очень популярная в качестве встроенной последние несколько лет, тоже не очень) -- фазовый сдвиг -0,2+- 0,1 град.
Creative SB NX (внешний, снят с производства и даже с тех. поддержки) -- фазовый сдвиг -- ниже предела измерений (точность измерений порядка 0,1 град).

В качестве измерителя бралась M-Audio Fasttrack Pro -- предварительно тестировалась по входу от CD/DVD плеера Jamaha DVD-S657 с CD, на который был записан сигнал с частотой 21000 Гц. Разность фаз оцифрованного сигнала на всех рабочих частотах дискретизации -- ниже предела измерений.
Выводы -- 1. фазовыми LR-сдвигами большинства современных бытовых карт можно пренебречь.
2. Морально устаревшим и давно не выпускаемым AC'97 от Realtek лучше не пользоваться, но даже в его случае сдвигу далеко до 0,5 такта.
3. Величина сдвига постоянна для данного типа карты даже на "неправильной" частоте дискретизации.
4. Обращаю внимание, что фазовый сдвиг измерялся на 20000 Гц, на более низких частотах он будет пропорционально ниже.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: "Стереосигнал"

Сообщение Santik »

Благодарю за очень полезные практические советы. Для дальнейших экпериментов собираюсь написать программу преобразовывающую wav - файл. А дальше видно будет... Может кто из радиолюбителей заинтересуется...
В любом случае, что обязательно надо сделать -- поставить перед Гильбертом хороший полосовой фильтр... Не забудьте, кстати, что КИХ-фильтр имеет групповую задержку, равную половине его порядка, т.е. в I-канале должна присутствовать соотв. задержка.
Вот этого я понять не смог. Если фильтровать преобразование Гильберта, то все усилия по получению качественной пары I/Q , будут напрасны. Если фильтровать входную функцию (что несомненно хорошо), а потом делать ПГ, то задержка не повлияет на результат...

Ответить