please 发表于 2016-9-27 20:04

[请教]LMS test.lab与matlab处理结果不一致

本帖最后由 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(,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)

mutouxia 发表于 2016-11-28 15:22

请问楼主怎么从LMS中导出时域数据??

minoz 发表于 2016-11-29 08:42

这个还没解决啊

sunsuky 发表于 2016-12-15 20:18

LMS数据 加了窗函数吗?

Accompany 发表于 2016-12-22 09:01

楼主解决了吗是那红线对不上吗

大航海家 发表于 2016-12-27 17:04

mutouxia 发表于 2016-11-28 15:22
请问楼主怎么从LMS中导出时域数据??

同问,怎么从LMS里导入导出数据??

失心控 发表于 2016-12-29 08:53

大航海家 发表于 2016-12-27 17:04
同问,怎么从LMS里导入导出数据??

同求!!!

大航海家 发表于 2017-1-10 08:55

失心控 发表于 2016-12-29 08:53
同求!!!

已经找到方法了,只不过只能导出数值点,然后这个些数值点也能重新重新导入lms形成曲线

失心控 发表于 2017-1-11 09:16

大航海家 发表于 2017-1-10 08:55
已经找到方法了,只不过只能导出数值点,然后这个些数值点也能重新重新导入lms形成曲线

现在结果能对上了

经典七道 发表于 2017-5-19 15:57

请问楼主研究过如何在Matlab中计算声信号的自功率谱和互功率谱?我的计算结果和LMS中的不一致!
页: [1]
查看完整版本: [请教]LMS test.lab与matlab处理结果不一致