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

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

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

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

Santik писал(а): Вот этого я понять не смог. Если фильтровать преобразование Гильберта, то все усилия по получению качественной пары I/Q , будут напрасны. Если фильтровать входную функцию (что несомненно хорошо), а потом делать ПГ, то задержка не повлияет на результат...
имеется ввиду следующее. У вас есть N отсчетов исходного сигнала s(n), n = 0.. N-1. Вы хотите их пропустить через КИХ фильтр Гильберта длиной K. Тогда на выходе вы получите линейную свертку вашего сигнала s(n) и импульсной характеристики фильтра h(n). Поскольку свертка линейная, то на выходе фильтра вы будете иметь сигнал x(n), n = 0.. N+K-2, т.е. на K-1 отсчет длинее чем был сигнал до фильтра. Таким образом надо выбрать из этого сигнала сигнал длиной N отсчетов. Так вот чтобы учесть задержку в фильтре Гильберта надо выбрать начиная с отсчета номер (K-1)/2 N отсчетов. Если вы будете преобразование Гильберта делать через БПФ, то делать такую выборку не требуется.

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

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

Сообщение Santik »

Я преобразование Гильберта с помощью БПФ собираюсь делать.

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

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

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

Santik » Вчера, 01:11
Я преобразование Гильберта с помощью БПФ собираюсь делать.
Сочувствую. Ну да, сделаете Вы WAV, зациклите его... Сможете протестироваться. И не более того -- после этого программную часть начинать с нуля придется.
Если фильтровать преобразование Гильберта, то все усилия по получению качественной пары I/Q , будут напрасны. Если фильтровать входную функцию (что несомненно хорошо), а потом делать ПГ, то задержка не повлияет на результат...
Никто не предлагает "фильтровать преобразование Гильберта". Идея (моя) была в том, что надо отфильтровать исходный сигнал до преобразования (Вы, кажется, читаете по диагонали). Зачем -- если использовать КИХ (от чего Вы (пока) отказываетесь), то основная масса погрешностей придется (в силу неравномерности АЧХ КИХ-фильтра Гильберта) на нижние (в районе 0) и верхние (в районе п) частот. (Все эти погрешности в конечном счете обратятся в "зеркалки", примерно аналогичные "взаимопроникновению каналов" -- если интересно -- погоняйте икса сами -- там все в пределах школьной тригонометрии.) Если исходный сигнал речь -- полезно при этом "убрать лишнее". ДО ГИЛЬБЕРТА.
Коль скоро Вы собираетесь использовать БПФ -- то да, флаг в руки... Только для реальной полезности придется осваивать блочное Фурье с перекрытием (и с сюрпризами, о которых Вы, кажется, понятия не имеете, а я, извиняюсь, наигрался -- сначала с чужым, а теперь еще и со своим). И, кстати, заметной задержки здесь все равно не избежать.
Впрочем, для речи можно (кажется) с блочно-оконным-overlapped ДПФ получить удовлетворительные результаты -- но попрыгать придется сильно. В общем -- моя рекомендаци для Вашей задачи (если она на самом деле соответствует заявленной) -- КИХ-фильтр (попрыгать все равно придется, но, в разумных пределах для Вас (я исхожу здесь из Вашего вопроса о сравнительных достоинствах Фортрана и C/C++). Ориентировочно -- порядок Вашего "речевого" КИХ-фильтра -- 510. +- 2 раза.
Удачи.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

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

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

Сообщение Santik »

Сможете протестироваться. И не более того -- после этого программную часть начинать с нуля придется.
Меня же еще волнует, что я потом с этими сигналами делать буду. Вы же сами предупреждали:
"феномен взаимопроникновения существенно аналоговый, и может быть *очень легко* усугублен кабелями и собственно RF-частью (от I/Q входов до ножек модулятора)"
Можно, наверное, программно поиграться сдвигая спектр герц на 100.
(Вы, кажется, читаете по диагонали).
Это точно подмечено! Причем начинать читаю с правого нижнего угла. И если не нахожу фраз типа :
"я пытаюсь отвечать из расчета на положительный результат" или "Удачи", то не читаю совсем... :lol:
По невежеству своему был уверен, что все "нормальные люди" делают Преобразование Гильберта исключительно через FFT, поэтому не сразу "въехал" в суть Ваших предложений.
В принципе аналогичная задача давно решена, причем в "железе" http://microtelecom.it/ssbdex/ssbdex-e.htm

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

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

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

Очевидно, что задача давно решена, причем в железе, причем не один раз и не одним способом. Я же считал, что Вы хотите обойти необходимость реализации "в железе" при помощи компа и звуковухи -- что, само по себе, некоторая идея "домашнего" решения -- не факт, что очень хорошая, тем не менее идея. А поиграться -- хорошо, только для этого достаточно было прочитать два раздела сайта и воспользовавшись dsplib.dll, написать функцию строк на 20. Или FFTW, и написать функцию строк на 40. Кстати, именно это и предлагал Вам Сергей Бахурин в самом начале темы -- в кчестве практики, так что по диагонали Вы читаете не только меня :(
ps: ну а я, как Вы заметили, персонаж XIX века -- другой язык, другая культура. Вот и получилась совместными усилиями ветка "ни о чем". :oops:
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

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

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

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

Вот и получилась совместными усилиями ветка "ни о чем"
Ну почему же ни о чем? Вполне нормальный диалог получился. Кстати приведенная схема модулятора SSB с http://microtelecom.it/ssbdex/ssbdex-e.htm довольно изящна по сути и решает многие проблемы с неидеальностью преобразователя Гильберта, перекладывая подавление на плечи ФНЧ. Я признаться такую схему еще не встречал. Надо будет ее как следует проанализировать. Если же после ФНЧ реализовать еще одно квадратурное преобразование вверх (сместить назад уже комплексный сигнал), то получится чистый аналитический сигнал с подавлением в отрицательной области столько сколько даст ФНЧ.

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

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

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

приведенная схема модулятора SSB с http://microtelecom.it/ssbdex/ssbdex-e.htm довольно изящна по сути и решает многие проблемы с неидеальностью преобразователя Гильберта, перекладывая подавление на плечи ФНЧ
Ну да, изящна. Но, обращает внимание, что при Fд=12 КГц получена полоса пропускания 1,2 КГц. При сравнительно высоком порядке КИХ ФНЧ. Это решение выходит, к сожалению, за рамки моих интересов в вопросе, но, полагаю, что если его начать обобщать, вылезут те же "рожки", что и у классического фильтра Гильберта (т.е. рост порядка КИХ ФНЧ быстрее роста тактовых частот / буферов DSP-ориентированных ПЛИС :) ) (зато, кажется, (если я правильно там все понял) с хорошей передачей нижних частот спектра, что для традиционного КИХ Гильберта затруднительно).
----
Кстати, еще раз перечитал и вроде бы понял (??), что основной принцип тот же, что и при воспроизведении сигнала с передискретизацией -- получить хорошее приближение того или иного фильтра за счет заведомо повышенной Fд. Так что порядок фильтра определяется, кажется, только потребностями подавления...
Последний раз редактировалось Ivan Karamazov 05 янв 2011, 19:13, всего редактировалось 2 раза.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

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

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

Сообщение Santik »

Бахурин Сергей
Вполне нормальный диалог получился.
Полность согласен!

Ivan Karamazov
ps: ну а я, как Вы заметили, персонаж XIX века -- другой язык, другая культура.
Извините! Может надо было сразу попытаться с Вами на языке - ХХI пообщаться?

Хелп!!!! Препод [удалено модератором] озверел и к 11 января требует [удалено модератором] написать прогу "для получения с ссаундкарты компа типа "стерио-сигнал" (1-й канал - микрафон, 2-й канал - приобразование Хильбертга 1-го канала". ХЕЛП!!!, хто такой Хильбертг?

(Это примерно в стиле общения с весьма уважаемого мной сайта wasm.ru)
Последний раз редактировалось Santik 05 янв 2011, 20:46, всего редактировалось 1 раз.

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

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

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

Ivan Karamazov писал(а): Ну да, изящна. Но, обращает внимание, что при Fд=12 КГц получена полоса пропускания 1,2 КГц. При сравнительно высоком порядке КИХ ФНЧ. Это решение выходит, к сожалению, за рамки моих интересов в вопросе, но, полагаю, что если его начать обобщать, вылезут те же "рожки", что и у классического фильтра Гильберта (т.е. рост порядка КИХ ФНЧ быстрее роста тактовых частот / буферов DSP-ориентированных ПЛИС :) ) (зато, кажется, (если я правильно там все понял) с хорошей передачей нижних частот спектра, что для традиционного КИХ Гильберта затруднительно).
Ну это у них. Но если это все в цифре делать и первое преобразование делать на частоту , то синусы и косинусы получатся в виде , а синусы соответственно , где - номер отсчета. Нетрудно видеть, что синусы и косинусы преобразуются в нули и +-1. Потом ставим полуполосный ФНЧ (Half band filter) можно БИХ если фазовые искажения допустимы (а они как правило в связи допустимы), и подавили все что в отрицательной области двумя ФНЧ. Потом осталось назад сдвинуть, теже синусы и косинусы вырожденные в +-1. Проверил только что - работает вполне себе ничего альтернатива Гильберту на БПФ. Если бих фильтр ставить вообще ураган, гораздо быстрее чем с БПФ. Но как раз в области нижних частот и верхних искажения фильтром вносятся.

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

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

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

Да, вот теперь окончательно дошло. Но меня уже вполне развратило ДПФ. Для начала -- халявной фильтрацией, о какой ранее и мечтать не мог. Но, кажется, дорога к реальному времени открыта, так что действительно ничего так получилось. :)
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Ответить