| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-07-18 
				
				年龄: 48 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			在谈傅立叶变换时,大家关注的往往是其幅度谱,那么位相谱的作用呢? 
		
		
		
		
		
		
		
	查阅了一些资料,说位相谱表示为信号的个频率成分的初始位相。那么我在matlab做了一个计算,代码如下: t = 0:0.001:0.6; x = sin(2*pi*50*t)+sin(2*pi*120*t); %y = x + 2*randn(size(t)); y=x; figure; plot(1000*t(1:50),y(1:50)) title('Signal Corrupted with Zero-Mean Random Noise') xlabel('time (milliseconds)') Y = fft(y,512); Pyy = Y.* conj(Y) / 512; phase=angle(Y)*180./pi; f = 1000*(0:256)/512; figure; plot(f,Pyy(1:257)); figure; plot(f,phase(1:257)); title('Frequency content of y'); xlabel('frequency (Hz)'); 这是matlab帮助文件中的一个例子,我稍加改动,增加了计算计算傅立叶变换后计算位相谱的语句及相应的作图。 从理论上讲,信号由两个初位相为零的正弦函数组成,那么画出的位相谱和频率的曲线至少在频率为50和120处为零,但发现位相值不为零,而且曲线很不规则。这是为什么? 请各位大侠指教,小女子先谢过了。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-04-05 
				
				年龄: 83 
				
					帖子: 37
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			采样频率是1000Hz,FFT后的频率分辨率df=1000/512=1.953Hz,所以在FFT变换后的谱线中没有哪一条谱线代表50Hz和120Hz的。所以当然找不到频率为50和120处的初始相角为零。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-07-18 
				
				年龄: 48 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-04-05 
				
				年龄: 83 
				
					帖子: 37
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			1,在信号中只有50Hz和120Hz的分量,其它频率的幅值或不存在、或由泄漏造成,但没有具体的意义,它们的相位也没有具体的意义; 
		
		
		
		
		
		
		
	2,可把n=500进行FFT变换,这时df=2,都有具体的谱线代表50Hz和120Hz的分量,也可计算出它们的初始相角; 3,如果还用n=601点来计算,则要用校正法来计算50Hz和120Hz分量的初始相角。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#5 | |
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-07-18 
				
				年龄: 48 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 引用: 
	
 在输入信号中,我给出了几个初位相,然后再用FFT反求出位相.我发现,当输入的正弦信号的系数为正时,由angle算出的位相再加上90才与原来的初位相相同;如果输入正弦信号的系数是负的,由angle算出的位相再-90度,才与初始位相相同。知道这是为什么吗?那么如果我不知道输入信号系数的正负时,我该怎样处理这个问题呢?  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#6 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-04-05 
				
				年龄: 83 
				
					帖子: 37
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
		
  | 
	
		 | 
			 
			相似的主题
		 | 
	||||
| 主题 | 主题作者 | 版面 | 回复 | 最后发表 | 
| [求助]怎么用matlab求质心 | 未注册 | MATLAB论坛 | 3 | 2009-02-12 10:46 | 
| [求助]关于希尔伯特变换处理信号的一些源程序 | lishidang | MATLAB论坛 | 1 | 2008-10-29 21:53 | 
| [求助]小弟请各位帮帮忙 | lilijun0012 | MATLAB论坛 | 1 | 2008-10-28 12:41 | 
| GUI中回调函数中 eval 使用的问题 | handsomelufeng | MATLAB论坛 | 0 | 2008-10-16 20:58 | 
| 数组的比较 | xiaolinxianju | MATLAB论坛 | 1 | 2008-06-19 22:49 |