作者silivia0916 (momo)
看板MATLAB
标题[讨论] FFT与filter问题
时间Sat Nov 19 16:48:43 2011
是说在下不是很熟悉MATLAB,
经过爬文及看书後还是遇到了瓶颈,
想请教一下各位...如果太白目请鞭小力一点>"<
有一笔5000点的数据,取样频率为50Hz,
为了做滤波,想先看FFT的频域图再做设计。
程式码如下:(有点长)
------------------------------------------------
clear all;clc;
load mo.xls;data = mo; %读取档案
load_cell = data(1:4999,2); %取第二行的资料
N = length(load_cell); %资料数量
Fs = 50; %取样频率
Ts = 1/Fs; %取样时间间隔
time = (0:N-1)*Ts; %时域的时间轴刻度
subplot(1,5,1);
plot(time,load_cell);axis square
axis([-inf inf 0 1]);
title('time-domain (all data)');
xlabel('time (s)');ylabel('load cell (N)');
freqstep = Fs/N; %频域解析度
freq = freqstep*(-N/2:N/2-1); %频域的频率轴刻度
power = fft(load_cell);
subplot(1,5,2);
plot(freq,power);axis square
title('frequency-domain (all data)');
xlabel('frequency (Hz)');ylabel('power');
y_test = ifft(power); %再转换回来看会不会一样
subplot(1,5,3);
plot(time,y_test);axis square
axis([-inf inf 0 1]);
title('time-domain (all data-reverse)');
xlabel('time (s)');ylabel('load cell (N)');
[b,a] = butter(5,[],'band'); %设计一个filter
y_new = filter(b,a,load_cell);
subplot(1,5,5);
plot(time,y_new);axis square
axis([-inf inf 0 1]);
------------------------------------------------
目前只写到这里,但发现有几个地方不是很清楚...
1. 频域轴刻度的决定
2. butter中bandpass的频率决定
(因为前面的FFT出图看不出来杂讯频率...而且我觉得他怪怪的...)
麻烦各位帮我看一下,感谢>"<
如果有必要,可以直接用MSN跟我说...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.148.26