2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 FFT
Сообщение18.08.2015, 21:29 


13/08/15
11
Добрый вечер, форумчане. Не могли бы вы помочь разобраться с частью кода ( реализацией FFT ):
Код:
/// <summary>
        /// Центровка массива значений полученных в fft (спектральная составляющая при нулевой частоте будет в центре массива)
        /// </summary>
        /// <param name="X">Массив значений полученный в fft</param>
        /// <returns></returns>
        public static Complex[] nfft(Complex[] X)
        {
            int N = X.Length;
            Complex[] X_n = new Complex[N];
            for (int i = 0; i < N / 2; i++)
            {
                X_n[i] = X[N / 2 + i];
                X_n[N / 2 + i] = X[i];
            }
            return X_n;
        }

А что будет левее центра массива ? Отрицательными частоты быть не могут...
Ссылка на вики с кодом ( часть - C# ):
https://ru.wikibooks.org/wiki/%D0%A0%D0 ... D0%B5#C.23

Еще немножко посмотрел, и мне кажется что массив будет зеркален относительно центра, прав ли я ?

 Профиль  
                  
 
 Re: FFT
Сообщение18.08.2015, 21:35 
Заслуженный участник


09/05/12
25179
MrDarkness в сообщении #1046091 писал(а):
Еще немножко посмотрел, и мне кажется что массив будет зеркален относительно центра, прав ли я ?
Да, прав, если исходные данные вещественные.

P.S. Хотя осмысленность этого действия сомнительна.

 Профиль  
                  
 
 Re: FFT
Сообщение18.08.2015, 21:38 


13/08/15
11
А далее ( с центра и далее ) частоты идут по возрастанию ?

 Профиль  
                  
 
 Posted automatically
Сообщение18.08.2015, 21:43 
Супермодератор
Аватара пользователя


20/11/12
5728
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Программирование»
Перенёс в более подходящий раздел

 Профиль  
                  
 
 Re: FFT
Сообщение18.08.2015, 22:03 
Заслуженный участник


09/05/12
25179
MrDarkness в сообщении #1046094 писал(а):
А далее ( с центра и далее ) частоты идут по возрастанию ?
Тоже да.

 Профиль  
                  
 
 Re: FFT
Сообщение18.08.2015, 23:28 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
MrDarkness в сообщении #1046091 писал(а):
Отрицательными частоты быть не могут...


Могут.
Но отличаться величины, симметричные относительно центра, будут, если исходный массив комплексный. Если действительный - они одинаковы (по модулю, а так комплексно сопряжённые).

 Профиль  
                  
 
 Re: FFT
Сообщение18.08.2015, 23:29 
Заслуженный участник


27/04/09
28128
Ага, виден C#. А значит, и .NET. А значит, можно посоветовать Math.NET Numerics. MrDarkness, если ваша задача не разобраться в написании алгоритма FFT на C#, используйте эту штуку сразу же, потому что над ней работали достаточно долго с соответствующим результатом в производительности и количестве возможных оставшихся ошибок. :-)

-- Ср авг 19, 2015 01:30:06 --

(Или, конечно, что-то аналогичное — просто я знаю только упомянутое.)

 Профиль  
                  
 
 Re: FFT
Сообщение18.08.2015, 23:36 
Аватара пользователя


31/10/08
1244
MrDarkness в сообщении #1046091 писал(а):
А что будет левее центра массива ? Отрицательными частоты быть не могут...

Да запросто могу. Частоты бывают отрицательными. Да и не только отрицательными. Я то к примеру ответ знаю, что будет с лева. А Вы сами как думаете? Что будет слева?

MrDarkness в сообщении #1046091 писал(а):
Еще немножко посмотрел, и мне кажется что массив будет зеркален относительно центра, прав ли я ?

Нет, конечно. Числа ведь комплексные.

MrDarkness в сообщении #1046094 писал(а):
А далее ( с центра и далее ) частоты идут по возрастанию ?

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

 Профиль  
                  
 
 Re: FFT
Сообщение19.08.2015, 21:28 


13/08/15
11
В моем случае идет лишь действительная часть отличная от нуля, поэтому сопряженных не будет. Т.е. любой действительной составляющей в соответствие ставится мнимая, равная нулю. В таком случае, скорее всего, мои предположения окажутся верными.

-- 19.08.2015, 23:04 --

Pavia
Извините, не до конца освоил все теги, ранее обращался к вам, забыл написать тег ответа.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group