реклама на сайте
подробности

 
 
> Интерволяция для отображения сигнала
ivan219
сообщение Jan 31 2011, 16:47
Сообщение #1


Местный
***

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



Есть сигнал диапазоне частот от 0 до половины частоты дискретизации. Сигнал периодический. Нужно его вывести на монитор никаких других действий с сигналом производится больше не будет.

Проблема: если частота высокая отображается не красиво.

Вопрос: посоветуйте максимально хороший интерполятор.

Пробовал Форроу 3 порядка так как других не знаю. Вроде не плохо, но он считает только по 4 точкам.

Хочу, что бы в расчёте участвовало большее количество точек.
Go to the top of the page
 
+Quote Post
4 страниц V  < 1 2 3 4 >  
Start new topic
Ответов (30 - 44)
ivan219
сообщение Feb 5 2011, 10:29
Сообщение #31


Местный
***

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



Цитата(bahurin @ Feb 5 2011, 07:59) *
мне показалось или вы полиномы стыкуете не в точках отсчета?


На первом и третьем так и есть сразу не заметил, пришлось подправить код. Остальные чётко стыкуются.

Я вот что подумал если проводить интерполяцию с добавлением нулей, то, как лучше это сделать два раза по 2 или один раз на 4? Нужно как можно ближе подойти к частоте Найквиста.

Сообщение отредактировал ivan219 - Feb 5 2011, 10:26
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Feb 5 2011, 11:34
Сообщение #32


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(ivan219 @ Feb 5 2011, 13:29) *
На первом и третьем так и есть сразу не заметил, пришлось подправить код. Остальные чётко стыкуются.

Я вот что подумал если проводить интерполяцию с добавлением нулей, то, как лучше это сделать два раза по 2 или один раз на 4? Нужно как можно ближе подойти к частоте Найквиста.

Каскадно лучше. Вначале поднимаем частоту вдвое (вставим по одному нулю) и применим наиболее длинный фильтр на самой низкой частоте (на удвоенной), который и будет определяющим для приближения к Найквисту. Следующие фильтры будут работать на более высоких частотах, но и могут быть значительно короче. А если сразу на учетверенной частоте -то нужно будет взять вдвое более длинный фильтр на учетверенной частоте (ресурса вчетверо больше).

Сообщение отредактировал sup-sup - Feb 5 2011, 11:37
Go to the top of the page
 
+Quote Post
ivan219
сообщение Feb 5 2011, 12:59
Сообщение #33


Местный
***

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



Спасибо я так и подумал. Так больше места для манёвра. Лан буду пробовать. Этим методом частоту подыму в 4 раза а потом и Форроу справится так как будет уже не менее 8 семплом на периуд.

Ещё интересует. Какую оконную функцию применить что бы подавление было на уровне 60 - 100 дБ и при этом ширена перехода была минемальной?
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Feb 5 2011, 13:51
Сообщение #34


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(ivan219 @ Feb 5 2011, 16:59) *
Спасибо я так и подумал. Так больше места для манёвра. Лан буду пробовать. Этим методом частоту подыму в 4 раза а потом и Форроу справится так как будет уже не менее 8 семплом на периуд.

Ещё интересует. Какую оконную функцию применить что бы подавление было на уровне 60 - 100 дБ и при этом ширена перехода была минемальной?

Если пользоваться в Симулинке мастером FDATool, то там есть варианты, в том числе и конкретные окна. Я пользуюсь обычно Гауссовским, так как им легко управлять. Для затухания 60-100 дБ нужны коэффициенты от 3.2 до 4.3. А переходная полоса, кроме выбранного затухания, зависит от длины (порядка) фильтра. Нужно выбрать минимально возможное затухание вне полосы (по необходимой точности) и максимально возможную (по имеющимся ресурсам) длину фильтра.
Кстати, FDATool имеет возможность расчета 'Interpolated FIR', где можно сделать и увидеть хатактеристику каскадного фильтра целиком.

Сообщение отредактировал sup-sup - Feb 5 2011, 13:57
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 6 2011, 10:24
Сообщение #35


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Что-то я не понял - вы фильтр делаете или интерполятор?
Если оцифровали сигнал согласно теореме Котельникова, ничего лишнего в сигнале не будет. Любая интерполяция сгладит сигнал, в меру своих возможностей.
Если оцифровывался сигнал без аналогового фильтра, и в нем были составляющие выше fs/2, то уже никакими фильтрами, интерполяторами сигнал не улучшить. Разве что подавить наложение спектров около fs/2 фильтром НЧ вместе с полезным сигналом.

Цитата(_Anatoliy @ Feb 4 2011, 12:23) *
Я для отображения экспериментальных данных применял Cubic spline interpolation, очень неплохо получилось даже при малом числе отсчетов на период.

Не подскажете где посмотреть, как это делается?
Go to the top of the page
 
+Quote Post
vetal
сообщение Feb 6 2011, 10:35
Сообщение #36


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
Не подскажете где посмотреть, как это делается?

http://habrahabr.ru/blogs/php/111402/
Go to the top of the page
 
+Quote Post
ivan219
сообщение Feb 6 2011, 10:59
Сообщение #37


Местный
***

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



Цитата(ViKo @ Feb 6 2011, 13:24) *
Что-то я не понял - вы фильтр делаете или интерполятор?


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

В принципе с выбором фильтра разобрался, пришлось взять 2000 порядка, что бы полоса перехода вошла в 600Гц при частоте дискретизации 96кГц, а оконную функцию взял Blackman - Nuttall у неё уровень боковых лепестков 98дБ, так что вполне подходит. С окном Гаусса получается хуже полоса перехода значительно шире.

Сообщение отредактировал ivan219 - Feb 6 2011, 11:06
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Feb 6 2011, 11:13
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(ViKo @ Feb 6 2011, 13:24) *
Что-то я не понял - вы фильтр делаете или интерполятор?
Если оцифровали сигнал согласно теореме Котельникова, ничего лишнего в сигнале не будет. Любая интерполяция сгладит сигнал, в меру своих возможностей.
Если оцифровывался сигнал без аналогового фильтра, и в нем были составляющие выше fs/2, то уже никакими фильтрами, интерполяторами сигнал не улучшить. Разве что подавить наложение спектров около fs/2 фильтром НЧ вместе с полезным сигналом.

Любой интерполятор имеет фильтр, даже если об этом явно не сказано.
Мы добавляем нолики и эту последовательность (2*Fs) пропускаем через фильтр нижних частот с частотой среза как можно ближе к Fs/2 чтобы использовать как можно более широкую полосу. В окрестности Fs/2 будет задавленный переходный диапазон частот. Это как раз - мера возможностей.
Если в исходной последовательности есть результат наложения, то он останется в любом способе интерполяции.
Никаких противоречий.

Цитата(ivan219 @ Feb 6 2011, 13:59) *
В принципе с выбором фильтра разобрался, пришлось взять 2000 порядка, что бы полоса перехода вошла в 600Гц при частоте дискретизации 96кГц, а оконную функцию взял Blackman - Nuttall у неё уровень боковых лепестков 98дБ, так что вполне подходит. С окном Гаусса получается хуже полоса перехода значительно шире.

Нужно не забыть проверить равномерность в полосе частот. Чтобы был соблюден баланс между искажениями от затухания и искажениями от неравномерности полосы пропускания. На пальцах можно прикинуть, что если мы делаем -100 дБ затухание вне полосы, то эквивалентная неравномерность в полосе должна быть равноценной, то есть, 1/100000 (0.001%).
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 6 2011, 11:27
Сообщение #39


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(ivan219 @ Feb 6 2011, 12:59) *
Интерполятор. Но хороший с фильтром, что бы сигнал на выходе был красивым, а не похож на рыбу biggrin.gif

А до интерполяции ваш сигнал похож на рыбу?
Даже соединив точки синусоиды отрезками (линейная интерполяция), вы не получите сигнал, похожий на рыбу.
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Feb 6 2011, 16:09
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(ViKo @ Feb 6 2011, 15:27) *
А до интерполяции ваш сигнал похож на рыбу?
Даже соединив точки синусоиды отрезками (линейная интерполяция), вы не получите сигнал, похожий на рыбу.

Не знаю, как кому, а мне термин 'интерполяция' кажется неточным. Может быть, из-за того, что сразу думаешь о линейной 'интерполяции', а не о восстановлении формы сигнала из исходного, имеющего минимальное число отсчетов. Правильнее было применить термин 'восстановление формы сигнала'.
Интересно, что получится, если посмотреть на спектр сигнала после сплайна. Будут ли у него компоненты выше исходной Fs/2 или нет? Ведь не должно быть.

Сообщение отредактировал sup-sup - Feb 6 2011, 16:10
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 6 2011, 16:25
Сообщение #41


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(sup-sup @ Feb 6 2011, 18:09) *
Интересно, что получится, если посмотреть на спектр сигнала после сплайна. Будут ли у него компоненты выше исходной Fs/2 или нет? Ведь не должно быть.

Будет, все будет... Только идеальный фильтр НЧ может подавить спектр в областях fold, 2fold, и так до fnew (которая останется).
Так как идеального фильтра сделать невозможно, эти области не подавятся полностью. Нужно ограничиться необходимой точностью.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Feb 6 2011, 16:46
Сообщение #42


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(sup-sup @ Feb 6 2011, 21:09) *
Не знаю, как кому, а мне термин 'интерполяция' кажется неточным. Может быть, из-за того, что сразу думаешь о линейной 'интерполяции', а не о восстановлении формы сигнала из исходного, имеющего минимальное число отсчетов. Правильнее было применить термин 'восстановление формы сигнала'.

Ну дык, замените слово "линейная" на "гармоническая" и вроде всё красиво для понимания.

Собсно, интерполяция = нахождение промежуточных точек. Именно это и происходит.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Feb 6 2011, 18:15
Сообщение #43


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(GetSmart @ Feb 6 2011, 20:46) *
Ну дык, замените слово "линейная" на "гармоническая" и вроде всё красиво для понимания.

Собсно, интерполяция = нахождение промежуточных точек. Именно это и происходит.

Да в общем, это не проблема. Чтобы 'разговор поддержать'. Мало ли каких названий.
Реально и исходные точки сдвигаются со своих мест из-за неидеальности фильтра.
Go to the top of the page
 
+Quote Post
ivan219
сообщение Feb 6 2011, 18:17
Сообщение #44


Местный
***

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



Цитата(ViKo @ Feb 6 2011, 14:27) *
А до интерполяции ваш сигнал похож на рыбу?
Даже соединив точки синусоиды отрезками (линейная интерполяция), вы не получите сигнал, похожий на рыбу.

Нет до интерполяции похож на рыбу это когда частота сигнала чуть меньше 0.5 частоты дискретизации когда на один пириуд уходит меньше 3 отсчётов.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 7 2011, 08:03
Сообщение #45


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(ivan219 @ Feb 6 2011, 20:17) *
Нет до интерполяции похож на рыбу это когда частота сигнала чуть меньше 0.5 частоты дискретизации когда на один пириуд уходит меньше 3 отсчётов.

А как вы думаете, почему? Может быть, не соблюдаются требования теоремы Котельникова?
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01508 секунд с 7
ELECTRONIX ©2004-2016