我在用matlab求心电信号的功率谱和频谱图fs=100%设定采样频率N=128;n=0:N-1;%进行FFT变换并做频谱图x=load('F:\ZB.txt');y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转
来源:学生作业帮助网 编辑:六六作业网 时间:2024/08/30 09:10:41
我在用matlab求心电信号的功率谱和频谱图fs=100%设定采样频率N=128;n=0:N-1;%进行FFT变换并做频谱图x=load('F:\ZB.txt');y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转
我在用matlab求心电信号的功率谱和频谱图
fs=100%设定采样频率
N=128;
n=0:N-1;
%进行FFT变换并做频谱图
x=load('F:\ZB.txt');
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换
figure(1);
subplot(2,2,1);
plot(f,mag);%做频谱图
axis([0,100,0,50]);
xlabel('频率(Hz)');
ylabel('幅值');
title('心电信号幅频谱图');
grid;
%求功率谱
x=load('F:\ZB.txt');
c=xcorr(x);
p=fft(c,N);
figure(1);
subplot(2,2,2);
plot(f,p);
xlabel('频率(Hz)');
ylabel('功率谱');
title('心电信号功率谱');
grid;
txt中存放的是心电图中R_R的一系列数据 但是出来的结果不对 麻烦看下问题出在哪里
我在用matlab求心电信号的功率谱和频谱图fs=100%设定采样频率N=128;n=0:N-1;%进行FFT变换并做频谱图x=load('F:\ZB.txt');y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转
matlab里面有直接求出功率谱的函数呀~用周期图法或者间接法计算就行.
cx=xcorr(x,'unbiased');
CXk=fft(cx,N);
Pxx=abs(CXk);
index=0:round(N/2-1);
k=index*Fs/nfft;
plot_Pxx=10*log10(Pxx(index+1));
figure(3);
plot(k,plot_Pxx);
这只是计算功率谱的一种方法,不知道对你有没有帮助
或者你可以直接用periodogram函数计算,函数的格式你在matlab的帮助可以看到