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

свёртка в частотной области

Ув. коллеги,подскажите где туплю.
Перемножению во временной области соответствует свертка в частотной области,ставлю эксперимент в матлабе - не получается.Затея такая - для входного сигнала выполнить FFT с прямоугольным окном,результат свернуть с FFT какого нибудь окна(например Чебышева) и в итоге получить спектр аналогичный FFT с окном Чебышева.После вычисления получаю спектр с прямоугольным окном.В чём дело?Скрипт прилагается.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(_Anatoliy @ Feb 4 2010, 14:37) <{POST_SNAPBACK}>
Ув. коллеги,подскажите где туплю.
Перемножению во временной области соответствует свертка в частотной области,ставлю эксперимент в матлабе - не получается.Затея такая - для входного сигнала выполнить FFT с прямоугольным окном,результат свернуть с FFT какого нибудь окна(например Чебышева) и в итоге получить спектр аналогичный FFT с окном Чебышева.После вычисления получаю спектр с прямоугольным окном.В чём дело?Скрипт прилагается.

Благодарю за внимание,всё сошлось.

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


Ссылка на сообщение
Поделиться на другие сайты
Можно подробности по данной теме? Как решили проблему, какие особенности осуществления свёртки спектров сигналов в частотной области с помощью Matlab. Тут также озадачены поиском решения, но решение оставлено за форумом как выполнить свёртку в частотной области? Поделитесь пожалуйста опытом.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(thermit @ Feb 19 2017, 15:58) <{POST_SNAPBACK}>


Тут реализована свертка во временной области, а интересует свертка в частотной области, что соответствует произведению функций во временной области.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(DSale @ Feb 19 2017, 16:04) <{POST_SNAPBACK}>
Тут реализована свертка во временной области, а интересует свертка в частотной области, что соответствует произведению функций во временной области.

Стр. 304.
Книгу скачать на просторах сети запросто. Есть пример кода в MATLAB.

Если коротко, то:
дополняете 2 последовательности нулями так, чтобы их длина стала равна сумме исходных длин за вычетом единицы;
делаете ДПФ обеих последовательностей;
перемножаете результаты;
делаете обратное ДПФ.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Grizzzly @ Feb 19 2017, 19:39) <{POST_SNAPBACK}>
Если коротко, то:
дополняете 2 последовательности нулями так, чтобы их длина стала равна сумме исходных длин за вычетом единицы;
делаете ДПФ обеих последовательностей;
перемножаете результаты;
делаете обратное ДПФ.


Для свертки в частотной области должно быть как-то так:

1. делаем ДПФ обеих последовательностей;
2. выполняем свертку спектров;
3. делаем обратное ДПФ.




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


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

Как-то так:
Код
a=[1 2 3 4 5];
b=[4 5 6 7 8];

ifft(cconv(fft(a), fft(b), length(a)))/length(a)
a.*b

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


Ссылка на сообщение
Поделиться на другие сайты
Спасибо, за ответ! Судя по результатам расчета выражения тождественные. Получается необходимо применять циклическую свертку. Для подобных вычислений на комплексных матрицах запись сохраняется?

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(DSale @ Feb 19 2017, 22:47) <{POST_SNAPBACK}>
Для подобных вычислений на комплексных матрицах запись сохраняется?

Да, конечно.

Код
a=[1-5j 2-3j 3+4j 4+1j 5-7j];
b=[4-1j 5-3j 6+1j 7+4j 8-9j];

ifft(cconv(fft(a), fft(b), length(a)))/length(a)
a.*b

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация