Перейти к содержанию
    

Интерполировать синус по 5 точкам на период

Опять Wolfram. Что это за зверь такой?

Mathematica. В закромах лежит, попробуйте, имхо куда лучше матлаба.

post-3954-1476882298_thumb.png

 

Этот путь понятен. Ходил. У меня есть свой матлабовский файл с полиномами разных степеней. Стряхну пыль, посимулирую.А другие варианты есть?

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg

Сшивание синусоиды параболой по 6-ти точкам ( 5 точек уже явно неудовлетворительно ):

http://shot.qip.ru/00gZ9L-1OPovQH3t/

 

По 9-ми точкам вполне удовлетворительно, с т.з. визуализации:

http://shot.qip.ru/00gZ9L-5OPovQH3v/

 

P.S.

Еще косинусная интерполяция:

 

float CosInterpolate(float v1, float v2, float a)

{

float angle = a * PI;

float prc = (1.0f - cos(angle)) * 0.5f;

return v1*(1.0f - prc) + v2*prc;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, период не известен. Даже, что синус, тоже притянуто за уши. Просто в документации будет записано "полоса частот такая-то". Если для максимальной частоты у меня выходит 5 выборок АЦП на период, желаю продемонстрировать, что наблюдается "синус".

 

Для демонстрации "синуса" нужно ИМХО смотреть на спектр сигнала и на количество и соотношение гармоник: какие, сколько, каково соотношение между ними и т.д. Из наблюдения за колебанием во временной области ничего разумного заключить нельзя. Поэтому, сделать Фурье, для максимальной частоты будет хорошо наблюдаемая гармоника в районе fs/5, что и требуется показать.

Изменено пользователем serjj

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Так я и предложил эмуляцию на крайних частотах :cranky:

 

P.S.

Т.е. должны быть два режима: измерительный (в диапазоне нормальных частот), когда все по честному и тестово-демонстрационный, в диапазоне крайних частот, когда делается симуляция по 1..3 крайним тестовым частотам, значения которых оговорены в ПМ.

 

P.P.S.

И это не обман Заказчика, поскольку мы, на основе реальных измерений, алгоритмически выявляем крайние частоты и показываем их наличие в удобной и понятной для всех визуальной форме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Удобная и понятная для всех визуальная форма - это спектр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
Удобная и понятная для всех визуальная форма - это спектр.

Да, но у ТС похоже что-то вроде генератора частот с визуализацией сигнала во временной области.

Мы не знаем всех ньюансов ТЗ, а потому и гадать не будем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нелинейное вписывание. Он же фит. Почему нужно полином-5 вписывать? Почему синус не вписать? Вычислительно сложно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В свое время вот эту статью нашел (здесь в форуме и автор был, и ссылку на эту статью я давал). Также несколько других, представляющих интерес. По этим статьям в MATLAB экспериментировал. Сейчас пересмотрел. Вижу, что интерполяция сплайном Эрмита по 6 точкам, как в статье, дает примерно такой же результат, как интерполяция полиномом 5 степени. Но проще.

TSerg, гадание, зачем это нужно, не понадобится, если заглянуть в мой профиль. :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
гадание, зачем это нужно, не понадобится, если заглянуть в мой профиль

Дефки? Голые?

 

Вижу, что интерполяция сплайном Эрмита по 6 точкам

Косинусом проще и не хуже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Частота выборок в 5 раз больше частоты сигнала - это большая передискретизация?

Мне не нужно в реальном времени фильтровать. Поэтому все эти полифазные фильтры, хитроумные перетрахивания операторов (Фарроу) не нужны. Нужны формулы, а как их использовать, найдем способ.

 

Косинусом проще и не хуже.

Вычислить косинус посложнее полинома 7 степени будет. С чего вдруг стало проще?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если реальное время не является критичным, можно использовать DFT интерполяцию. Пример:

sine_interp_test.7z

 

Здесь разумеется проявляются краевые эффекты, поэтому выводить лучше значения в интервале [N_guard...N_dft-N_guard]. Ну это уже детали реализации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Частота выборок в 5 раз больше частоты сигнала - это большая передискретизация?

 

Да. Фильтр простой будет, скажем 5 умножений на константы на входной частоте дискретизации, зависит от требований к подавлению.

 

Мне не нужно в реальном времени фильтровать. Поэтому все эти полифазные фильтры, хитроумные перетрахивания операторов (Фарроу) не нужны. Нужны формулы, а как их использовать, найдем способ.

 

Не имеет значения, в реальном, не в реальном, зачем лишние вычисления, параболический Фарроу - простой способ любой отсчёт вычислить промежуточный, но требует побольше чем 5 отсчётов на период, увеличиваем в два раза до 10, половина отсчётов остаётся исходная, нужно вычислить только вторую половину между исходными отсчётами, а это всего лишь ФНЧ симметричный с чётным количеством коэффициентов, который даёт задержку в пол такта исходной частоты дискретизации, единственное требование к которому - АЧХ константная вплоть до вашей крайней частоты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так а почему сразу по 10 выборкам не интерполировать, если этот Фарроу требует больше 5 выборок? И почему он столько требует?

А, понял. Ломать сильно будет. Ну так на одном Фарроу теория не остановилась.

Параболический - кубическая парабола, естественно?

То есть, поскольку кубическим полиномом интерполяция не блещет качеством, вы предлагаете интерполировать в 2 этапа. Что же не полиномом 5-й степени?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так а почему сразу по 10 выборкам не интерполировать...

 

Вы 5 на период задали в исходной постановке.

 

И почему он столько требует?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

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

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...