please 发表于 2016-9-28 13:19

LMS test.lab与matlab处理结果不一致

本帖最后由 please 于 2016-9-28 13:22 编辑

请教各位,我从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(,1);
data=data_in(,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().*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',);
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',);

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',);

P=sum(Pxx(16:501)*fs/n)
rms=sqrt(P)

william 发表于 2016-9-28 13:49

是指红线和蓝线不一样吗?

please 发表于 2016-9-28 16:42

是的,红线是matlab处理结果,蓝线是从LMS导出的频谱

jiangwj 发表于 2016-9-29 08:45

please 发表于 2016-9-28 16:42
是的,红线是matlab处理结果,蓝线是从LMS导出的频谱

按照楼上给的图确实差很多啊这个图是求的什么?

sujunshou 发表于 2016-10-8 17:03

在LMS test.lab中是处理的什么,在matlab中编的程序是算什么的

please 发表于 2016-10-8 20:18

sujunshou 发表于 2016-10-8 17:03
在LMS test.lab中是处理的什么,在matlab中编的程序是算什么的

LMS中是随机声压信号,计算的是频谱,在MATLAB中想还原LMS的计算结果

Edinburgh 发表于 2016-10-9 08:50

图给个标注呗横纵坐标什么的

z527883588 发表于 2016-12-4 00:26

有没有A记权?
页: [1]
查看完整版本: LMS test.lab与matlab处理结果不一致