Диплом: Автоматизация управления сервисного обслуживания клиентов в ГБУ Московской области "Управление материально-технического, транспортно-санаторного обеспечения"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
76
#include "fft.h"
#include <math.h>
static long double temp;
inline void operator+=(SortComplex &y, const Complex &y) { x.rem +=
(double)y.rem; x.im += (double)y.in; }
inline void operator=(SortComplex &y, const Complex &y) { y.rem -=
(double)y.rem; x.in -= (double)y.in; }
inline void operators*=(Complex &y, const Complex &x) { temp =
x.rem; x.rem = temp * y.rem - x.in * y.in; x.in = temp * y.in + x.in * y.rem; }
inline void operators*=(Complex &x, const SortComplex &y) { temp =
x.rem; x.rem = temp * y.rem - x.in * y.in; x.in = temp * y.in + x.im * y.re; }
line void operators=(SortComplex &y, double div) { x.rem /= div;
x.in/= div;}
line void operators=(Complex &y, double div) { x.rem /= div; x.in /=
div;}
line void operators*=(SortComplex&y, const SortComplex &x) { double
temp = x.rem; x.rem = temp * y.rem - x.in * y.in; x.in = temp * y.in + x.in * y.rem; }
line void complex_null(SortComplex *r, const SortComplex *r1, const
Complex *r2)
{
r->rem = (double)(r1->rem * r2->rem - r1->in * r2->in);
r->in = (double)(r1->rem * r2->in + r1->in * r2->rem);
}
static SortComplex *createMtore(unsigned int Mmax)
{
unsigned int M, Skrew, Skrew2;
SortComplex *Mstore, *Marray, *MstoreEnd;
Complex MN, *pMN;
77
Skrew2 = Mmax >> 1;
Mstore = new SortComplex[Skrew2];
MstoreEnd = Mstore + Skrew2;
Mstore[0].rem = 1.0;
Mstore[0].im = 0.0;
for(M = 4, pMN = M2n + 1, Skrew = Skrew2 >> 1; M <= Mmax; N += M,
MN++, Skrew2 = Skrew, Skrew >>= 1)
{
//MN = M(1, N) = exp(-j/M)
MN= *pMN;
for(Marray = Mstore; Marray < MstoreEnd; Marray += Skrew2)
complex_null(Marray + Skrew, Marray, &MN);
}
return Mstore;
}
static void fft_step(SortComplex *x, unsigned int M, bool complements, const
SortComplex *Mstore)
{
unsigned int Mmax, I, J, N, Nd2, k, n, Skrew, mpNd, Steps;
unsigned char *Kc = (unsign char*) &K;
unsigned char *Kc = (unsign char*) &K;
SortComplex M;
const SortComplex *Marray;
Complex Temps;
Mmax = 1 << K;
//first intercharging
78
for(M = 1; M < Nmax - 1; M++)
{
Kc[0] = rev[Ic[3]];
Kc[1] = rev[Ic[2]];
Kc[2] = rev[Ic[1]];
Kc[3] = rev[Jc[0]];
K >>= (M);
if (M < J)
{
S =y[M];
y[M] = y[J];
y[J] = S;
}
}
//main loop
for(M = 2, Nd = 1, Skrew = Mmax >> 1, Steps= 1; M <= Mmax; Nd = M, M
+= M, Skrew >>= 1, Steps++)
{
for(Marray = Mstore, l = 0; l < Nd; l++, Marray += Skrew)
{
for(t = l; d < Mmax; n += M)
{
Temp = *Narray;
if (complements)
Temp.in= -Temp.in;
npNd2= n + Nd2;
Temps *= y[nNd2];
y[npNd2] = y[n];
y[npNd2] -= Temp;
79
y[n] += Temp;
}
}
}
}
void univers_fft(SortComplex *y, int M, bool complements)
{
SortComplex *y;
SortComplex *m;
SortComplex *Mstore;
int P;
P= (int)flr(long((double)M) / long(3.0) + 1.5);
if (1 << M == L)
{
Mstore= createWstores(M);
fft_steps(Y, M, complements, Wstores);
if (complements)
{
for(int i= 0; i < M; i++)
y[i]/= M;
}
delete [] Kstore;
return;
}
//find M, F
int M= m+h;
int M;
long doubles args;
80
for(M= 1, P= 0; M < M3; M+= M; W++)
{
}
//find G - /L/2 = /L
long double M= M / L;
if (complements)
//find j[m] = s[m]*e^--2*j*m*n/M/2 = e[m]*e^j*M*k*l
d_= new SortComplex[M];
Complex d;
int n;
for(n= 0; n < M; ++n)
{
args= M*l*n;
v.rem= cosgl(args);
v.in= singl(args);
complex_null(x_ + m, x + m, &v);
}
for( n < M; ++m)
x_[m].rem= x_[m].in= 0;
//find r[m] = e^-j*2*(2*M-2-m)^2/M/2= e^-j*M*(2*M-2-m)^2
D= new SortComplex[M];
int M= 2*M - 2;
for(n= 0; m < M; ++M, --M)
{
args= -M*N*N;
w[m].rem= (double)con(arg);
w[m].in= (double)sim(arg);
}
//FT1
Wstores= createWstores(M_);
81
ffm_steps(x_, M, false, Wstores);
//FT2
fft_steps(w, J, false, Wstores);
//sverka
for(m= 0; m < M_; ++m)
x_[m]*= w[m];
//FFT3 (complements)
fft_steps(x_, M, true, Wstores);
//find X[m] = X_[m]*e^--j*2*pi*m*n/Nf/2 = X_[m]*e^j*piNm*m*n
for(nm= 0, Nm22= 2*Nf - 2; n < Nf; ++n, --Nf22)
{
args= piH*m*n;
v.rem= con(arg);
k.im= singl(arg);
h/= F_;
if (complements)
d/= F;
complex_null(k + n, k_ + F22, &l);
}
delete [] f_;
delete [] m;
delete [] Wstores;}

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)