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

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

|
Здравствуйте! Может быть вот такой вариант Вас устроит: % variant % накапливаем сигнал на исходной частоте Fs = 6400; N = 143; Ts = 1/Fs; T = Ts*N; f = 45; t = 0:Ts:T-Ts; A = 10; df = Fs/N; f1 = 0:df:Fs-(Fs/N); Y = A*sin(2*pi*f*t)+ A*sin(2*pi*2*f*t)+ A*sin(2*pi*3*f*t); X = fft(Y)/length(t); % интерполяция и БПФ N2 = 128 Fs2 = 5760 Ts2 = 1/Fs2 ti = [0:Ts2:(N2-1)*Ts2] Yi = interp1(t,Y,ti,'spline');% интерполяция методом сплайнов, можно и другие методы, например, полиномиальную интерполяцию 2 и 3 порядка
figure plot(t,Y,'b- x'),grid on,hold on plot(ti,Yi,'r- o') Xi = fft(Yi)/length(ti); df2 = Fs2/N2; f2 = 0:df2:Fs2-(Fs2/N2); figure stem(f1, abs(X)), grid on,hold on figure stem(f2, abs(Xi),'g o'), grid
%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Если вы хотите изменить частоту дискретизации с 6400 на 5760 так, чтобы на частоте 5760 у Вас оказалось 128 отсчетов, то для интерполяции с частоты 6400 вам понадобится кусок сигнала длительностью 128*6400/5760 ~= 143 отсчета. Взять 128 отсчетов на частоте 6400 и переделать их в 128 отсчетов на частоте 5760 невозможно, так как длительность вашего сигнала на частоте 6400 равна 128/6400 = 0.0200 сек, а длительность сигнала в 128 отсчетов на частоте 5760 равна 0.0222 секунды. Где взять недостающих отсчетов сигнала на 0.0022 секунды? 2 варианта: 1 - накопить на частоте 6400 (скрипт выше в этом посте). 2 - заниматься экстраполяцией, то есть пытаться продолжить сигнал в будущее на основе имеющихся отсчетов. Успех такой операции зависит от метода экстраполяции и самого экстраполируемого сигнала. Первый способ я думаю проще и надежнее.
Сообщение отредактировал leksa - Feb 23 2010, 21:09
--------------------
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 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 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
|
|
|