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

    

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

Ув. коллеги,подскажите где туплю.

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

convfft.rar

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


Ссылка на сообщение
Поделиться на другие сайты
Ув. коллеги,подскажите где туплю.

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

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

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


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

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

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


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

 

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

 

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


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

Стр. 304.

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

 

Если коротко, то:

дополняете 2 последовательности нулями так, чтобы их длина стала равна сумме исходных длин за вычетом единицы;

делаете ДПФ обеих последовательностей;

перемножаете результаты;

делаете обратное ДПФ.

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


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

дополняете 2 последовательности нулями так, чтобы их длина стала равна сумме исходных длин за вычетом единицы;

делаете ДПФ обеих последовательностей;

перемножаете результаты;

делаете обратное ДПФ.

 

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

 

1. делаем ДПФ обеих последовательностей;

2. выполняем свертку спектров;

3. делаем обратное ДПФ.

 

 

 

image.png

 

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


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

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

 

Как-то так:

a=[1 2 3 4 5];
b=[4 5 6 7 8];

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

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


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

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

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


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

Да, конечно.

 

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

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


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

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

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

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

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

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

Войти

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

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