24小时热门版块排行榜    

查看: 2040  |  回复: 22

brqhl_ing

银虫 (小有名气)

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

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

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

brqhl_ing

银虫 (小有名气)

哎,自己顶一下啊!高手快进来啊
2楼2010-05-28 10:12:30
已阅   回复此楼   关注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的回帖
普通回帖

brqhl_ing

银虫 (小有名气)

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

brqhl_ing

银虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-05-28 18:58:48:

根据定义啊
例子
[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=re ...

非常感谢!那么对一个任意的函数进行希尔伯特变换?怎么进行呢?例如对dx=10*(y-x)
5楼2010-05-28 23:36:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab


adu886886(金币+1):谢谢交流 2010-05-29 12:36:43
zzuwangshilei:多谢积极回复 2010-05-29 14:04:23
引用回帖:
Originally posted by brqhl_ing at 2010-05-28 23:36:27:


非常感谢!那么对一个任意的函数进行希尔伯特变换?怎么进行呢?例如对dx=10*(y-x)

按定义来啊 呵呵
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
6楼2010-05-29 11:42:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brqhl_ing

银虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-05-29 11:42:44:

按定义来啊 呵呵

直接
syms x y
dx=10*(y-x);
xn=hilbert(dx);
xr=real(xn1)
xi=imag(xn1)
P=atan2(xi,xr)%
这样行吗?
运行后出现:syms x y
>> dx=10*(y-x);
>> xn=hilbert(dx);
xr=real(xn1);
xi=imag(xn1);
P=atan2(xi,xr);
Warning: HILBERT ignores imaginary part of input.
> In hilbert at 39
??? Function 'fft' is not defined for values of class 'sym'.

Error in ==> fft at 36
  [varargout{1:nargout}] = builtin('fft', varargin{:});

Error in ==> hilbert at 47
x = fft(xr,n,1); % n-point FFT over columns.
7楼2010-05-29 14:44:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab


adu886886(金币+1):谢谢提供意见 2010-05-29 18:22:01
引用回帖:
Originally posted by brqhl_ing at 2010-05-29 14:44:06:

直接
syms x y
dx=10*(y-x);
xn=hilbert(dx);
xr=real(xn1)
xi=imag(xn1)
P=atan2(xi,xr)%
这样行吗?
运行后出现:syms x y
>> dx=10*(y-x);
>> xn=hilbert(dx);
xr=real(xn1);
x ...

呵呵 看到错误 你就知道hilbert的实质计算了吧 就是实部用fft 虚部iff计算的 但是你那样的话也不对啊 直接算不了的
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
8楼2010-05-29 16:29:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brqhl_ing

银虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-05-29 16:29:30:

呵呵 看到错误 你就知道hilbert的实质计算了吧 就是实部用fft 虚部iff计算的 但是你那样的话也不对啊 直接算不了的

现在我就是想对一个任意的函数进行希尔伯特变换啊?该怎么进行?不会要化成正余弦进行转换吧?例如:y=3x^3+2x^2+3x+3
9楼2010-05-29 18:54:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab


nono2009(金币+1):鼓励应助! 2010-05-29 20:08:50
引用回帖:
Originally posted by brqhl_ing at 2010-05-29 18:54:15:

现在我就是想对一个任意的函数进行希尔伯特变换啊?该怎么进行?不会要化成正余弦进行转换吧?例如:y=3x^3+2x^2+3x+3

http://www.docin.com/p-3374693.html
看看定义 呵呵并不是那么好积出来
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
10楼2010-05-29 19:15:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 brqhl_ing 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见