|
передискретизация, как? |
|
|
|
 |
Ответов
|
Feb 24 2010, 20:25
|
Участник

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

|
TigerSHARC Извините, но мне все-таки не до конца ясны все условия вашей задачи, да и потом предлагать какие-то конкретные решения - их нужно проверять на практике применительно к вашей задаче, то есть сделать, а это время. Но все же, вот какие моменты мне до сих пор не ясны - 1) Какой интервал наблюдения, за который вы должны получить оценку уровня сигнала? 2) Требуется оценить уровень первой гармоники, или еще какие-то параметры? 3) Какой период обновления полученных оценок? То есть через какой интервал времени нужно обновлять полученные оценки? Если интервал наблюдения - это один период первой гармоники, то может быть делать так: Предположим на вход алгоритма поступают отсчеты с частотой дискретизации 6400 Гц. Алгоритм отслеживает переходы во входном сигнале через ноль, причем при переходе от отрицательного уровня к положительному, запускается накопление сигнала в некий буфер. При следующем переходе через ноль от отрицательного уровня к положительному, накопление в буфер заканчивается. На этот момент у вас в буфере 1 период синуса. По числу накопленных отсчетов можно оценить частоту первой гармоники, правда довольно грубо так как погрешность оценки периода у вас +/- 1 отсчет. Может быть, оценку можно улучшить, если момент перехода через ноль уточнять линейной интерполяцией. То есть у вас один отсчет был ниже нуля, следующий выше. Так как их уровни вам известны, то можно построить уравнение прямой линии через эти два отсчета и определить в какой момент линия пересекает нулевой уровень. Так нужно делать два раза в начале и конце периода. Потом период вычислите как разницу моментов перехода через ноль. Теперь период сигнала известен. Вычисляем массив времени t=0:T1/N:(T1/N)*(N-1), где T1 - оценка периода первой гармоники, а N - размерность ДПФ, 128 например. Используя этот массив времени и накопленный в буфере сигнал интерполятором получаем те N отсчетов одного периода, которые вам нужны для вычисления ДПФ, чтобы на интервал ДПФ попал точно 1 период. По уровню первой гармоники ДПФ получаем искомую оценку уровня сигнала с частотой первой гармоники. Сбрасываем содержание буфера и начинаем накопление заново, до нового перехода через ноль сигнала по направлению от отрицательных значений к положительным. В таком варианте, оценка будет обновляться периодически, но не через 128 отсчетов входного сигнала, а через 1 период первой гармоники. Будет гармоника 45 Гц - будет реже обновляться, 52 Гц -чаще. Данная схема чисто из головы, так что я не претендую на то что это наилучший способ. Чтобы такое в матлабе набросать требуется время, а его мало.
Да, и при высоком уровне помех/искажений, моменты перехода через ноль будут "дрожать" слишком сильно, то есть оценка периода будет не точной, тогда и оценка уровня первой гармоники будет искажена. Как быстро может меняться частота первой гармоники? Если скажем на доли Гц в минуту, то тогда может быть все-таки накапливать побольше периодов, по переходам через ноль определять частоту первой гармоники. Такая оценка будет менее подвержена влиянию дрожания переходов через ноль.
Сообщение отредактировал leksa - Feb 24 2010, 20:46
--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
|
|
|
|
Сообщений в этой теме
TigerSHARC передискретизация Feb 22 2010, 16:22 Andron_ Цитатакак и какой функцией в MATLAB пересчитать ча... Feb 22 2010, 16:59 bahurin Передискретизацию можно выполнить на основе интерп... Feb 22 2010, 17:10 TigerSHARC с точки зрения такой науки как численные методы во... Feb 22 2010, 17:11 bahurin Цитата(TigerSHARC @ Feb 22 2010, 20:11) P... Feb 22 2010, 17:16  TigerSHARC Цитата(bahurin @ Feb 22 2010, 20:16) В шт... Feb 22 2010, 17:42   bahurin Цитата(TigerSHARC @ Feb 22 2010, 20:34) н... Feb 22 2010, 17:42 Andron_ чтобы число отсчетов осталось тем же, нужна экстра... Feb 22 2010, 17:19 TigerSHARC тогда так.
1) при интерполяции всегда используется... Feb 22 2010, 17:23 bahurin Цитата(TigerSHARC @ Feb 22 2010, 20:23) к... Feb 22 2010, 17:33  TigerSHARC Цитата(bahurin @ Feb 22 2010, 20:33) Если... Feb 22 2010, 18:00   bahurin Цитата(TigerSHARC @ Feb 22 2010, 21:00) Н... Feb 22 2010, 18:07    TigerSHARC Цитата(bahurin @ Feb 22 2010, 21:07) став... Feb 23 2010, 13:12  megajohn Цитата(bahurin @ Feb 22 2010, 21:33) Если... May 30 2013, 13:04 Andron_ это что-то нереальное...
сдайте дилера, я тоже хо... Feb 23 2010, 16:38 TigerSHARC Здаётся мне у меня какие-то принципиальные затрудн... Feb 23 2010, 18:29 Andron_ вы не можете его "поджать" под временное... Feb 23 2010, 18:49 TigerSHARC Цитата(Andron_ @ Feb 23 2010, 21:49) вы н... Feb 23 2010, 18:58 Andron_ тью... "вон оно че, Михалыч"...
тогда, ... Feb 23 2010, 19:15 TigerSHARC Цитата(Andron_ @ Feb 23 2010, 22:15) тью.... Feb 23 2010, 19:40 leksa Здравствуйте!
Может быть вот такой вариант Вас... Feb 23 2010, 21:07 TigerSHARC на самом деле нужно просто передискретизировать си... Feb 23 2010, 21:28 leksa Цитата(TigerSHARC @ Feb 24 2010, 00:28) н... Feb 23 2010, 21:35 leksa За код - пожалуйста, тем более это ваш код в общем... Feb 23 2010, 22:41 Andron_ Цитатаresample не канает(((
пример
Fs = 6400;
N ... Feb 24 2010, 02:14 Andron_ только в коде нужно сначала передискретизацию сдел... Feb 24 2010, 03:52 TigerSHARC дело в том что нужно обеспечить отсутсвтие растека... Feb 24 2010, 10:09 TigerSHARC Или получилось из пустого в порожнее? по сути прос... Feb 24 2010, 11:43 SPACUM Реализуется с помощью фарроу-фильтра.
[/quote]
А... Feb 24 2010, 14:09 TigerSHARC Да, то что у меня получилось выше просто вырезает ... Feb 24 2010, 15:07 leksa Я прочитал документ по ссылке.
Из того что вы писа... Feb 24 2010, 15:36 TigerSHARC Уважаемый, leksa, если вы поняли суть алгоритма - ... Feb 24 2010, 16:32 TigerSHARC Уважаемый, leksa, если вы поняли суть алгоритма - ... Feb 24 2010, 16:36 thermit Дык, пауз во времени и не будет. Меняться будет чи... Feb 24 2010, 16:40 TigerSHARC Цитата(thermit @ Feb 24 2010, 19:40) Дык,... Feb 24 2010, 16:58 TigerSHARC Вобщем, прошу подсказать как сделать адаптивное вр... Feb 24 2010, 18:22 TigerSHARC Всё теперь стало ясно.
Объясняю суть проблемы. нео... Feb 25 2010, 10:53 Andron_ ЦитатаПолучается что, какого бы размера не был буф... Feb 25 2010, 11:52 thermit ЦитатаTigerSHARC:
уфер заполняется постоянно и цик... Feb 25 2010, 12:09 TigerSHARC ... а если делать так:
брать данные из буфера и вы... Feb 25 2010, 12:39 thermit Если ориетироваться на число отсчетов связанное с ... Feb 25 2010, 12:47 TigerSHARC Цитата(thermit @ Feb 25 2010, 15:47) Если... Feb 25 2010, 12:54 thermit ЦитатаТогда ждём пока не будет нужного количесвта ... Feb 25 2010, 12:59 TigerSHARC Подведём итог в теме.
Предисркретизация осужествля... Feb 25 2010, 19:17 Евгений Николаев 1. Время обработки всегда примерно одинаково, т.к.... Feb 26 2010, 15:37 TigerSHARC Да, нужно ещё учесть что планируется хранение пред... Feb 26 2010, 17:07 megajohn хоть тема и древняя, но нужная всегда.
В аттаче пр... May 30 2013, 15:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|