|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 please 于 2016-9-27 20:06 编辑
我从LMS中导出时域数据,在MATLAB中处理后与LMS中的结果不一样,请各位大神看看我哪出错了?
clear;
clc;
clf;
data_in=load('D:\MATLAB701\work\data.txt');
data_ref=load('D:\MATLAB701\work\data1.txt');
t=data_in([2:8193],1);
data=data_in([2:8193],2);
%data=5*sin(2*pi*50*t)+4;
pzh=sum(data)/size(data,1);
data=data-pzh;
figure(1)
%plot(data+pzh);
hold on
plot(data,'r');
hold off
fs=1/(t(2)-t(1));
n=8192;
w=hanning(n);
%w=boxcar(n);
y=fft(data([1:n]).*w,n);
y(1)=y(1)/2;
fft_data=2*abs(y((1:n/2+1)))/sum(w);
figure(2)
plot((0:n/2)*fs/n,fft_data,'r');
set(gca, 'XLim',[0 100]);
hold on
plot((0:n/2)*fs/n,data_ref((1:n/2+1),2),'b');
hold off
Pxx=2*abs(y(1:n/2+1)).^2/fs/norm(w)^2;
Pxx(1)=abs(y(1))^2/fs/norm(w)^2;
figure(3)
plot((0:n/2)*fs/n,Pxx);
set(gca, 'XLim',[0 100]);
Pxx_correction=2*abs(y(1:n/2+1)).^2/fs/norm(w)^2 *norm(w)^2/sum(w)^2*fs;
Pxx_correction(1)=abs(y(1)).^2/fs/norm(w)^2 *norm(w)^2/sum(w)^2*fs;
figure(4)
plot((0:n/2)*fs/n,Pxx_correction);
set(gca, 'XLim',[0 100]);
P=sum(Pxx(16:501)*fs/n)
rms=sqrt(P) |
|