Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
VlTag
7 / 7 / 1
Регистрация: 30.04.2012
Сообщений: 87
#1

Спектральный анализ - оживить программу - C++

13.11.2012, 19:41. Просмотров 731. Ответов 5
Метки нет (Все метки)

Помогите добиться работы ценной и редкой программы для реализации Быстрого Преобразования Хартли. Программа из зарубежной научной монографии на иностранном языке.
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
c     *******************************************
      PROGRAM FHT
c     ----- PEREMENNUE OPISANIE -----------------
      DIMENSION F(0:8,0:256), R(0:256), X(0:256), M(0:20)
      DIMENSION S(64), C(64)
      INTEGER D,E,I,K,L,M0,N,N2,N4
      INTEGER N7,P,P0,P7,Q,S0,S1,S2,S4,U
      FIN(I)=I+1
      P=8
      N4=2**(P-2)
      N2=N4+N4
      N=N2+N2
      N7=N-1
      P7=P-1
c     ----- INSERT DAATA ---------------------
      DO I=0,N7
      F(0,I)=FIN(I)
      F(1,I)=F(0,I)
      END DO
c     ----- GET POWERS OF 2 ---------------------
      I=1
      M(0)=1
      M(1)=2
 10   M(I+1)=M(I)+M(I)
      I=I+1
      IF (I.LT.P) GO TO 10
c     ----- GET SINES AND COSINES ---------------
      PI=3.14159265
      W=2*PI/N
      A=0
      DO I=1,N4
      A=A+W
      S(I)=SIN(A)
      C(I)=COS(A)
      END DO
c     ----- PERMUTE -----------------------------
      J=-1
      I=-1
 20   I=I+1
      P0=P
 30   P0=P0-1
      J=J-M(P0)
      IF (J.GE.-1) GO TO 30
      J=J+M(P0+1)
      IF (I.LE.J) GO TO 20
      T=F(0,I+1)
      F(0,I+1)=F(0,J+1)
      F(0,J+1)=T
      IF (I.LT.(N-3)) GO TO 20
c     ----- GET F(I,1),  2-ELEMENT DHTs
      DO I=0,N-2,2
      F(1,I)=F(0,I)+F(0,I+1)
      F(1,I+1)=F(0,I)-F(0,I+1)
      END DO
      IF (P.EQ.1) GO TO 40
c     ----- GET F(2,I), 4-ELEMENT DHTs
      L=2
      M0=2
      DO I=0,N-4,4
      F(2,I)=F(1,I)+F(1,I+2)
      F(2,I+1)=F(1,I+1)+F(1,I+3)
      F(2,I+2)=F(1,I)-F(1,I+2)
      F(2,I+3)=F(1,I+1)-F(1,I+3)
      END DO
      IF (P.EQ.2) GO TO 40
c     ----- STAGES 3,4 .... -------------------
      U=P7
      S1=4
      DO L=2,P7
      S2=S1+S1
      U=U-1
      S0=M(U-1)
      DO Q=0,N7,S2
      I=Q
      D=I+S1
      F(L+1,I)=F(L,I)+F(L,D)
      F(L+1,D)=F(L,I)-F(L,D)
      K=D-1
      DO J=S0,N4,S0
      I=I+1
      D=I+S1
      E=K+S1
      Y=F(L,D)*C(J)+F(L,E)*S(J)
      Z=F(L,D)*S(J)-F(L,E)*C(J)
      F(L+1,I)=F(L,I)+Y
      F(L+1,D)=F(L,I)-Y
      F(L+1,K)=F(L,K)+Z
      F(L+1,E)=F(L,K)-Z
      K=K-1
      END DO
      E=K+S1
      END DO
      S1=S2
      END DO
c     ----- GET DFT ---------------------------
      R(0)=(F(L,0)+F(L,0))/2
      X(0)=0
      DO I=1,N7
      B=F(L,N-1)
      R(I)=(F(L,I)+B)/2
      X(I)=(F(L,I)-B)/2
      END DO
 40   CONTINUE
c     ----- WRRITTE RESULTS -------------------
      TYPE 50
 50   FORMAT (' Input H( ) R( ) X( ) ')
      DO I=0,N7
      TYPE 60, I,FIN(I),F(L,I)/N,R(I)/N,X(I)/N
 60   FORMAT (16,4 F9.3)
      END DO
      END
      RETURN
      END
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 19:41     Спектральный анализ - оживить программу
Посмотрите здесь:

C++ Анализ результатов
C++ Анализ массива
Анализ текста Visual C++
C++ Прошу помочь с прогой, если можно) надо её оживить...
лексический анализ..... C++
Анализ данных C++
C++ Анализ
C++ Анализ текста
C++ Анализ IP пакетов
C++ Анализ задачи
Анализ backtrace C++
анализ DNS C++ Linux

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
raxp
10148 / 6535 / 477
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
13.11.2012, 22:12     Спектральный анализ - оживить программу #2
...о, у ценной программы наименование появилось, на программерсе не удосужились.

Нате, http://alglib.sources.ru/fasttransforms/fht.php
VlTag
7 / 7 / 1
Регистрация: 30.04.2012
Сообщений: 87
14.11.2012, 10:08  [ТС]     Спектральный анализ - оживить программу #3
Уважаемый raxp, спасибо!
Да, на указанной ссылке что-то есть, но это не серьёзно. Я же разместил программу для профессионального использования в научных расчётах. Эта программа приводится в зарубежном классическом источнике по теории быстрого преобразования Хартли. Проблема в том, что код составлен на старой версии языка Fortran. Надо её переработать под компилятор Fortran_Force_2. Также можно переписать код на язык C++.
raxp
10148 / 6535 / 477
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
14.11.2012, 11:25     Спектральный анализ - оживить программу #4
...вы конечно извиняйте, но вы несете чушь. Алгоритм есть алгоритм, где бы он не был размещен. У меня вот тоже есть реализация БПФ, используется в промышленном оборудовании и опубликована в научно-техническом издании, но от этого алгоритм, методика, формулы и расчеты не стали другими.

Приведенная ссылка содержит реализацию для быстрого преобразования Хартли на С# и С++. Вы разместили тему в разделе Си. Если хотите адаптацию со старого Фортрана на что-то другое из Фортранов без наработок с вашей стороны, то вряд-ли это делается бесплатно.
VlTag
7 / 7 / 1
Регистрация: 30.04.2012
Сообщений: 87
15.11.2012, 16:43  [ТС]     Спектральный анализ - оживить программу #5
1. Понятия "формула" и "алгоритм" есть разные вещи! Алгоритмы могут варьироваться и совершенствоваться. Есть ДИСКРЕТНЫЕ преобразования Фурье и Хартли. Там действительно более одного алгоритма не предложишь, кроме как считать по формуле. Но речь идёт о БЫСТРЫХ преобразованиях! Не путайте! Известны несколько алгоритмов БПФ и БПХ.
2. Интересующую меня программу на старом Fortran я и сам заставлю работать без помощи "крутых" программистов!
raxp
10148 / 6535 / 477
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
15.11.2012, 19:20     Спектральный анализ - оживить программу #6
...так давайте
Yandex
Объявления
15.11.2012, 19:20     Спектральный анализ - оживить программу
Ответ Создать тему
Опции темы

Текущее время: 03:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru