|
передискретизация, как? |
|
|
|
 |
Ответов
|
Feb 25 2010, 10:53
|
Знающий
   
Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195

|
Всё теперь стало ясно. Объясняю суть проблемы. необходимо узнать все гармоники , которые можно полусчить с частотой дискретизации 6400. Гармоники кратны основной частоте (которая меняется от 42.5 до 57.5). Я подаю всего лишь три - такак это просто модель, что бы суть пока уловить. Дело вот в чём - раньше я полагал, что выборка должна быть фиксирована по количеству отсчётов (жестко 128 например). Теперь понятно что происходит так : 1) Получаем частоту (fосн.), по некоторому алгоритму (давайте договоримся что частота известна с абсолютной точностью, так как частотный алгоритм - это отдельный разговор). 2) затем интерполятор на основе данных о частоте забирает выборку АЦП из кольцевого буфера (о буфере ниже). Причём забирает столько выборок сколько ему надо (в зависимости от частоты сигнала) - если частота изменяется от 42.5 до 57.5, то кол выборок может быть от 111 до 150. 3) Затем интерполятор выдаёт ровно 128 выборок (всегда!) на новой частоте дискретизации равной 128*fосн. 4) по этим выборкам получаем спектр. _____________________________________
КОЛЬЦЕВОЙ БУФЕР
теперь главный вопрос:
Данные с АЦП поступают в кольцевой буфер. Буфер заполняется постоянно со скоростью, которая зависит от периода дискретизации (в моём случае 1/6400). Допустим частота сигнала найдена и равна 43Гц. Интерполятору требуется 148 выборок для данного временного окна и он забирает первые 148 выборок из буфера, 149 выборка уже является первой для следующего временного окна, потом частота изменилась и скажем равна 45 Гц, тогда интерполятор берёт по 142 выборки на временное окно и так далее... Кольцевой буфер должен быть такого размера что бы хранит предысторию сигнала за некоторое время и должен выдавать её при запросе. Буфер заполняется постоянно и циклически. так вот проблема в том что скорее всего буфер заполняется быстрее, чем выборки извлекаются из него. Получается что, какого бы размера не был буфер, рано или поздно вершина буфера настигнет его хвост(где храняться полезные данные)... как этого избежать при работе с кольцевым буфером.
|
|
|
|
Сообщений в этой теме
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 leksa TigerSHARC
Извините, но мне все-таки не до конца я... Feb 24 2010, 20:25 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
|
|
|