登录论坛

查看完整版本 : 【求助】怎样去除FFT的频率折叠问题


hglf117
2008-03-31, 15:38
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的信号不想采进来的,怎样能够去掉?

xyz20070912
2008-03-31, 20:26
应该是做个频域滤波就行了吧,但是可能信号会变形。
不过还是没太明白你的问题,你是指不要你的那个f2=750那个么?

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