0
我正在用C語言開發代碼來獲取系統的總體譜。在這個光譜中,我需要展開功能來執行我的系統的進一步步驟。如何在C中使用unwrap函數和iota(複數中的「i」)?
- 誰能告訴我,如何在我的代碼中使用unwrap函數?
- 如何在代碼中使用iota(複數中的「i」)?
- finally我如何使用gsl fft函數來執行函數的傅里葉變換?
我已經在下面提到的代碼中正確聲明所有參數是我需要你幫助的唯一代碼段。
- 在PH1的功能,我需要解開披
- 在d和N的功能,我用絲毫爲「我」 PLZ幫我了我如何使用它?
- 最後,我想用gsl來執行S的fft。如何做呢?
下面是代碼:
double dt = 0.01;
double N1 = 11;
double Fs = 1/dt;
a = dt * (N1 - 1);
double dx = 1/a;
double N;
for (m = 1; m <= N1; m++) {
double t1 = (m - 1) * dt;
//double i = sqrt(-1);
D = pow((cos(om * t1/2)), 2) + ((2 * i * sin(om * t1)/om * (Q2 + pow(om, 2) * Q1)) -
(16 * D1 * ((pow(sin(om * t1/2), 2))));
double phi = 1/tan(pow((cos(om * t1/2)), 2) + ((2 * sin(om * t1)/om) * (Q2 + pow(om, 2) * Q1))/(-16 * D1 * ((pow(sin(om * t1/2), 2)))));
double a = abs(D);
//printf("%f and %f\n",phi,a);
double ph1 = unwrap(phi); /*How to use unwrap function*/
}
for (m = 1; m <= N1; m++) {
double t1 = (m - 1) * dt;
N = ((i * cos(om * t1/2)) * ((pow(Gdot, 2) + pow((om * Gc), 2))/om) - (4 * sin(om * t1/2)) * (Q2 * pow(Gc, 2) + Q1 * pow(Gdot, 2) - (Q1dot * Gdot * Gc))); /* How to use iota */
double Ds = sqrt(a) * exp(i * ph1/2);
double Ds1 = (a) * exp(i * ph1);
//Ns(m) = (b) * exp(i * ps1);
double E = ((sin(om * t1/2))/Ds1) * N;
double S = (exp(-E))/(Ds);
double b = (pow(p0, 2) + pow((q0 * om), 2))/(2 * om);
double S1 = (exp(-i * om * t1/2)) * exp(b * (exp(-i * om * t1) - 1));
fft(S); /* How to calculate fft using gsl*/
}
@Chaqrlie謝謝你的寶貴意見。你能指導我解開功能,這是我的代碼的根? –
確定哪些變量是複雜的,並將它們定義爲這樣,使用數學函數的複雜版本,避免使用'pow'只是方形值,而是使用'x * x'。 – chqrlie