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

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.12.2006, 20:19
Новичок

Отправить личное сообщение для GraphD Посмотреть профиль Найти все сообщения от GraphD
 
Регистрация: 17.12.2006
Адрес: SPb
Сообщений: 5

свертка через бпф
кто реализовывал ее через бпф?
как быть в том случае, когда сама картинка (или в одномерном случае сигнал) и фильтр (с которым сворачиваем) имеют разную длину? конечно, я понимаю, можно фильтр расширить до размеров картинки (сигнала) путем добавления нулей или как-то особо хитро чтоб не зашумлять ее (его) спектр всплесками всвязи с этим расширением... но как по уму такое делается?
  #2  
Старый 18.12.2006, 08:03
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

> понимаю, можно фильтр расширить до размеров картинки (сигнала) путем добавления нулей

да, именно так
  #3  
Старый 19.12.2006, 09:31
Новичок

Отправить личное сообщение для st256 Посмотреть профиль Найти все сообщения от st256
 
Регистрация: 30.09.2006
Сообщений: 15

Сообщение от GraphD Посмотреть сообщение
кто реализовывал ее через бпф?
Я.

Сообщение от GraphD Посмотреть сообщение
как быть в том случае, когда сама картинка (или в одномерном случае сигнал) и фильтр (с которым сворачиваем) имеют разную длину? конечно, я понимаю, можно фильтр расширить до размеров картинки (сигнала) путем добавления нулей
Не надо этого делать.

Во-первых, если БПФ Вы уже сделали, то Вам надо не сворачивать, а перемножать характеристики.

Во-вторых, нужен еще защитный интервал... Т.е. если у Вас длина импульсной хар-ки фильтра N, то БПФ делаете на N+M точек (исходный массив x(1), x(2),...,x(N+M) ). Перемножаете там на частотную характеристику фильтра (есть такие фильтры с частотной выборкой, у них все коэффициенты либо 0 либо 1, кроме 2-3, что находятся в переходной полосе) и делаете обратное БПФ. Из полученных N+M точек оставляете M. Это и есть Ваш выходной сигнал.
Далее снова берете N+M точек (исходный массив x(M+1), x(M+2),...,x(N+2*M) ) все по новой.
  #4  
Старый 19.12.2006, 17:46
Новичок

Отправить личное сообщение для GraphD Посмотреть профиль Найти все сообщения от GraphD
 
Регистрация: 17.12.2006
Адрес: SPb
Сообщений: 5

Сообщение от st256 Посмотреть сообщение
Т.е. если у Вас длина импульсной хар-ки фильтра N, то БПФ делаете на N+M точек (исходный массив x(1), x(2),...,x(N+M) ).
N+M?, а длина исходного входного массива M или какая? Мы его должны расширить каким-то значением?

Сообщение от st256 Посмотреть сообщение
Перемножаете там на частотную характеристику фильтра
в этом вобщем и был вопрос, как перемножить разные по длине ЧХ

Сообщение от st256 Посмотреть сообщение
(есть такие фильтры с частотной выборкой, у них все коэффициенты либо 0 либо 1, кроме 2-3, что находятся в переходной полосе) и делаете обратное БПФ. Из полученных N+M точек оставляете M. Это и есть Ваш выходной сигнал.
Далее снова берете N+M точек (исходный массив x(M+1), x(M+2),...,x(N+2*M) ) все по новой.
вобщем может ссылку подгоните про это????
спасибо

Последний раз редактировалось GraphD, 19.12.2006 в 17:48.
  #5  
Старый 20.12.2006, 09:18
Новичок

Отправить личное сообщение для st256 Посмотреть профиль Найти все сообщения от st256
 
Регистрация: 30.09.2006
Сообщений: 15

Сообщение от GraphD Посмотреть сообщение
N+M?, а длина исходного входного массива M или какая? Мы его должны расширить каким-то значением?
Я же сказал - длина исходного массива N+M. Просто следующий массив у Вас будет содержать точки из предыдущего - т.е. массивы перекрывают друг друга или накладываются друг на друга.

Сообщение от GraphD Посмотреть сообщение
в этом вобщем и был вопрос, как перемножить разные по длине ЧХ
А с чего вдруг они у Вас разные??? АЧХ фильтра это вообще непрерывная функция от частоты. В Вашем случае нужно почитать про фильтры с частотной выборкой.

Сообщение от GraphD Посмотреть сообщение
вобщем может ссылку подгоните про это????
спасибо
Я не подгоню, но ребята отсюда:
http://www.telesys.ru/wwwboards/dsp/index.shtml
могут помочь.
  #6  
Старый 20.12.2006, 23:45
Новичок

Отправить личное сообщение для GraphD Посмотреть профиль Найти все сообщения от GraphD
 
Регистрация: 17.12.2006
Адрес: SPb
Сообщений: 5

Сообщение от st256 Посмотреть сообщение
А с чего вдруг они у Вас разные??? АЧХ фильтра это вообще непрерывная функция от частоты. В Вашем случае нужно почитать про фильтры с частотной выборкой.
Вобще-то речь была не офильтрации а о свертке...

Сообщение от st256 Посмотреть сообщение
Я не подгоню, но ребята отсюда:
http://www.telesys.ru/wwwboards/dsp/index.shtml
могут помочь.
попробую, спась
  #7  
Старый 21.12.2006, 10:09
Новичок

Отправить личное сообщение для st256 Посмотреть профиль Найти все сообщения от st256
 
Регистрация: 30.09.2006
Сообщений: 15

Сообщение от GraphD Посмотреть сообщение
Вобще-то речь была не офильтрации а о свертке...

Сверта и фильтрация это одно и тоже. Математики говорят свертка, мы говорим - фильтрация. Предположим, у Вас есть функции y(t) и x(t). и Вы сделали свертку этих функций:

z(t) = y(t)*x(t)

тогда спектр результирующей ф-ции находят так:

Z(w) = Y(w)X(w)

Вот вам и вся фильтрация в частотной области.
  #8  
Старый 21.12.2006, 22:33
Новичок

Отправить личное сообщение для GraphD Посмотреть профиль Найти все сообщения от GraphD
 
Регистрация: 17.12.2006
Адрес: SPb
Сообщений: 5

Сообщение от st256 Посмотреть сообщение
Сверта и фильтрация это одно и тоже. Математики говорят свертка, мы говорим - фильтрация. Предположим, у Вас есть функции y(t) и x(t). и Вы сделали свертку этих функций:

z(t) = y(t)*x(t)

тогда спектр результирующей ф-ции находят так:

Z(w) = Y(w)X(w)

Вот вам и вся фильтрация в частотной области.
А теперь встает вопрос: Y(w) длины N (как и исходный y(t)), X(w) длины M. перемножать нельзя. Можно расширить x(t) до длины N, но это несколько коряво, да и неточно будет. Как эту корявость уменьшить хотяб.
  #9  
Старый 28.12.2006, 09:48
Новичок

Отправить личное сообщение для st256 Посмотреть профиль Найти все сообщения от st256
 
Регистрация: 30.09.2006
Сообщений: 15

Сообщение от GraphD Посмотреть сообщение
А теперь встает вопрос: Y(w) длины N (как и исходный y(t)), X(w) длины M. перемножать нельзя. Можно расширить x(t) до длины N, но это несколько коряво, да и неточно будет. Как эту корявость уменьшить хотяб.
Это почему вдруг X(w) длины M? Эта непрерывная функция частоты. Если же Вы считаете, что X(w) - дискретное преобразование Фурье, то должен Вам сообщить, что любая последовательность имеет Z-преобразование (ф-ция определенная на всей комплексной плоскости). Частный случай этого Z-преобразования - частотная характеристика последовательности или спектр (непрерываная функция, для упрощения скажу, что определенная на оси частот w). Частный случай спектра последовательности - ДПФ. Т.е. это - уже не ф-ция, а последовательность, определяемая в равноотстоящих точках на оси частот. Иначе говоря, если Вам нужно другое количество точек спектра, то просто найдите их из M уже имеющихся.

А вообще, в Вашем случае, я бы посмотрел на фильтры с частотной выборкой.
  #10  
Старый 28.12.2006, 21:49
Новичок

Отправить личное сообщение для GraphD Посмотреть профиль Найти все сообщения от GraphD
 
Регистрация: 17.12.2006
Адрес: SPb
Сообщений: 5

Сообщение от st256 Посмотреть сообщение
Иначе говоря, если Вам нужно другое количество точек спектра, то просто найдите их из M уже имеющихся.
Сложность этого процесса наверно не меньше, чем БПФ длины полной входной последовательности.

Сообщение от st256 Посмотреть сообщение
А вообще, в Вашем случае, я бы посмотрел на фильтры с частотной выборкой.
Посмотрю, спась.

И еще небольшой вопрос, проведя свертку через БПФ фильтра h[n] и входного сигнала s[n] (их БПФ = H[k] и S[k]), получаем выход y[n] равный ОБПФ(H[k]S[k]). Т.е. обычная схема свертки. Фильтр у меня длины меньшей, чем сигнал, т.е. я его пока расширяю нулями. При этом заметно, что картиночка после фильтрации смещается по х и у, т.е. эффект этот нежелательный. Его вообще как побороть?..
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прямая через n точек незарегистрированный Вычислительная геометрия 2 12.12.2006 09:50