24小时热门版块排行榜    

查看: 2039  |  回复: 22

brqhl_ing

银虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-05-29 19:15:42:

http://www.docin.com/p-3374693.html
看看定义 呵呵并不是那么好积出来

我的意思是matlab中有一个hilbert变换的函数啊?这个函数是怎么用的?不能对任一函数进行变换吗?为什么你那个例子对余弦函数就可以。而我对一个实函数却不行呢?
ps:谢谢你提供的信息!万分感谢!
11楼2010-05-29 19:41:38
已阅   回复此楼   关注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的回帖

lfr2712

新虫 (初入文坛)

brqhl_ing(金币+1):谢谢参与
adu886886(金币-1):请勿灌水 2010-05-30 09:02:34
顶一下啊!高手快进来啊
13楼2010-05-29 22:48:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brqhl_ing

银虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-05-29 22:17:21:

看一下帮助
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 ...

你的意思是。进行希尔伯特变换必须是这个函数对你取得每一个时间间隔都有对应的值?然后这些值构成一个矩阵,matlab就可以进行计算?例如:A=[1 2 3 4]这个就可以直接进行希尔伯特变换
14楼2010-05-30 09:00:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

引用回帖:
Originally posted by brqhl_ing at 2010-05-30 09:00:15:

你的意思是。进行希尔伯特变换必须是这个函数对你取得每一个时间间隔都有对应的值?然后这些值构成一个矩阵,matlab就可以进行计算?例如:A=[1 2 3 4]这个就可以直接进行希尔伯特变换

无限接近事实啊 呵呵
>> A=[1 2 3 4]
A =
     1     2     3     4
>> xn=hilbert(A)
xn =
   1.0000 + 1.0000i   2.0000 - 1.0000i   3.0000 - 1.0000i   4.0000 + 1.0000i
>>
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
15楼2010-05-30 14:26:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brqhl_ing

银虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-05-30 14:26:53:

无限接近事实啊 呵呵
>> A=[1 2 3 4]
A =
     1     2     3     4
>> xn=hilbert(A)
xn =
   1.0000 + 1.0000i   2.0000 - 1.0000i   3.0000 - 1.0000i   4.0000 + 1.0000i
>>

经过你的点拨。已初步了解,在问一下 就是在定义相位的时候p=atan2(xi,xr);
2是什么意思!为不直接p=atan(xi,xr);请解释一下 谢谢!
16楼2010-05-30 16:09:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brqhl_ing

银虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-05-30 14:26:53:

无限接近事实啊 呵呵
>> A=[1 2 3 4]
A =
     1     2     3     4
>> xn=hilbert(A)
xn =
   1.0000 + 1.0000i   2.0000 - 1.0000i   3.0000 - 1.0000i   4.0000 + 1.0000i
>>

呵呵,这个问题我已明白! 是因为其中的变量有两个!
17楼2010-05-30 16:19:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab


zzuwangshilei(金币+1):多谢积极参与 2010-05-31 11:17:32
引用回帖:
Originally posted by brqhl_ing at 2010-05-30 16:19:10:

呵呵,这个问题我已明白! 是因为其中的变量有两个!

呵呵 不是你那样理解的  四象限的反正切 也就是说值域【-180  180】
http://www.ilovematlab.cn/redire ... dset&sid=SOFAXW
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
18楼2010-05-30 16:46:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brqhl_ing

银虫 (小有名气)

zzuwangshilei:鼓励继续讨论 2010-05-31 11:17:53
引用回帖:
Originally posted by lijinfeng042 at 2010-05-30 16:46:28:

呵呵 不是你那样理解的  四象限的反正切 也就是说值域【-180  180】
http://www.ilovematlab.cn/redire ... dset&sid=SOFAXW

y=10;
>> x=20;
>> p=atan(x,y)
??? Error using ==> atan
Too many input arguments.
这个为什么错了啊?
但这样:>> y=10;
>> x=20;
>> p=atan2(x,y)

p =

    1.1071
就可以啊!两个变量你没2就不对啊
19楼2010-05-30 20:01:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

引用回帖:
Originally posted by brqhl_ing at 2010-05-30 20:01:52:

y=10;
>> x=20;
>> p=atan(x,y)
??? Error using ==> atan
Too many input arguments.
这个为什么错了啊?
但这样:>> y=10;
>> x=20;
>> p=atan2(x,y)

p =

  ...

这是函数在matlab定义问题啊 参数多少不是我们自己定的 我们只是根据需要选择,atan2(Y,X) contrasts with atan(Y/X), whose results are limited to the interval [–π/2, π/2], or the right side of this diagram.仅此而已
P = atan2(Y,X)
Y = atan(X)
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
20楼2010-05-31 12:08:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 brqhl_ing 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见