C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ヒルベルト変換


(過去ログ 130 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■76925 / inTopicNo.1)  ヒルベルト変換
  
□投稿者/ 名無しの権兵衛 (3回)-(2015/08/28(Fri) 13:31:04)

分類:[C/C++] 

Matlabにあるhilbert,imag,real関数をC++で作りたいのですが、どなたかソースコードを頂けないでしょうか?

Matlabコード

xr = [1 2 3 4];
x = hilbert(xr)
imx = imag(x)
rex = real(x)

[結果]
x =
1.0000 + 1.0000i 2.0000 - 1.0000i 3.0000 - 1.0000i 4.0000 + 1.0000i
imx =
1 -1 -1 1
rex =
1 2 3 4



引用返信 編集キー/
■76927 / inTopicNo.2)  Re[1]: ヒルベルト変換
□投稿者/ 774RR (305回)-(2015/08/28(Fri) 13:48:23)
google 様にキーワード hilbert変換 C++ で訊いてみた。返ってきた結果のいくつか
http://stackoverflow.com/questions/21893481/
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1193169981
妥当性までは知らん。

っていうか自分で検索ぐらいしたの?少しは自分でコード書いたりしたの?
オイラを含め、掲示板の読者のほとんどはあなたの仕事を代わりに解いたりしないよ。

引用返信 編集キー/
■76958 / inTopicNo.3)  Re[2]: ヒルベルト変換
□投稿者/ 名無しの権兵衛 (5回)-(2015/08/31(Mon) 16:42:30)
No76927 (774RR さん) に返信
> google 様にキーワード hilbert変換 C++ で訊いてみた。返ってきた結果のいくつか
> http://stackoverflow.com/questions/21893481/
> http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1193169981
> 妥当性までは知らん。
>
> っていうか自分で検索ぐらいしたの?少しは自分でコード書いたりしたの?
> オイラを含め、掲示板の読者のほとんどはあなたの仕事を代わりに解いたりしないよ。
>

ありがとうございました。ごもっともです。
ということで、おバカなもので大分時間かかったのですが
自分で調べて組んだので載せておきますので、
間違えていたら、ご指摘ください!!

#include "stdlib.h"

typedef struct {
double R;
double I;
} Complex;

extern void fft(Complex* x, int n);
extern void ifft(Complex* x, int n);

void Hilbert(double* xi, Complex* xo, int n)
{
double* h;
int n2 = n / 2;
int i;

h = (double*)malloc(sizeof(double) * n);

for (i = 0; i < n; i++) {
xo[i].R = xi[i];
xo[i].I = 0.0;
h[i] = 0.0;
}

fft(xo, n); //FFT実行 ← 自前のライブラリを使用

if (n == (n2 * 2)) {
h[0] = 1;
h[n2] = 1;
for (i = 1; i < n2; i++)
{
h[i] = 2;
}
}
else {
h[0] = 1;
for (i = 1; i <= n2; i++) {
h[i] = 2;
}
}

for (i = 0; i < n; i++) {
xo[i].R *= h[i];
xo[i].I *= h[i];
}

ifft(xo, n); //逆FFT実行 ← 自前のライブラリを使用
free(h);
}

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -