声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1679|回复: 4

[FFT] 怎样通过频谱求出信号

[复制链接]
发表于 2010-7-1 15:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
t=0:0.001:1;
x=sin(2*pi*30*t)+cos(2*pi*50*t);
plot(x,'b-');
X=fft(x);
dt=0.001;
N=length(x);
f=[0:N-1]/(N*dt);
figure(2)
plot(f,abs(X)*2/N)
% xlim([0 200]);
xlabel('fruquency')
ylabel('Amplitude')
xlim([0 100])
s=abs(X)*2/N;
s1=s.*0.5;%振幅谱减小一半
%w=angle(X);
Y=ifft(s1);
plot(Y)
条件;(振幅谱减小一半,相位谱不变)
这样怎么来求得原信号,我求的好像不对,该怎么做啊?请高手指点一下,谢谢
回复
分享到:

使用道具 举报

发表于 2010-7-1 16:33 | 显示全部楼层

回复 楼主 dzkt 的帖子

用这种还原时域信号是不可行的,傅里叶变换是对信号做的全局变换,即使某个频率的信号只出现在局部,他也会当做全局处理,楼主的意思是不是只是做傅里叶逆变换啊?
发表于 2010-7-1 19:11 | 显示全部楼层
原帖由 dzkt 于 2010-7-1 15:02 发表
t=0:0.001:1;
x=sin(2*pi*30*t)+cos(2*pi*50*t);
plot(x,'b-');
X=fft(x);
dt=0.001;
N=length(x);
f=[0:N-1]/(N*dt);
figure(2)
plot(f,abs(X)*2/N)
% xlim([0 200]);
xlabel('fruquency')
ylabel('Ampl ...条件;(振幅谱减小一半,相位谱不变)
这样怎么来求得原信号,我求的好像不对,该怎么做啊?请高手指点一下,谢谢

LZ的是不是要求出时间信号,条件是振幅谱减小一半,相位谱不变?
如果是这样的要求,对上程序稍做改动为:
t=0:0.001:1;
x=sin(2*pi*30*t)+cos(2*pi*50*t);
plot(x,'b-'); hold on;
X=fft(x);
dt=0.001;
N=length(x);
f=[0:N-1]/(N*dt);
figure(2)
plot(f,abs(X)*2/N,'b');
xlabel('fruquency')
ylabel('Amplitude')
xlim([0 100])
s=abs(X)*2/N;
s1=s.*0.5;%振幅谱减小一半
w=angle(X);
S1=N/2*s1.*exp(j*w);
Y=ifft(S1);
figure(1)
plot(real(Y),'r-')
得到的图如下,可看出信号的振幅减小一半(原始信号是蓝线,红线是幅值减小一半的信号):

[ 本帖最后由 songzy41 于 2010-7-1 19:13 编辑 ]
dz12a.jpg

评分

1

查看全部评分

 楼主| 发表于 2010-7-2 10:11 | 显示全部楼层
谢谢songzy41的解答,非常感谢您的帮助,就是要的这种效果。
发表于 2013-12-10 16:43 | 显示全部楼层
收藏
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-26 08:55 , Processed in 0.097406 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表