24小时热门版块排行榜    

查看: 2039  |  回复: 22
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

brqhl_ing

银虫 (小有名气)

[交流] 【求助】在matlab中如何用希尔伯特变换定义相位 已有3人参与

请教高手一下啊,如何在matlab中利用希尔伯特变换来定义相位!最好举个简单的例子!万分感谢!!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

★ ★
adu886886(金币+2):鼓励应助 2010-05-30 09:02:22
引用回帖:
Originally posted by brqhl_ing at 2010-05-29 19:41:38:

我的意思是matlab中有一个hilbert变换的函数啊?这个函数是怎么用的?不能对任一函数进行变换吗?为什么你那个例子对余弦函数就可以。而我对一个实函数却不行呢?
ps:谢谢你提供的信息!万分感谢!

看一下帮助
In detail, hilbert uses a four-step algorithm:

   1.

      It calculates the FFT of the input sequence, storing the result in a vector x.
   2.

      It creates a vector h whose elements h(i) have the values:
          *

            1 for i = 1, (n/2)+1
          *

            2 for i = 2, 3, ... , (n/2)
          *

            0 for i = (n/2)+2, ... , n
   3.

      It calculates the element-wise product of x and h.
   4.

      It calculates the inverse FFT of the sequence obtained in step 3 and returns the first n elements of the result.

If the input data xr is a matrix, hilbert operates in a similar manner, extending each step above to handle the matrix case.


matlab的转换其实是针对一序列的 呵呵 实部返回原来的 虚部进行iff处理
就是说 你的那个函数 是有数值的吧 令x=....得到一些列值matlab才继续计算的 呵呵 xn=cos那个例子也是这样 计算出一个数值矩阵 来的
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
12楼2010-05-29 22:17:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 23 个回答

brqhl_ing

银虫 (小有名气)

哎,自己顶一下啊!高手快进来啊
2楼2010-05-28 10:12:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brqhl_ing

银虫 (小有名气)

呜呜,传说中的高手呢!!
3楼2010-05-28 15:21:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

★ ★ ★
brqhl_ing(金币+1):谢谢参与
adu886886(金币+2):谢谢指导 2010-05-28 19:55:47
brqhl_ing(金币+4): 2010-05-29 08:26:30
引用回帖:
Originally posted by brqhl_ing at 2010-05-28 08:44:56:
请教高手一下啊,如何在matlab中利用希尔伯特变换来定义相位!最好举个简单的例子!万分感谢!!

根据定义啊
例子
CODE:
%余弦信号
n=0:512;
Ts=0.0125;
xn=cos(40*pi*n*Ts);
subplot(2,1,1);plot(n,xn);
xlabel('采样点数n');ylabel('原始图像x(n)');title('余弦信号')

xn1=hilbert(xn)
xr=real(xn1)
xi=imag(xn1)
P=atan2(xi,xr)%定义相位就是反正切
subplot(2,1,2);
plot(P)
xlabel('采样点数n');ylabel('瞬时相位')

工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
4楼2010-05-28 18:58:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见