Jump to content

    

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

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

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

convfft.rar

Share this post


Link to post
Share on other sites
Ув. коллеги,подскажите где туплю.

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

 

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

 

Share this post


Link to post
Share on other sites
Тут реализована свертка во временной области, а интересует свертка в частотной области, что соответствует произведению функций во временной области.

Стр. 304.

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

 

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

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

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

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

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

Share this post


Link to post
Share on other sites
Если коротко, то:

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

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

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

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

 

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

 

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

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

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

 

 

 

image.png

 

Share this post


Link to post
Share on other sites

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

 

Как-то так:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Для подобных вычислений на комплексных матрицах запись сохраняется?

Да, конечно.

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this