1 / 0 / 2
Регистрация: 27.04.2017
Сообщений: 51
1

Прямое преобразован­ие Фурье C++

28.01.2019, 11:34. Показов 2736. Ответов 1

Нужно написать программу прямого преобразование Фурье ( не быстрое и тд, а стандартное ). Имеется соответствующая формула, фото прилагается. Преподаватель в универе загрузил. Также имеется ряд точек, по которым должен проводится расчёт, далее если кому потребуется приложу. Но изначально можно сделать и чтобы точки генерировались рандомно либо в определённом диапазоне, это не так важно. Заранее спасибо!
Миниатюры
Прямое преобразование Фурье C++  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2019, 11:34
Ответы с готовыми решениями:

Прямое и обратное преобразование Хаара
Здравствуйте. Написал вейвлет-сжатие Хаара, чисто визуально все работало правильно. Для надежности...

Прямое и обратное преобразование функции
Всем привет! Нужно написать программу прямого и обратного преобразования функции (скорее всего...

Прямое и обратное преобразование чисел в Код Грея
Здравствуйте. Есть вот такая интересная задача, надо прямое и обратное преобразование чисел в Код...

Быстрое преобразование Фурье
Помогите реализовать задачу. Дана волновая функция(6sin5pit), необходимо преобразовать её спектр с...

1
1 / 0 / 2
Регистрация: 27.04.2017
Сообщений: 51
28.01.2019, 14:42  [ТС] 2
В итоге по полученным точкам должен получиться трёхмерный график. Вот то что получилось у меня.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
///Designed by Luis_Barton
#include <iostream>
#include <windows.h>
#include <cmath>
#include <fstream>
 
 
using namespace std;
 
fstream f;
 
 
 
int main()
{
    f.open("out_file.xls", ios::out);
    double delta1,delta2,A1,A2,ws,wre,wim;
    int K=1;
    double SP;
    A1=2;
    A2=4;
    delta1=100;
    delta2=400;
    ws=1000;
    do
    {
        for(wre=0; wre<200; wre++)
        {
            for(wim=-50; wim<50; wim++)
            {
                SP=(A1*ws/(pow(delta1,2)+pow(ws,2)-pow(wre+K*wim,2)-(2*K)*delta1*ws))+(A2*ws/(pow(delta2,2)+pow(ws,2)-pow(wre+K*wim,2)-(2*K)*delta2*ws));
                //cout << abs(SP) << " ";
                f << abs(SP) << "\t";
            }
            f << endl;
            //cout << endl;
        }
    K++;}while(K!=3);
    f.close();
 
 
    system("pause");
    return 0;
}
А вот каким должен быть график. ( фото )
Также прилагаю Excel файл в котором записаны все значения и построен график который получился у меня. ( на втором листе )
К сожалению файл получился больше ограниченного размера так что выкладываю на Яндекс.Диск : https://yadi.sk/d/2erjr0bxK6g8hw
Миниатюры
Прямое преобразование Фурье C++  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2019, 14:42
Помогаю со студенческими работами здесь

Быстрое Преобразование Фурье
В качестве библиотеки взял хваленую IPP, и тут возник рад вопросов, вот код: ...

Быстрое преобразование Фурье
Это пример на сайте wikipedia Быстрого Преобразование Фурье. Два вопроса. 1)Как получить...

Преобразование Фурье. Фильтрация изображения
Имеется программа, выполняющая фильтрацию видео с помощью фурье преобразования на с++ с...

Обратное быстрое преобразование Фурье
Прямое преобразование работает корректно, а вот обратное возвращает странную дугу в независимсти от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru