Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Точность вычисления фазы гармонического колебания
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
3.14
Основная задача.
Имею два АМ модулированных сигнала: 38400Гц(модулирован 160Гц) и 41000Гц (модулирован 166Гц).
На приеме, необходимо вычислять отношение фаз модулирующих колебаний с точностью 0.5-1%.
Для простоты, ЦАП на передатчике и АЦП на приемнике тактируются одной частотой (100кГц), в добавок, начало выборки синхронизировано с начальной фазой модулирующего колебания (если рассматривать только один АМ сигнал).
Для удобства поиска/отладки алгортма я подружил свой макет с MatLab-ом, всю выборку (размер которой могу управлять) вываливаю в PC, далее кручу-верчу ... (только обмануть пока не могу smile.gif)

Итак, для вычисления фазы огибающей мне необходимо знать фазу несущей, хотя ЦАП передатчика синхронен с АЦП приемника, имеется среда передачи и аналоговый тракт, который скорее всего, с течением времени/температуры будет двигать фазу несущей (еще, в идеале, АЦП и ЦАП будут работать асинхронно). Т.е. мне как минимум надо вычислить фазу несущей, фазу одной из огибающих и соответственно вычислить искомую фазу.
Беда в том, что в своих экспериментах я никак не могу получить нужную точность вычисления фазы несущей, у меня меньше 6% не получается sad.gif. Значение фазы беру из Фурье-преобразования входной выборки с наложеным окном Ханнинга, АЦП 12 разрядов, ЦАП 4 разряда(на прецизионной 0,1% R2R резистивной матрице). Смущает еще - с ростом количества отчетов в выборке, точность вычисления фазы не меняется (строил гистограммы на разные длины выборки, процесс похож на нормальный но не "обужается" с ростом количества отсчетов).

А какие еще возможны способы вычисления фазы, имеет смысл в моей задаче использовать вейвлет?
defunct
Уж не хотите ли Вы сказать, что пытаетесь найти фазу сигналов 38.4кГц и 41.0kГц имея выборку с частотой дискретизации 100kГц? Если да, тогда полученная Вами точность 6% - впечатляет. Если же речь идет о модулируемом сигнале 160 и 166 Гц соответственно, тогда, не понятно почему получается такая низкая точность. Для повышения точности попробуйте увеличить длину выборки, а также постарайтесь чтобы в выборку входило строго целое число периодов гармоники, фазу которой Вы вычисляете.
3.14
6% я получаю из фурье-преобразования что на несущие, что на боковые. Математически, Фн=Ф-Ф0 Фв=Ф+Ф0, соответсвенно меньше 6% я не получу. Длину выборки "бесконечно" увеличивать я не могу, максимум 1000 отсчетов (или 10мСек), причем как уже сказал ранее точность не меняется что с 1000 что с 10000 отсчетами. Периоды у меня "целые", я для этого специальную прогу в матлабе накатал, да и просто в качестве эксперимента, перебрал длительность по одному отсчету на период огибающей.

Хм-м, хотя последовательности в самом генераторе у меня хранятся безразрывные, про кратность количества точек я забыл smile.gif, завтра проверю.
Pathfinder
1. Для оценки фазы модулирующего колебания совсем не обязательно знать несущую с точностью до фазы. В данном случае достаточно реализовать некогерентный АМ-приемник, т.е. некоторую частотно-избирательную систему (например фильтр), выделяющую сигнал на данной частоте, после которого идет амплитудный детектор, а после него задача сводится к оценке фазы низкочастотного гармонического колебания. Эту задачу обычно решают, используя квадратурный корреляционный детектор. При этом интервал интегрирования корреляторов нужно брать максимально возможным, привязывать его к частоте сигнала не обязательно. Если надо, и подвернется свободная минутка, могу модель в Simulink набрасать.

2. Необходимо вычислять именно отношение фаз??? не разность случайно? если разность - то в итоге получится гармонический сигнал с разностной частотой.

3. 4-разрядный ЦАП обеспечивает шумы квантования ~-24дБ, то есть отношение сигнал/шум на входе АЦП порядка 20дБ, причем шумы имеют ярко выраженный дискретный характер - будут сильно влиять на точность.

4. Имея сигналы 38.4кГц и 41.0kГц с частотой дискретизации 100kГц теоретически возможно получить бесконечную точность оценки фазы при отсутствии шумов и квантования, ибо частота дискретизации не кратна частотам сигналов.
3.14
2 Pathfinder
1) Оба АМ сигнала проходят через УЗ передатчик и приемник АЧХ которых носит резонансный характер, в результате сдвигаются как фазы боковых состовляющих так и амплитуда и в результате детектирования получу биение и как выковыривать от туда фазу не особо представляю, к тому же узкий фильтр затянет/оттянет время измерения, а оно у м еня должно быть в идеале 5мС, но можно и 10-20мС. Еще в этом способе я нахватаю помех от соседнего АМ. А насчет модельки Simulink, если сделаете буду очень признателен.

2) Пока не особо важно, если нет необходимой точности для последующих манипуляций.

3) От части он режется УЗ датчиками, я пробовал считать фурье и из 100000 отсчетов, влияние шума квантования ЦАП должно снизиться, но это не привело к ощутимым улучшениям.
Pathfinder
Боюсь маловато такого времени измерения - 5мс, хотя бы один период надо целиком. Вот моделька - с ходу получается погрешность ~0.3 градуса при переходном процессе 30мс. Наверняка можно выжать и лучше если пооптимизировать параметры. Этот метод еще вроде называют методом Ньютона-Рафсона.
3.14
Спасибо за модедьку.
eteP
Можно попробывать так. Если я правильно понял вашу задачу.

Разрабатываете два бандпас ФИР фильтра на вашу частоту. Один делает косинус преобразование, другой синус преобразовние. На выходе у вас будет сигнал I and Q. Вот вам и угол. Задержа фильтра известна, ее можно учесть. Угол между соседними векторами и есть ваша частота. Вом она тоже известна. Так что вычислисть начальную фазу не составит большого труда. Можно потом еще среднее считать для увеличения точности.

Тоже самое но другим путем. Ставится один фильтр который выделит вашу частоту уберет шум из сигнала (шума должно быть как-можно меньше smile.gif ). Зная частоту сигнала и частоту сэмплирования подготавливаются две таблицы косинуса и синуса на периуд. Сигнал после фильтра умножается на две эти таблицы и суммируется. Получаем два числа -> вектор. Угол начальная фаза.
3.14
Спасибо, интересные предложения, надо осмыслить smile.gif
nadie
to etep
Уточните, пожалуйста, что вы имеете в виду под
Цитата
два бандпас ФИР фильтра на вашу частоту. Один делает косинус преобразование, другой синус преобразовние

Это просто классическое квадратурное детектирование путем домножения на sin(wt) и cos(wt) с последующим low pass FIR filter или что то другое?
eteP
Цитата(nadie @ Feb 13 2006, 20:36) *
to etep
Уточните, пожалуйста, что вы имеете в виду под
Цитата
два бандпас ФИР фильтра на вашу частоту. Один делает косинус преобразование, другой синус преобразовние

Это просто классическое квадратурное детектирование путем домножения на sin(wt) и cos(wt) с последующим low pass FIR filter или что то другое?


Извените что долго не отвечал, был очень занят.
Делается это так.

Разрабатывается lowpass FIR с частатой среза Fc.
Имеем его коэффициенты K(n). Далее из этого фильтра получаем пару Hilbert FIR фильтров. Для этого применяем quadrature bandpass transform.

Ksin(n) = 2*K(n)*sin(2*pi*n*F/Fs)
Kcos(n) = 2*K(n)*cos(2*pi*n*F/Fs)

Где, F - это центральная частота и от нее +-Fc.
Fs - это частота семплирования.
Т.е. получается два Bandpass FIR фильтра с одинаковыми (почти) характеристиками.
Между двумя выходами имеем 90 градусов. Ввиду того что не всегда можно получить одинаковые характеристики, то можно к примеру сделать усреднение углов и уже среднее брать как более точную величину. Ну а дальше вы можете делать все что вам захочится. Задержка фильтра известа, фаза ленейна от частоты. И узнать в какой фазе пришел сигнал не составит большого труда.
Минусы в этой системе это два фильтра придется реализовать и тайм-летенси может быть большим.


Другой вариант на IIR фильтрах.
Разрабатываем lowpass IIR с частатой среза Fc.
Переходим в z-плоскость. На ней имеем комплексносопряженные нули и полюса.
Зная что в этой плоскости:
угол 0 соотвествует частоте 0
90 градусов (против часовой стрелки) Fs/4
180 - Fs/2
270 - 3*Fs/4
Где Fs - частота семплирования.

Делаем простую вещь. Поварачиваем каждый ноль и полюсь на угол = 360 * F/Fs
где F - центральная частота нашего будущего bandpass фильтра.
После поворота получили новые коэффициенты фильтра которые теперь комплексные. То есть у нас комплексный фильтр. Который имеет один вход и два выхода. В реализации это будет выглядить как два bandpass IIR фильтра c полосой 2Fc и между выходами ровно 90 градусов (комплексное число на выходе)

Проблемы: все которые имеет IIR фильтр
Если нужно что бы фаза была линейна от частоты, то дальше я вижу пока два варианта решения.
1. Приминить allpass фильтр и уже им скорректированть груповую задержку.
2. Это просто таблица. Где к примеру угол это адрес памяти по которому лежит число на какой угол нужно сделать поворот. Ну а если частоты или частота фиксирована, то это займет не много памяти.
nadie
to etep

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

Вы великолепно владеете теорией создания и преобразования фильтров.
С математической точки зрения, описанный вами алгоритм на discrete time domain, и моя догадка, сформулированная на continuous time domain, дают абсолютно идентичный результат. В вашем варианте фильтр сразу bandpass filter, в моем вначале frequency shift followed by lowpass filter.

Насколько я знаю большинство hardware Hilbert transformer, используемых например в Agilent приборах, построены по описанной мной схеме, с IF=4 * Fs. В этом случае frequency shift реализуется просто домножением (сменой знака) для cos path (1 0 -1 0 ...) sin path (0 1 0 -1 ...), далее идет обычно CIC filter или сразу low pass filter.

В DDC GC4016 Texas Instruments соотношение между IF и Fs не зажато, но алгоритм тот же, вначале frequency shift потом фильтрация.

Мой вопрос следующий, почему в приборах используется большей частью описанный мною вариант, а не ваш, который дает абсолютно тот же результат? У меня предположение, что так проще реализовать в железе, а вот если делать пост обработку на компьютере, то тогда ваш вариант возможно и предпочтительней, если не требуется zero phase feature.

В моих измерениях zero phase feature очень существенный момент, поэтому мой алгоритм вначале frequency shift потом двух проходная фильтрация (функция filtfilt MAtlab).

Прямо сейчас возник вопрос, а что будет, если использовать в filtfilt предложенный вами bandpass filter? Получится ли правильный результат с zero phase shift? Вечером постараюсь с этим поразбираться.

У меня есть еще один академический вопрос, на который мне не удалось найти ответа в книгах по DSP.
Суть его в следующем. Имеем датчик магнитного поля, предствляющий из себя резонансный контур, согласованный с импедансом приемника. С точки зрения DSP такой датчик есть ни что иное как bandpass filter с центральной частотой равной частоте резонанса. Требуется создать компенсирующий фильтер, который бы делал АЧХ датчика в заданном диапазоне близкой к линейной, при линейной фазе. Видимое мне лобовое решение проблемы deconvolution не совсем хорошо, так как сигнал относительно узкополосный и deconvolution значительно повышает шумы. Известно ли вам более правильное решение такой проблемы с использованием filter, полученного на основе знаний о резонансном контуре?
Pathfinder
eteP, nadie, может будем к терминологии с уважением относиться, все-таки в России живем.
nadie
to Pathfinder
Объясните, пожалуйста, в чем ваша претензия в части терминологии. Мне существенно проще использовать английскую терминологию, так как все фундаментальные книги по DSP у меня на английском (возможно и есть рускоязычные издания, но они мне не доступны). IMHO, все специалисты работающие в области RF, DSP английский знают, так как и железо и софт используемый для разработок только англоязычный.

to eteP
Более подробно свои соображения по использованию вашего алгоритма изложу немного позднее, сейчас надо с рабочими делами разобраться.
st256
Не знаю, слышит ли меня товарищ из Ижевска, но дело обстоит так:
метод у Вас правильный, у Вас окно не правильное. Просто посмотрите спектр окна Хэнна (или, что одно и тоже Хэннинга). Все вопросы у Вас исчезнут. Используйте окно Кайзера и в пол-процента Вы уложитесь.
st256
Цитата(nadie @ Feb 23 2006, 17:31) *
to Pathfinder
Объясните, пожалуйста, в чем ваша претензия в части терминологии. Мне существенно проще использовать английскую терминологию, так как все фундаментальные книги по DSP у меня на английском (возможно и есть рускоязычные издания, но они мне не доступны). IMHO, все специалисты работающие в области RF, DSP английский знают, так как и железо и софт используемый для разработок только англоязычный.


Леди, а шо, бывают специалисты в области IMHO, RF И DSP одновременно? А как по-английски будет теорема Котельникова? И это, почему русских книжек-то у Вас нету? Интернет опсоё? smile.gif
3.14
2 st256
Спасибо за "наводку", я перибирал окна (но не все) разницы не было, а чем Кайзеровское так сильно отличатеся?
Сейчас задача временно заморожена поэтому проверить не могу, но мне сдеется у меня где то зарылась системна ошибка. Я до такого "изврата" дошел:
1) записываю 1/4 - 1 период суммарной огибающей
2) пропускаю через два полосовых, настроенных на боковые разных АМ
3) "амплитудно детектирую" (отрезаю отрицательные значения, дале через ФНЧ)
4) вычисляю свертку огибающих с синусом частоты огибающих перибирая начальную фазу
5) номер итерации максимального значения свертки определяет начальную фазу.
Но даже в этом случае ошибка была достаточно велика.
st256
Цитата(3.14 @ Feb 26 2006, 04:36) *
2 st256
Спасибо за "наводку", я перибирал окна (но не все) разницы не было, а чем Кайзеровское так сильно отличатеся?


Я же сказал, посмотрите на спектрры используемых окон. Чем ближе спектр окна к дельта-функции Дирака, тем оно лучше. Окно Хэнна - это просто труба, в этом смысле.


Цитата
Сейчас задача временно заморожена поэтому проверить не могу, но мне сдеется у меня где то зарылась системна ошибка. Я до такого "изврата" дошел:
1) записываю 1/4 - 1 период суммарной огибающей
2) пропускаю через два полосовых, настроенных на боковые разных АМ



Все... Тут Вы и сыпитесь. Про переходные искажения слышали? Да еще для четверти периода? Вот это они самые и есть. Периодов должно быть много, а не четверть. Вообще-то, как измеряют фазу, я уже говорил - при помощи БПФ + окно.

Цитата
3) "амплитудно детектирую" (отрезаю отрицательные значения, дале через ФНЧ)
4) вычисляю свертку огибающих с синусом частоты огибающих перибирая начальную фазу
5) номер итерации максимального значения свертки определяет начальную фазу.
Но даже в этом случае ошибка была достаточно велика.



Ну тут я не комментирую. Я удивлен, что вообще в этом случае, что-то мерится.

Скажите, а что за задача? Про начальную фазу я вообще ничего не понял. Зачем все это?
И еще, тов. из Ижевска, это у вас делают TETRA транк для ЖД?
Krys
Цитата(st256 @ Feb 25 2006, 21:55) *
А как по-английски будет теорема Котельникова?
Она у них называется теоремой Найквиста :)) Вы не слышали такой термин, как Nyquist frequency? Ну а теорема Котельникова, видимо, будет называться Nyquist theorem.
st256
Цитата(Janna @ Feb 27 2006, 12:24) *
Цитата(st256 @ Feb 25 2006, 21:55) *

А как по-английски будет теорема Котельникова?
Она у них называется теоремой Найквиста smile.gif) Вы не слышали такой термин, как Nyquist frequency? Ну а теорема Котельникова, видимо, будет называться Nyquist theorem.


Нет, леди, боюсь Вы не правы...
Там она зовется, все-таки, теоремой Шенона. Действительно, Шенон эту теорему доказывал. Но лет на 10 позже Котельникова. Что же касается Найквиста, то и он при делах. На десять лет раньше Котельникова, он доказал очень близкую по смыслу теорему, но все же не совсем то, что мы называем Теоремой Котельникова.
nadie
To st256
Объясните, пожалуйста, почему вы считаете что метод с использованием FFT более предпочитетльный?
С точки зрения вычислительных затрат, FFT требует больших ресурсов, чем Hilbert transformer, с точки зрения точности, применение windows before FFT, аналогично разработке FIR LPF с помощью windows approach. При этом во всех фундоментальных работах по DSP показано, что FIR разработанный, например, через remez в MAtlab имеет лучшие характеристики, чем FIR LPF, разработанный с помощью windows approach.

IMHO - in my humble opinion, стандартное сокращение, используемое для подчеркивания выражение собственного мнения.

Быть специалистом в RF И DSP одновременно, объективная необходимость, если заниматься разработкой измерительных систем, и много другого. Если вы просто посмотрите на сайтах с job offer, то увидите, что в большинстве случаев знания RF И DSP требуются в паре.

Интернет у меня быстрый, но вот все найденные русские книги по DSP это обычно сканы книг, изданных преимущественно в 80 годы прошлого века. Англоязычные книги по DSP в сети можно найти очень хорошего качества, утянутые с издательств и достаточно свежие.

Как уже писалось, весь софт и железо, что мне прихожится использовать, идет англоязычной разработки, поэтому для понимания их работы гораздо проще изначально разбираться по англоязычной литературе (опять же IMHO).

Полностью признаю, что это не патриотично, но по мне сейчас не так важно, кто раньше доказал какую теорему, значительно важнее использовать и 100% понимать как работает современный RF И DSP софт и оборудование. Как только то, что сделано в России, будет конкурентноспособно с англоязычными аналогами, обязательно проштудирую русскоязычные книги по RF И DSP.
st256
Цитата
To st256
Объясните, пожалуйста, почему вы считаете что метод с использованием FFT более предпочитетльный?
С точки зрения вычислительных затрат, FFT требует больших ресурсов, чем Hilbert transformer,


Мда...
Милая девушка, как на счет того, чтобы повесить идиота, который Вам такое наплел? Такого, даже у Проакиса прочесть невозможно smile.gif
Насколько мне не изменяет память, умножений на БПФ потребно в количестве N/2*log2(N),
а преобразование Гильберта (как обычная свертка) требует N*N умножений smile.gif

Цитата
с точки зрения точности, применение windows before FFT,


А что такое бефоре? Простите, но я не знаком с окнами Бефоре...


Цитата
аналогично разработке FIR LPF с помощью windows approach.


И г-на Аппроча не знаю... А так же где у елки LPF smile.gif

Цитата
При этом во всех фундоментальных работах по DSP показано, что FIR разработанный, например, через remez в MAtlab имеет лучшие характеристики, чем FIR LPF, разработанный с помощью windows approach.


А кто спорит? Только я никаких фильтров с окнами Аппроча разрабатывать не говорил. Я все как-то на БПФ больше напирал...

Цитата
IMHO - in my humble opinion, стандартное сокращение, используемое для подчеркивания выражение собственного мнения.


Вы меня не обманываете?

Цитата
Быть специалистом в RF И DSP одновременно, объективная необходимость, если заниматься разработкой измерительных систем, и много другого.


В таком случае, попробуйте smile.gif

Цитата
Если вы просто посмотрите на сайтах с job offer, то увидите, что в большинстве случаев знания RF И DSP требуются в паре.


В паре требуются только Инь и Ян, а также соджу и мэкджу. Вроде бы, всё...


Цитата
Интернет у меня быстрый, но вот все найденные русские книги по DSP это обычно сканы книг, изданных преимущественно в 80 годы прошлого века.


Понимаете, леди, алгоритм Левинсона-Дурбина разработан в 50-е годы прошлого века. Боюсь и с прочими алгоритмами та же фигня случилась...

Цитата
Англоязычные книги по DSP в сети можно найти очень хорошего качества, утянутые с издательств и достаточно свежие.


Понимаете, тут еще знание английского надо приложить. А я и на русском в таких фолиантах нифига разобрать не могу...


Цитата
Как уже писалось, весь софт и железо, что мне прихожится использовать, идет англоязычной разработки,


Точно??? Что-то меня терзают смутные сомнения, дорогая агащи smile.gif

Цитата
поэтому для понимания их работы гораздо проще изначально разбираться по англоязычной литературе (опять же IMHO).



Это далеко не проще, но, действительно, необходимо!

Цитата
Полностью признаю, что это не патриотично, но по мне сейчас не так важно, кто раньше доказал какую теорему, значительно важнее использовать и 100% понимать как работает современный RF И DSP софт и оборудование.


Святая Правда, девушка!

Цитата
Как только то, что сделано в России, будет конкурентноспособно с англоязычными аналогами, обязательно проштудирую русскоязычные книги по RF И DSP.


Рекомендую, до сего момента не разучиться читать по-русски smile.gif
3.14
2 st256
Задача относится к системе ультразвукового определения местоположения приемника, по замыслу 3 АМ передатчика (частота огибающей - максимальная дальность) на земле, один приемник в воздухе, зная фазы у приемника вычисляем дальности.
Чего то для ЖД на ижевском радиозаводе делают, но я в другой организации.
nadie
Господа, давайте без dark sarcasm. У меня была уверенность, что английские термины присутствующие на форуме прекрасно понимают. Если нет, то лучше просто спросить, что имелось ввиду.

To st256
Вы не правы, заявляя, что свертка требует N*N умножений. Количество операций умножений при свертке зависит как длины массива данных N, так и от длины фильтра n, иными словами N*n. Если длина фильтра n << N, что выполняется в большинстве случаев, то свертка считается быстрее, При этом надо отметить, что большинство фильтров симметричные, и в этом случае количество умножений N*(n/2). Именно по этому именно свертка используется в большинстве hardware Hilbert transformer (network analyzer, spectrum analyzer, etc)

Отвечать по поводу ваших замечаний, которые вы изобразили, как бы не понимая смысла широкоупотребительных английских слов, не буду, так как просто нет смысла устраивать здесь комедию.

From Matlab help
Filters designed using the Parks-McClellan method have equal ripple in their passbands and stopbands. For this reason, they are often called equiripple filters. They represent the most efficient filter designs for a given specification, meeting your frequency response specification with the lowest order filter.
Этот алгоритм сравнительно нов (первые научные работы были в середине 70 годов), и как следствие в русские книги по DSP середины 80 не попали. А данный алгоритм сейчас является одним из наиболее мощных для разработки equiripple filters.

Как то не понятна ваша бравада на научном форуме типа
Цитата
Понимаете, тут еще знание английского надо приложить. А я и на русском в таких фолиантах нифига разобрать не могу...

с одновременным безаппеляционными утверждениями, типа сколько перемножений при свертке.

Цитата
Цитата
Как уже писалось, весь софт и железо, что мне прихожится использовать, идет англоязычной разработки,


Точно??? Что-то меня терзают смутные сомнения, дорогая агащи

Вам как список оборудования, который только под моим непосредственным началом, или весь список оборудования в лабе?
Непосредственно мое железо
Agilent E4440A, E4443A, E4421B, E4438C, 54831B, 54833D, 54854A, E5070B, есть еще Rohde&Schwarz, Keithley, SRS, BNC, etc. И соответствующий этому железу софт.

Так что предлагаю не заниматься dark sarcasm, а обсуждать вопросы по существу.
st256
Цитата(3.14 @ Feb 28 2006, 00:13) *
2 st256
Задача относится к системе ультразвукового определения местоположения приемника, по замыслу 3 АМ передатчика (частота огибающей - максимальная дальность) на земле, один приемник в воздухе, зная фазы у приемника вычисляем дальности.
Чего то для ЖД на ижевском радиозаводе делают, но я в другой организации.


Не понял фразу
частота огибающей - максимальная дальность

А у Вас знакомых на ижевском радиозаводе нету?
st256
Цитата
Господа, давайте без dark sarcasm. У меня была уверенность, что английские термины присутствующие на форуме прекрасно понимают. Если нет, то лучше просто спросить, что имелось ввиду.


А как быть, если есть уверенность, что, кроме английских терминов, присутствующие на форуме ничего не понимают?

Цитата
To st256
Вы не правы, заявляя, что свертка требует N*N умножений. Количество операций умножений при свертке зависит как длины массива данных N, так и от длины фильтра n, иными словами N*n. Если длина фильтра n << N, что выполняется в большинстве случаев, то свертка считается быстрее, При этом надо отметить, что большинство фильтров симметричные, и в этом случае количество умножений N*(n/2). Именно по этому именно свертка используется в большинстве hardware Hilbert transformer (network analyzer, spectrum analyzer, etc)


Кхе, кхе... Прочел вот... А зато у Вас, девушка, наверное хорошая фигура...

...перечитал...

нет, фигура у Вас просто фантастическая smile.gif smile.gif smile.gif


Цитата
Как то не понятна ваша бравада на научном форуме типа
Цитата
Понимаете, тут еще знание английского надо приложить. А я и на русском в таких фолиантах нифига разобрать не могу...

с одновременным безаппеляционными утверждениями, типа сколько перемножений при свертке.


Ну что же делать, если они безаппеляционны в той же степени, сколь и верны?


Цитата
Так что предлагаю не заниматься dark sarcasm, а обсуждать вопросы по существу.


Поддерживаю обсуждать по существу только то, что собеседник может понять, оценить и переварить! Девушка, я тут недавно в Зальцбурге жене туфли купил фирмы "Питер Кайзер" за 99 евро, как Вы считаете, я не сильно переплатил? smile.gif
3.14
2 st256
И огибающая и несущая распространяются с одной скоростью, однозначное определение растояния (измеряя задержку фазы) для несущей ~10мм а для огибающей ~10м.
Знакомые (и друзья) на радиозаводе имеются, что то интересует?

PS. Ребята, имейте совесть, выясняйте отношения через PM.
st256
Цитата(3.14 @ Mar 1 2006, 03:03) *
2 st256
И огибающая и несущая распространяются с одной скоростью, однозначное определение растояния (измеряя задержку фазы) для несущей ~10мм а для огибающей ~10м.


Ну вроде понял. Вообщем, считаю свое мнение правильным - использовать БПФ. Правда, мне кажется, если используется инфразвук, то возможен серьезный доплер при движении объектов, а это дополнительный геморой. Если проект у Вас продолжится, то можем продолжить дискуссию.

Цитата
Знакомые (и друзья) на радиозаводе имеются, что то интересует?


Меня интересуют разработчики TETRA (транковая связь) в России.


Цитата
PS. Ребята, имейте совесть, выясняйте отношения через PM.


Т.е. Вы предлагаете, оставлять фразы типа "свертка требует меньше перемножений, чем БПФ" без последствий? А если их кто прочтет и решит, что это истинно? Подумайте, ради Бога, о будущих поколениях разработчиков!
nadie
Я абсолютно не собираюсь выяснять здесь отношения.
To st256
Цитата
Т.е. Вы предлагаете, оставлять фразы типа "свертка требует меньше перемножений, чем БПФ" без последствий? А если их кто прочтет и решит, что это истинно? Подумайте, ради Бога, о будущих поколениях разработчиков!


Если вы не можете математически обосновать ложность утверждения "свертка требует меньше перемножений, чем БПФ при условии, что длина фильтра существенно меньше чем длина массива данных", то имейте хотя бы мужество признать, что вы не правы и извиниться.
st256
Цитата(nadie @ Mar 1 2006, 18:03) *
Я абсолютно не собираюсь выяснять здесь отношения.
To st256
Цитата
Т.е. Вы предлагаете, оставлять фразы типа "свертка требует меньше перемножений, чем БПФ" без последствий? А если их кто прочтет и решит, что это истинно? Подумайте, ради Бога, о будущих поколениях разработчиков!


Если вы не можете математически обосновать ложность утверждения "свертка требует меньше перемножений, чем БПФ при условии, что длина фильтра существенно меньше чем длина массива данных", то имейте хотя бы мужество признать, что вы не правы и извиниться.


Девушка, просто никогда не надо маскировать пробелы в знаниях, иностранными словами. Это раз.

А на счет "два", я Вам так же просто объясню, почему сверка проигрывает БПФ.

1. Что делает FIR фильтр N-ого порядка? Он берет массив выборок длинной N, перемножает со своими коэффициентами (коих количество тоже N) и полученные произведения складывает:

y1 = x1*h1 + x2*h2 + ... + xN*hN

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

Т.е. имеем: выходной отсчет FIR-фильтра это всего лишь коэффициент корреляции импульсной характеристики фильтра и входного массива выборок. Это понятно?

2. Из всего вышесказанного, вытекает следующее: количество перемножений на один выходной отсчет пропорционально порядку фильтра.
В принципе оно может быть при некоторых условиях и меньше (полифазная обработка и т.п.), но реализация фильтра обычно требует количества умножений в пределах N - N/2 в зависимости от системы команд.

3. А что делает БПФ? Да тоже самое: вычисление корреляции входного массива длинной N с набором неких коэффициентов. Длинна же каждого "набора коэффициентов" тоже равна N. При этом количество перемножений на один выходной отсчет БПФ составляет всего Log2(N)/2. Разницу ощущаете? Log2(N)/2 и N/2 ?

При этом, БПФ можно истолковать как гребенку фильтров с АЧХ вида sin(x)/x. Иначе говоря, БПФ измеряет мниную и вещественную часть некой синусоиды наилучшим образом, так как использует т.н. согласованную фильтрацию. Иначе говоря, измерить синусоиду лучше невозможно НИКАКОЙ другой схемой.


Теперь о фильтрации непрерывного сигнала (Ваше N >> n). В "фундаментальной" литературе описан следующий метод: берется сигнал, делается БПФ, домножается на хар-ку Вашего фильтра в спектральной области, потом обратное БПФ.
Называется все это сверка при помощи БПФ. Выйгрыш очень серьезный по быстродействию. Еще при помощи БПФ перемножают матрицы (та же свертка, при определенных условиях), решаются системы уравнений. Должен заметить, что приемущество БПФ перед сверткой описанно во многих учебниках по ЦОС. Короче учите букварь и не говорите больше глупостей.

За сим прощаюсь навечно, ибо я должен еще послать модератора, который вступился за Ваше попранное достоинство.
bve
Маленькая ложка дегтя для st256:

Вообще-то, если одна из двух последовательностей, участвующих в сверте,
фиксирована ( что выполняется в FIR-фильтрах ), то, используя ректангулярные преобразования, можно
постоить схему вычисления свертки со сложностью, сравнимой со сложностью БПФ,
при этом нет ограничения на то, чтобы длина была кратной 2**N.
Таким образом получим сложность=сложности БПФ, а не 2-х БПФ, как для фильтрации с помощью
перевода в спектральную область, перемножения на коэффициенты и возврата обратно.
Nixon
2 st256 - Посылать модератора ОЧЕНЬ плохая примета.
nadie
To st256
Не стоит прощаться навечно, так как

Постараюсь безэмоционально показать ошибочность ваших утверждений.

Для начала еще раз с определяемся с используемыми переменными
N - длина массива данных, которые должны быть отфильтрованы
n - длина симметричного FIR фильтра (Вы почему то для длины FIR фильтра используете переменную N, что и является причиной ошибочности вашего утверждения).

В большинстве приложений N>>n.

В этом случае количество перемножений будет N*(n/2).
Таким образом надо сравнивать Log2(N)/2 и n/2, поэтому ваша реплика
Цитата
Разницу ощущаете?

уходит в воздух.

Теперь возвращаемся к исходному тезису "свертка требует меньше перемножений, чем фильтрация через БПФ при условии, что длина фильтра существенно меньше чем длина массива данных".
При фильтрации через БПФ, вам надо иметь спектр исходных данных, спектр фильтра (это можно посчитать один раз), перемножить два спектра и рассчитать обратное преобразование фурье. Во-первых, это уже не заявленное вами N/2*log2(N), во вторый, при этом если не делать специальных дополнительных действий, в результате будет кольцевая свертка (правильное английское название Circular convolution: с вытекающим мгновенно недостатком Aliasing that can occur in the time domain when frequency domain signals are multiplied. Each period in the time domain overflows into adjacent periods.)

Нет возражений, что в фундаментальной литературе свертка через описан БПФ описана, цитируемый недостаток взят из The Scientist and Engineer's Guide to Digital Signal Processing by Steven W. Smith
California Technical Publishing ISBN 0-9660176-3-3 (1997)


Данный метод с улучшением, позволяющим избегать Circular convolution используется и в моих измерениях, когда он действительно может дать выигрыш, поэтому все тонкости этого метода мне известны.

Вы абсолютно правы утверждая, что
Цитата
При этом, БПФ можно истолковать как гребенку фильтров с АЧХ вида sin(x)/x.

Но дальше возникает два очень существенных момента,
1. Размерность ваших данных кратна степепи двойки или нет.
2. Хватит ли у вас компьютерных ресурсов для вычисления БПФ в случае большого количества данных?
3. Насколько с учетом ошибок округления и т.п., вычисление амплитуды и фазы через свертку дадут вам большую погрешность, чем БПФ?

Ответы далеко не всегда однозначны, поэтому в настоящее время на рынке присутствуют как FFT spectrum analyzer, так и spectrum analyzer сконструированные на основе свертки (фильтрации).
Pathfinder
По поводу терминологии я имел в виду следующее.
Я прекрасно понимаю, что есть куча железа, софта и литературы на английском, равно как и то что некоторые термины достаточно сложно перевести на русский. НО, как Вы уже заметили, форум научный (точнее научно-технический), притом русскоязычный, и изъясняться на всем понятном языке стоит хотя бы из соображений научной этики. Кроме того, вообще очень тяжело читать русско-англо-аббревиатурную смесь, даже если знаешь все переводы и сокращения, а если чего-то не знаешь, то пост становится абсолютно не информативным. Также не забывайте, что терминология в англоязычных источниках не всегда совпадает, отсюда путаница с понятиями, в русскоязычном варианте все довольно однозначно. Я не предлагаю полностью отказаться от английских сокращений и терминов, но там где можно от них отказаться, это сделать нужно.
Кстати, с русскими названиями тоже осторожно надо (что еще за спектр фильтра?)
Что касается русской литературы по ЦОС, помимо классики есть и достаточно новая, например Сергиенко, Куприянов М.С., Матюшкин Б.Д., Васюков В.Н., и др., не говоря уже о качественных переводных изданиях, есть периодика и куча других русскоязычных источников.
В общем, еще раз призываю - давайте общатья на одном языке во имя всеобщего взаимопонимания smile.gif
nadie
To st256
Форум позволяет видет, кто читает конкретный топик. Поэтому известно, что вы в курсе bve реплики и моего ответа. Отсутствие ваших доводов с обоснованием вашей правоты воспринимается как молчаливое признание необоснованности ваших претензий.

To Pathfinder
Примите мои глубокие извинения за использование английской терминалогии. Но в силу определенного стечения обстоятельств, мне действительно сложно оперировать только с использованием русских терминов, так как кроме как на данном форуме они не возникают в моей работе и общении. Я предполагаю, что вы отправите меня на англоязычные форумы (они используются мною так же), но мне хотелось бы сохранить мое общение на данном форуме.
dxp
Цитата(nadie @ Mar 2 2006, 14:36) *
To st256
Форум позволяет видет, кто читает конкретный топик. Поэтому известно, что вы в курсе bve реплики и моего ответа. Отсутствие ваших доводов с обоснованием вашей правоты воспринимается как молчаливое признание необоснованности ваших претензий.

smile.gif Не обольщайтесь - вы этого товарисча плохо знаете (почитайте конфу на Телесистемах, если хотите поближе познакомиться), сомневаюсь, что он признал свою неправоту. А его молчание объясняется довольно просто - скорее всего его забанили за неудержимое откровенное хамство (в т.ч. в первую очередь в ваш адрес). Мой вам совет на будущее - не связывайтесь с ним (и ему подобными), как бы круты и правы они ни были. Ничего не докажете, только выпачкаетесь.
Tanya
Цитата(3.14 @ Feb 28 2006, 21:03) *
2 st256
И огибающая и несущая распространяются с одной скоростью, однозначное определение растояния (измеряя задержку фазы) для несущей ~10мм а для огибающей ~10м.
Знакомые (и друзья) на радиозаводе имеются, что то интересует?

PS. Ребята, имейте совесть, выясняйте отношения через PM.

А почему бы не модулировать треугольником (пилой)?
Интуиция подсказывает, что это лучше.
nadie
To Tanya
Цитата
А почему бы не модулировать треугольником (пилой)?
Интуиция подсказывает, что это лучше.


Не могли бы вы высказать какое то математическое обоснование вашего тезиса? Во всей прочитанной мною литературе по radar, etc такая идея не встречалась, поэтому очень интересно.
Tanya
Цитата(nadie @ Mar 3 2006, 11:52) *
To Tanya
Цитата
А почему бы не модулировать треугольником (пилой)?
Интуиция подсказывает, что это лучше.


Не могли бы вы высказать какое то математическое обоснование вашего тезиса? Во всей прочитанной мною литературе по radar, etc такая идея не встречалась, поэтому очень интересно.

Интуиция основана на том, что мы, сидя в танке, должны восстановить внешний сигнал, модулированный известной нам функцией. Вот мы и подгоняем под нее сдвигая влево-вправо, вверх и вниз и масштабируя ординату. В данной задаче важно как можно точнее знать значение сдвига влево-вправо. При этом не важно, какими математическими извращениями мы пользуемся для подгонки (минимизации отклонений модели от жизни). Так вот в этом смысле синусоида менее информативна, так как при таких сдвигах (влево-вправо) ее участки вблизи минимума и максимума при таких движениях слабо влияют на невязку. То есть сигнал вблизи экстремумов лишний - почти константа, и толку от него нет. А пила в этом смысле лучше. Да и с точки зрения простоты алгоритма обработки тоже, думается, проще. Хотя это второстепенный фактор.
nadie
To Tanya
Спасибо за подробный ответ.
Почему с вашей точки зрения моделирование прямоугольником будет хуже, чем пилой? IMHO чем круче фронт, тем проще рассчитать значение сдвига. Второе соображение, если есть возможность разрешить фазу несущей, то тогда такое измерение должно опять же IMHO должно быть точнее, чем вычисление через параметры огибающей.
Tanya
Цитата(nadie @ Mar 6 2006, 15:08) *
To Tanya
Спасибо за подробный ответ.
Почему с вашей точки зрения моделирование прямоугольником будет хуже, чем пилой? IMHO чем круче фронт, тем проще рассчитать значение сдвига. Второе соображение, если есть возможность разрешить фазу несущей, то тогда такое измерение должно опять же IMHO должно быть точнее, чем вычисление через параметры огибающей.

Так мне думается... Излучатель, думается, трудно прямоугольником модулировать (его добротность мешать будет). По этой же причине, думается, фаза излучения не будет совпадать с фазой возбуждения.
Кроме того прямоугольник получится если у пилы верхушки срезать. Думается, что при модуляции прямоугольником на выходе реально как раз и будет пила со спиленными зубьями. То есть чувствительность хуже будет, чем у пилы. Плоские вершины нам не нужны... Пустой звук... Зря воздух сотрясать будем.
nadie
To Tanya
Спасибо за подробный ответ.
Мой бизнес это физические измерения. Для них (ЯМР, транспортные измерения) сделать излучатель с добротностью позволяющий модулировать прямоугольником не проблема. Правильнее сказать, даже без особых ухищрений такие излучатели получаются в силу геометрии (у меня в основном micro coil).
Фаза излучения не будет совпадать с фазой возбуждения (понимаемой как фаза задающего генератора) практически всегда, если длина волны несущей меньше габаритов устройства. Не очень понятно почему это является проблемой. В network analyzer делается калибровка, которая никого не смущает, примерно также можно прокалибровать практически любую систему.
Tanya
Цитата(nadie @ Mar 7 2006, 14:06) *
To Tanya
Спасибо за подробный ответ.
Мой бизнес это физические измерения. Для них (ЯМР, транспортные измерения) сделать излучатель с добротностью позволяющий модулировать прямоугольником не проблема. Правильнее сказать, даже без особых ухищрений такие излучатели получаются в силу геометрии (у меня в основном micro coil).
Фаза излучения не будет совпадать с фазой возбуждения (понимаемой как фаза задающего генератора) практически всегда, если длина волны несущей меньше габаритов устройства. Не очень понятно почему это является проблемой. В network analyzer делается калибровка, которая никого не смущает, примерно также можно прокалибровать практически любую систему.

Возможно мы о разном... Имелось мною в виду, что (вот хотя бы в ЯМР) добротность резонатора порядка сотни (или нет?). Поэтому энергия туда закачивается не враз. Поэтому огибающая получается не прямоугольник, а трапеция. Поэтому если из этой трапеции выбросить верхнюю неинформативную плоскую часть, то получится пила. Вот мне и кажется, что сумма квадратов отклонений при сдвиге на некоторое время в случае пилы будет раза в два больше, чем при синусоидальной модуляции.
А для ультразвукового излучателя в воздухе добротность, наверное не меньше. Кроме того в воздухе есть меняющаяся от влажности, температуры, пыли, тумана и т. п. дисперсия как действительной, так и мнимой части показателя преломления.
nadie
To Tanya
Спасибо за подробный ответ.

Я очень надеюсь, что данная дискуссия имеет смысл.
Вы абсолютно правы, утверждая, что "энергия туда закачивается не враз". Грубая оценка постоянной времени нарастания Q/w, соответственно в моем случае (micro coil) для f=1 ГГц и Q=50 имеем 50/(2*PI*1e9)= 7.5 ns. Таким образом импульс длиной в 200 ns вполне можно считаться прямоугольным (в смысле огибающей).
Что касается ЯМР, то вы не совсем правы, утверждая, что имеет смысл операция
Цитата
если из этой трапеции выбросить верхнюю неинформативную плоскую часть

В ЯМР вам необходимо возбудить систему, поэтому задача состоит в том, чтобы закачать необходимую энергию в систему. Соответственно, вы можете в большинстве случаев (узкополосный ЯМР) возбуждать импульсом малой мощности, но большой длительности. Только в твердотельном и широкополосном ЯМР стоит еще задача возбуждения в широком спектральном диапазоне, что достигается путем использования мощного но короткого по длительности импульса.

Что касается ультразвукового излучателя, то тут мои познания в настоящий момент близки к нулю. При этом вполне возможно, что мне придется в ближайшие месяцы собирать систему измерений на ультразвуке, поэтому с благодарностью принимаются любые ссылки на конструкции и свойства ультразвуковых излучателей.

Единственный комментарий, что в случае с ультрозвуком скорее всего так же надо разделять приложения типа radar и transport measurement. В последнем случае плоская вершина (правельнее сказать заданная узкополостность сигнала) также может оказаться существенным фактором для определения с необходимой точностью комплекного значения акустического параметра исследуемого образца.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.