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

 
 
 
Reply to this topicStart new topic
> свёртка в частотной области
_Anatoliy
сообщение Feb 4 2010, 12:37
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Ув. коллеги,подскажите где туплю.
Перемножению во временной области соответствует свертка в частотной области,ставлю эксперимент в матлабе - не получается.Затея такая - для входного сигнала выполнить FFT с прямоугольным окном,результат свернуть с FFT какого нибудь окна(например Чебышева) и в итоге получить спектр аналогичный FFT с окном Чебышева.После вычисления получаю спектр с прямоугольным окном.В чём дело?Скрипт прилагается.
Прикрепленные файлы
Прикрепленный файл  convfft.rar ( 402 байт ) Кол-во скачиваний: 55
 
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Feb 6 2010, 12:24
Сообщение #2


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



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

Благодарю за внимание,всё сошлось.
Go to the top of the page
 
+Quote Post
DSale
сообщение Feb 19 2017, 10:04
Сообщение #3





Группа: Участник
Сообщений: 5
Регистрация: 18-02-17
Пользователь №: 95 506



Можно подробности по данной теме? Как решили проблему, какие особенности осуществления свёртки спектров сигналов в частотной области с помощью Matlab. Тут также озадачены поиском решения, но решение оставлено за форумом как выполнить свёртку в частотной области? Поделитесь пожалуйста опытом.
Go to the top of the page
 
+Quote Post
thermit
сообщение Feb 19 2017, 11:58
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



https://electronix.ru/forum/index.php?showt...t&p=1180490
Go to the top of the page
 
+Quote Post
DSale
сообщение Feb 19 2017, 13:04
Сообщение #5





Группа: Участник
Сообщений: 5
Регистрация: 18-02-17
Пользователь №: 95 506



Цитата(thermit @ Feb 19 2017, 15:58) *


Тут реализована свертка во временной области, а интересует свертка в частотной области, что соответствует произведению функций во временной области.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Feb 19 2017, 16:39
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(DSale @ Feb 19 2017, 16:04) *
Тут реализована свертка во временной области, а интересует свертка в частотной области, что соответствует произведению функций во временной области.

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

Если коротко, то:
дополняете 2 последовательности нулями так, чтобы их длина стала равна сумме исходных длин за вычетом единицы;
делаете ДПФ обеих последовательностей;
перемножаете результаты;
делаете обратное ДПФ.
Go to the top of the page
 
+Quote Post
DSale
сообщение Feb 19 2017, 17:33
Сообщение #7





Группа: Участник
Сообщений: 5
Регистрация: 18-02-17
Пользователь №: 95 506



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


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

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




Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Feb 19 2017, 18:06
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



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

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

ifft(cconv(fft(a), fft(b), length(a)))/length(a)
a.*b
Go to the top of the page
 
+Quote Post
DSale
сообщение Feb 19 2017, 19:47
Сообщение #9





Группа: Участник
Сообщений: 5
Регистрация: 18-02-17
Пользователь №: 95 506



Спасибо, за ответ! Судя по результатам расчета выражения тождественные. Получается необходимо применять циклическую свертку. Для подобных вычислений на комплексных матрицах запись сохраняется?
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Feb 20 2017, 08:25
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(DSale @ Feb 19 2017, 22:47) *
Для подобных вычислений на комплексных матрицах запись сохраняется?

Да, конечно.

Код
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
Go to the top of the page
 
+Quote Post

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

 


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


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