【问题标题】:how to transform frequency domain into time domain如何将频域转换为时域
【发布时间】:2012-12-11 17:30:59
【问题描述】:

我创建了 3 个三个不同频率的信号并过滤掉我不想要的信号。但是当我在matlab中使用ifft时,它显示了一个错误的图。如何将我的频域频谱转换回我的3秒时域图?下面我的代码如下:

clc
clear all
Fs = 8192;
T = 1/Fs;                                             
%create tones with different frequency
t=0:T:1;
t2=1:T:2;
t3=2:T:3;

y1 = sin(2*pi*220*t); 
y2 = sin(2*pi*300*t2);
y3 = sin(2*pi*440*t3);                          

at=y1+y2+y3;


figure;
plot(t,y1,t2,y2,t3,y3),title('Tones with noise');

[b,a]=butter(2,[2*290/Fs,2*350/Fs],'stop');
e=filter(b,a,at);
et=(ifft(abs(e)));
figure,
plot(et)

【问题讨论】:

  • 你在做abs(ffs(..时会清除相位信息
  • 嗯...我不明白你的意思
  • 我看到你编辑了问题并把它拿出来......

标签: matlab time fft ifft time-frequency


【解决方案1】:

就像现在一样,et 在频域中,因为 fft。你不需要fft。只需plot(e),您将获得时域滤波波形。哟可以在频率检查过滤器性能。不过,fft 的域,只是

plot(abs(fftshift(fft(fftshift(e)))));
xlim([4000 5000])

编辑:

您写在问题上的代码存在以下错误:at 中只有 1 秒的信息(或 8192 个元素)。如果你plot(at) 你会看到频率的总和,但它们都是happen 在同一时间。这是修复它的方法:

clear all
Fs = 8192; % or multiply by 3 if needed
T = 1/Fs;                                             
%create tones with different frequency
t=0:T:3;

y1 = sin(2*pi*220*t).*(t<1); 
y2 = sin(2*pi*300*t).*(t<2 & t>=1);
y3 = sin(2*pi*440*t).*(t>=2);                          

at=y1+y2+y3;

[b,a]=butter(2,[2*290/Fs,2*350/Fs],'stop');
e=filter(b,a,at);
figure,
plot(t,e)

dt=t(2)-t(1);
N=length(at);
df=1/(N*dt);        % the frequency resolution (df=1/max_T)
if mod(N,2)==0
    f_vector= df*((1:N)-1-N/2);     % frequency vector for EVEN length vectors: f =[-f_max,-f_max+df,...,0,...,f_max-df]
else
    f_vector= df*((1:N)-0.5-N/2);   % frequency vector for ODD length vectors f =[-f_max,-f_max+fw,...,0,...,f_max]
end
freq_vec=f_vector;
fft_vec=fftshift(fft(e));

plot(freq_vec,abs(fft_vec))
xlim([0 1000])

【讨论】:

  • 但是如何回到我之前创建的从 0 秒到 3 秒的时域。我的问题是过滤 300Hz..so..我想在时域中显示没有 300Hz 的信号..你知道怎么做吗?
  • 如果我想完全过滤我的 300 HZ?有可能吗?
  • 是的...你帮了我很多..^^ reali 非常感谢你。任何地方,如何设计可以完全过滤 300 Hz 的滤波器?
  • 这是什么意思 tis 代码 "y1 = sin(2*pi*220*t).*(t
  • 如果您只是将过滤器的下限从 290 降低到 250,然后运行代码,您将消除几乎所有 300 Hz 的贡献。在优化过滤器之前,您基本上可以使用限制(290 和 350 Hz)...
猜你喜欢
  • 1970-01-01
  • 2020-10-11
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多