马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我在对医学信号进行频谱分析,采样率为60hz,做fft时取256个信号点,fft(x,N)中的N=36000,想得到的频率分辨率为1/60,且只想观察到0.5到5hz的频谱,请问x轴怎么显示啊???
下面是我的源程序和图,我怎么得到的是0到30hz,且频率分辨率为何是5??
clear all;
close all;
clc;
load ecgdatat.txt
x=ecgdatat;
Fs=360;%原始信号的采样率
l=size(x);%4096个点
%对前4080个点采用几点平均法对原信号进行重采样fs=60
k=6;
s=zeros(680,1);
for i=1:680
s(i)=mean(x((1+(i-1)*k):(1+(i-1)*k+k-1)));
end
fs=60;%重采样后的采样率
%低通滤波海明窗
n=64;%滤波器阶数
wn=15/180;%归一化截至频率1对应(fs/2)处
b1=fir1(n,wn,'low');%默认海明窗
y=filter(b1,1,s);
figure(1);
freqz(b1,1);
figure(2);
subplot(211);
plot(s);
subplot(212);
plot(y);
%频谱分析
N=3600;
py=fft(s(1:256),N);
mag=abs(py)*2/N;
f=(0:length(py)-1)*fs/length(py);
%f=(30:1:300)*(1/60);
figure(5);
plot(f(1:N/2),mag(1:N/2));%关键是plot的x轴不会显示,要求0.5到5hz
grid on;
[ 本帖最后由 eight 于 2008-4-22 17:26 编辑 ] |