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)
是指红线和蓝线不一样吗?
是的,红线是matlab处理结果,蓝线是从LMS导出的频谱 please 发表于 2016-9-28 16:42
是的,红线是matlab处理结果,蓝线是从LMS导出的频谱
按照楼上给的图确实差很多啊这个图是求的什么? 在LMS test.lab中是处理的什么,在matlab中编的程序是算什么的 sujunshou 发表于 2016-10-8 17:03
在LMS test.lab中是处理的什么,在matlab中编的程序是算什么的
LMS中是随机声压信号,计算的是频谱,在MATLAB中想还原LMS的计算结果 图给个标注呗横纵坐标什么的 有没有A记权?
页:
[1]