DSPSYSTEM Теория и практика цифровой обработки сигналов

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Полиноминальная передискретизация

Сообщений 1 страница 7 из 7

1

надо сравнить погрешности при передискретизации полиномом Лагранжа 1-й, 2-й степени, 3-й степени, 4-й степени, 5-й степени и 6-й...
_______________________________________________

так вот, возможно нужно делать так если интересует лагранж 1-й степени: берём по две точки из выборки в N точек. И между каждыми двумя точками находим полином первой степени. Причём последняя точка из двух становиться первой для второй пары точек и так далее...
если рассматривается вторая степень, то берём уже по три точки из выборки и строим полином между каждыми тремя точками полином второй степени, причем каждая последняя из трёх становиться первой бля следующей тройки... и так далее....

справедливо?

0

2

нет не так надо сравнивать. Берете длинный сигнал например синусоиду (пример плохой тем не менее для начала сойдет). Точность оценивается по ско

s   - исходный сигнал c частотой дискретизации Fs0 к-во отсчетов N взятые в моменты времени t(i) = (0:N-1)/Fs0
sr - сигнал после ресамплинга c частотой дискретизации Fs1 к-во отсчетов M взятых в момент времени tr(k) , k = 0:M-1 (моменты ресамплинга)
si - истинный сигнал в моменты времени tr (моменты ресамплинга)

тогда ошибка равна e = sr - si и сравнивать можно энергии ошибки Е = sum((sr-si).^2)/Fs1 или СКО = sqrt(E) для разных порядков полиномов интерполяции.

0

3

Большое спасибо. Я писал о теории интерполяции полиномом лагранжа в целом сам принцип

так вот, возможно нужно делать так если интересует лагранж 1-й степени: берём по две точки из выборки в N точек. И между каждыми двумя точками находим полином первой степени. Причём последняя точка из двух становиться первой для второй пары точек и так далее...
если рассматривается вторая степень, то берём уже по три точки из выборки и строим полином между каждыми тремя точками полином второй степени, причем каждая последняя из трёх становиться первой бля следующей тройки... и так далее....

правильно?

Просто, понимаете, нужно как-то сначала построить  полиномы для разных степеней чтобы сравнить погрешность... а как это сделать пока незнаю... поэтому важен сам принцип что бы в матлабе хотя бы построить.
Пока что получается полная фигня. Так как задаю интерполяцию всего массива из N (2048), но как я написал выше видимо полиноминальный интерполятор обрабатывает более хитро - блоками по p+1 ( p - степень полинома) отсчётов из N.

0

4

Franky написал(а):

ак вот, возможно нужно делать так если интересует лагранж 1-й степени: берём по две точки из выборки в N точек. И между каждыми двумя точками находим полином первой степени. Причём последняя точка из двух становиться первой для второй пары точек и так далее...

Правильно

Franky написал(а):

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

А вот тут ошибка. Склейка если так можно выразится стык в стык только при 1-ой степени. При второй идет как бы перекрытие, т.е. берём уже по три точки из выборки и строим между каждыми тремя точками полином второй степени, но делаем следующим образом. Есть скажем 5 отсчетов x0,x1,x2,x3,x4 и x5. Первая парабола назовем ее P0 по первым трем точкам x0,x1,x2, а вторая парабола P1  по трем точкам x1 x2 x3,  т.е. интервал x1 x2 будет как в первой параболе P0 так и во второй P1 и на интервале x1 x2 будет сумма парабол P0+P1. Другими словами сдвиг только на один отсчет. третья парабола соответсвенно x2 x3 x4 и четвертая x3 x4 x5.

Вам до какой степени необходимо проанализировать? Если степень не очень высокая, то лучше всего построить фильтры фарроу всех порядков от 1 до K и проанализировать их. Есть в матлабе еще функция intfilt по ней написано в справке: b = intfilt(l,n,'Lagrange') designs an FIR filter that performs nth-order Lagrange polynomial interpolation on a sequence interleaved with l-1 consecutive zeros every r samples. b has length (n + 1)*l for n even, and length (n + 1)*l-1 for n odd. If both n and l are even, the filter designed is not linear phase.

0

5

порядки я думаю от 1 до 6. А вот передискретизировать нужно сигнал с частоты дискретизации 10240 на частоту 11264. причём на выходе всегда 2048 точек.
получается на входе интерполятора 1862 точки на выходе 2048. Старая частотадискретизации 10240 новая 11264.
пример матлаба хотябы для одной из степеней интерполятора был бы безценен. Просто на си всё понятно, там задаём старуючастоту, новую, количества точек... а тут просто величину задержки меняем. Как они связаны?

кроме того в матлаб подразумевается что в выборуку вставлены нули...

Отредактировано Franky (2010-03-22 23:36:08)

0

6

не думаю что у вас все так легко получиться в матлабе. Проблема в том что приходится пересчитывать постоянно время. В принципе ведь никто не мешает реализовать на си функции ресамплинга на основе фарроу от 1 до 6 порядка. Порядок 1 и 2 совсем простой, пример третьего приведен на сайте. Вам осталось только 4 5 и 6  :yep: . Ну денек повозится придется конечно, но мне кажется что лучше день потерять и потом за 5 минут долететь.

PS при реализации фарроу на си для заданных порядков окажу помощь.

0

7

Спасибо! Как начну, создам тему на форуме.

Ваша помощь безценна.

0