|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.05.2013, 17:25 | #1 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 58
|
Вопрос по обратному дискретному преобразованию Фурье
Есть массив значений аудио сигнала, надо применить к нему БПФ, выделить массивы амплитуд и фаз, изменить немного массив фаз, выполнить ОБПФ с помощью начального массива амплитуд и измененного массива фаз. Проблема в том, что я не могу найти рабочуюю формулу для ОБПФ.
БПФ код, там нет ошибок. Код:
Код:
|
04.05.2013, 17:26 | #2 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 58
|
Сначала я пробовал по этому примеру делать:
Код:
=== Initialization === Complex: (769, 0) Complex: (426, 0) Complex: (165, 0) Complex: (923, 0) === FFT === Complex: (2283, 0) Complex: (604, 497) Complex: (-415, 0) Complex: (604, -497) === AMPLITUDE === 2283 782.192431566555 415 782.192431566555 === PHASE === 0 39.4491769948366 0 -39.4491769948366 === IFFT with A and PH === // тут должны получаться числа, такие же как в Initialization Complex: (1.06138633985891E+20, 0) Complex: (8366.90227825749, 1.06138633985891E+20) Complex: (-1.06138633985891E+20, 0) Complex: (-4630.90227825749, -1.06138633985891E+20) Потом попробовал вот таким образом: Код:
=== Initialization === Complex: (980, 0) Complex: (918, 0) Complex: (710, 0) Complex: (584, 0) === FFT === Complex: (3192, 0) Complex: (270, -334) Complex: (188, 0) Complex: (270, 334) === AMPLITUDE === 798 107.370852655644 47 107.370852655644 === PHASE === 0 -51.0485066610006 0 51.0485066610006 === IFFT with A and PH === // в этом случает числа здесь должны совпадать с числами в FFT Complex: (3192, 0) Complex: (2.90309762853303E-20, 0) Complex: (188, 0) Complex: (6.35376496426018E+24, 0) Как видите половина чисел совпадает, но чем больше n, тем меньше правильных результатов, при n=16 правильных всего 1. Подскажите как мне быть, больше формул я не знаю. |
04.05.2013, 18:23 | #3 |
Пользователь
Регистрация: 06.10.2011
Сообщений: 58
|
=== FFT === | === IFFT with A and PH ===
Complex: (3192, 0) | Complex: (3192, 0) Complex: (270, -334) | Complex: (2.90309762853303E-20, 0) Complex: (188, 0) | Complex: (188, 0) Complex: (270, 334) | Complex: (6.35376496426018E+24, 0) Как видно, проблемы начинаются, когда мнимая часть комплексного числа присутствует в результатах рассчетов FFT, но там, где эта мнимая часть 0 фаза тоже 0, то есть нельзя просто взять и отбросить мнимую часть в результирующем массиве FFT. Иначе фазы везде будут просто 0. Не понимаю в чём тут дело, кто разбирается в комплексных числах или FFT, помогите советом плз. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Фурье преобразование | Ria Alva | C++ Builder | 0 | 24.06.2012 18:44 |
Вопрос по преобразованию типов переменных (TImage и FILE) | Pcrepair | Общие вопросы Delphi | 3 | 04.01.2011 15:15 |
Работа по преобразованию изображения | smopromote | Фриланс | 4 | 22.07.2010 09:05 |
Преобразование Фурье | fina | Помощь студентам | 0 | 17.06.2010 14:00 |
Фурье | DeDoK | Общие вопросы Delphi | 0 | 12.09.2008 17:28 |