имеется ввиду следующее. У вас есть 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 писал(а): Вот этого я понять не смог. Если фильтровать преобразование Гильберта, то все усилия по получению качественной пары I/Q , будут напрасны. Если фильтровать входную функцию (что несомненно хорошо), а потом делать ПГ, то задержка не повлияет на результат...
"Стереосигнал"
- Бахурин Сергей
- Администратор
- Сообщения: 1119
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: "Стереосигнал"
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Стереосигнал"
Я преобразование Гильберта с помощью БПФ собираюсь делать.
-
- Сообщения: 89
- Зарегистрирован: 28 окт 2010, 22:31
- Откуда: Москва
Re: "Стереосигнал"
Сочувствую. Ну да, сделаете Вы WAV, зациклите его... Сможете протестироваться. И не более того -- после этого программную часть начинать с нуля придется.Santik » Вчера, 01:11
Я преобразование Гильберта с помощью БПФ собираюсь делать.
Никто не предлагает "фильтровать преобразование Гильберта". Идея (моя) была в том, что надо отфильтровать исходный сигнал до преобразования (Вы, кажется, читаете по диагонали). Зачем -- если использовать КИХ (от чего Вы (пока) отказываетесь), то основная масса погрешностей придется (в силу неравномерности АЧХ КИХ-фильтра Гильберта) на нижние (в районе 0) и верхние (в районе п) частот. (Все эти погрешности в конечном счете обратятся в "зеркалки", примерно аналогичные "взаимопроникновению каналов" -- если интересно -- погоняйте икса сами -- там все в пределах школьной тригонометрии.) Если исходный сигнал речь -- полезно при этом "убрать лишнее". ДО ГИЛЬБЕРТА.Если фильтровать преобразование Гильберта, то все усилия по получению качественной пары I/Q , будут напрасны. Если фильтровать входную функцию (что несомненно хорошо), а потом делать ПГ, то задержка не повлияет на результат...
Коль скоро Вы собираетесь использовать БПФ -- то да, флаг в руки... Только для реальной полезности придется осваивать блочное Фурье с перекрытием (и с сюрпризами, о которых Вы, кажется, понятия не имеете, а я, извиняюсь, наигрался -- сначала с чужым, а теперь еще и со своим). И, кстати, заметной задержки здесь все равно не избежать.
Впрочем, для речи можно (кажется) с блочно-оконным-overlapped ДПФ получить удовлетворительные результаты -- но попрыгать придется сильно. В общем -- моя рекомендаци для Вашей задачи (если она на самом деле соответствует заявленной) -- КИХ-фильтр (попрыгать все равно придется, но, в разумных пределах для Вас (я исхожу здесь из Вашего вопроса о сравнительных достоинствах Фортрана и C/C++). Ориентировочно -- порядок Вашего "речевого" КИХ-фильтра -- 510. +- 2 раза.
Удачи.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Стереосигнал"
Меня же еще волнует, что я потом с этими сигналами делать буду. Вы же сами предупреждали:Сможете протестироваться. И не более того -- после этого программную часть начинать с нуля придется.
"феномен взаимопроникновения существенно аналоговый, и может быть *очень легко* усугублен кабелями и собственно RF-частью (от I/Q входов до ножек модулятора)"
Можно, наверное, программно поиграться сдвигая спектр герц на 100.
Это точно подмечено! Причем начинать читаю с правого нижнего угла. И если не нахожу фраз типа :(Вы, кажется, читаете по диагонали).
"я пытаюсь отвечать из расчета на положительный результат" или "Удачи", то не читаю совсем...

По невежеству своему был уверен, что все "нормальные люди" делают Преобразование Гильберта исключительно через FFT, поэтому не сразу "въехал" в суть Ваших предложений.
В принципе аналогичная задача давно решена, причем в "железе" http://microtelecom.it/ssbdex/ssbdex-e.htm
-
- Сообщения: 89
- Зарегистрирован: 28 окт 2010, 22:31
- Откуда: Москва
Re: "Стереосигнал"
Очевидно, что задача давно решена, причем в железе, причем не один раз и не одним способом. Я же считал, что Вы хотите обойти необходимость реализации "в железе" при помощи компа и звуковухи -- что, само по себе, некоторая идея "домашнего" решения -- не факт, что очень хорошая, тем не менее идея. А поиграться -- хорошо, только для этого достаточно было прочитать два раздела сайта и воспользовавшись dsplib.dll, написать функцию строк на 20. Или FFTW, и написать функцию строк на 40. Кстати, именно это и предлагал Вам Сергей Бахурин в самом начале темы -- в кчестве практики, так что по диагонали Вы читаете не только меня
ps: ну а я, как Вы заметили, персонаж XIX века -- другой язык, другая культура. Вот и получилась совместными усилиями ветка "ни о чем".

ps: ну а я, как Вы заметили, персонаж XIX века -- другой язык, другая культура. Вот и получилась совместными усилиями ветка "ни о чем".

Если ваши решения вам нравятся -- это хорошие решения. И наоборот.
- Бахурин Сергей
- Администратор
- Сообщения: 1119
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: "Стереосигнал"
Ну почему же ни о чем? Вполне нормальный диалог получился. Кстати приведенная схема модулятора SSB с http://microtelecom.it/ssbdex/ssbdex-e.htm довольно изящна по сути и решает многие проблемы с неидеальностью преобразователя Гильберта, перекладывая подавление на плечи ФНЧ. Я признаться такую схему еще не встречал. Надо будет ее как следует проанализировать. Если же после ФНЧ реализовать еще одно квадратурное преобразование вверх (сместить назад уже комплексный сигнал), то получится чистый аналитический сигнал с подавлением в отрицательной области столько сколько даст ФНЧ.Вот и получилась совместными усилиями ветка "ни о чем"
-
- Сообщения: 89
- Зарегистрирован: 28 окт 2010, 22:31
- Откуда: Москва
Re: "Стереосигнал"
Ну да, изящна. Но, обращает внимание, что при Fд=12 КГц получена полоса пропускания 1,2 КГц. При сравнительно высоком порядке КИХ ФНЧ. Это решение выходит, к сожалению, за рамки моих интересов в вопросе, но, полагаю, что если его начать обобщать, вылезут те же "рожки", что и у классического фильтра Гильберта (т.е. рост порядка КИХ ФНЧ быстрее роста тактовых частот / буферов DSP-ориентированных ПЛИСприведенная схема модулятора SSB с http://microtelecom.it/ssbdex/ssbdex-e.htm довольно изящна по сути и решает многие проблемы с неидеальностью преобразователя Гильберта, перекладывая подавление на плечи ФНЧ

----
Кстати, еще раз перечитал и вроде бы понял (??), что основной принцип тот же, что и при воспроизведении сигнала с передискретизацией -- получить хорошее приближение того или иного фильтра за счет заведомо повышенной Fд. Так что порядок фильтра определяется, кажется, только потребностями подавления...
Последний раз редактировалось Ivan Karamazov 05 янв 2011, 19:13, всего редактировалось 2 раза.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Стереосигнал"
Бахурин Сергей
Ivan Karamazov
Хелп!!!! Препод [удалено модератором] озверел и к 11 января требует [удалено модератором] написать прогу "для получения с ссаундкарты компа типа "стерио-сигнал" (1-й канал - микрафон, 2-й канал - приобразование Хильбертга 1-го канала". ХЕЛП!!!, хто такой Хильбертг?
(Это примерно в стиле общения с весьма уважаемого мной сайта wasm.ru)
Полность согласен!Вполне нормальный диалог получился.
Ivan Karamazov
Извините! Может надо было сразу попытаться с Вами на языке - ХХI пообщаться?ps: ну а я, как Вы заметили, персонаж XIX века -- другой язык, другая культура.
Хелп!!!! Препод [удалено модератором] озверел и к 11 января требует [удалено модератором] написать прогу "для получения с ссаундкарты компа типа "стерио-сигнал" (1-й канал - микрафон, 2-й канал - приобразование Хильбертга 1-го канала". ХЕЛП!!!, хто такой Хильбертг?
(Это примерно в стиле общения с весьма уважаемого мной сайта wasm.ru)
Последний раз редактировалось Santik 05 янв 2011, 20:46, всего редактировалось 1 раз.
- Бахурин Сергей
- Администратор
- Сообщения: 1119
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: "Стереосигнал"
Ну это у них. Но если это все в цифре делать и первое преобразование делать на частотуIvan Karamazov писал(а): Ну да, изящна. Но, обращает внимание, что при Fд=12 КГц получена полоса пропускания 1,2 КГц. При сравнительно высоком порядке КИХ ФНЧ. Это решение выходит, к сожалению, за рамки моих интересов в вопросе, но, полагаю, что если его начать обобщать, вылезут те же "рожки", что и у классического фильтра Гильберта (т.е. рост порядка КИХ ФНЧ быстрее роста тактовых частот / буферов DSP-ориентированных ПЛИС) (зато, кажется, (если я правильно там все понял) с хорошей передачей нижних частот спектра, что для традиционного КИХ Гильберта затруднительно).
-
- Сообщения: 89
- Зарегистрирован: 28 окт 2010, 22:31
- Откуда: Москва
Re: "Стереосигнал"
Да, вот теперь окончательно дошло. Но меня уже вполне развратило ДПФ. Для начала -- халявной фильтрацией, о какой ранее и мечтать не мог. Но, кажется, дорога к реальному времени открыта, так что действительно ничего так получилось. 

Если ваши решения вам нравятся -- это хорошие решения. И наоборот.