Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-03-31, 15:38   #1
hglf117
初级会员
 
注册日期: 2008-03-31
年龄: 44
帖子: 1
声望力: 0
hglf117 正向着好的方向发展
默认 【求助】怎样去除FFT的频率折叠问题

clear ;
clc ;
f0 = 600;%初始采样频率为600Hz
df = 200;
f1 = 100; %信号频率100Hz
f2 = 750;%信号频率750 Hz
k = 5;
for i = 1:k
fs = f0 + (i-1)*df;
dt = 1/fs;
t = 0:dt:1024*dt;
x1 = sin(2*pi*f1*t);
x2 = 2*sin(2*pi*f2*t);
X = x1' + x2';
Y = fft(X);
y = abs(Y(1:1024));

subplot(k,1,i);
plot(y);
ticks = 0:1024*100/fs:1024;
label = 0:100:fs;
axis([1,1024,0,1000]);
set(gca,'xtick',ticks);
set(gca,'xticklabel',label);
grid on;
end

其中750Hz的信号不想采进来的,怎样能够去掉?
hglf117 当前离线   回复时引用此帖
旧 2008-03-31, 20:26   #2
xyz20070912
普通会员
 
注册日期: 2008-02-26
年龄: 41
帖子: 71
声望力: 24
xyz20070912 即将成为的新星xyz20070912 即将成为的新星xyz20070912 即将成为的新星
默认 是指频域滤波么?

应该是做个频域滤波就行了吧,但是可能信号会变形。
不过还是没太明白你的问题,你是指不要你的那个f2=750那个么?
xyz20070912 当前离线   回复时引用此帖
旧 2008-04-07, 12:09   #3
songzy41
普通会员
 
注册日期: 2008-04-05
年龄: 83
帖子: 37
声望力: 18
songzy41 正向着好的方向发展
默认

如果光是2个频率组成的信号,要把750Hz折叠过来的部分消除掉应该还是可以做到的。楼主用了5个采样频率,从600增加到1400。但不管哪一个采样频率,750Hz折叠过来部分反映在abs(fs/2-(750-fs/2))=abs(fs-750)这个频率上。所以对5个采样频率分别反映在150,50,250,450和650hz上。要消除750Hz折叠过来的影响,可以对750Hz折叠过来的频率作疽适应滤波,能滤除这干扰。
songzy41 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 14:29


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.