%峰值法
clear
close all
format long
fprintf('Samples In Test :\n');
path_base = sprintf('test');
dir_sample = dir(path_base);
[nsample,dummy] = size(dir_sample);
nsample = nsample - 2;
for i =1:nsample
fprintf(strcat(num2str(i),': '));
fprintf(dir_sample(i+2).name);
fprintf('\n');
end
SampleNum = input('Please select the sample number:\n');
path_sample = strcat(path_base,'\',dir_sample(SampleNum+2).name); %strcat:连接字符串的函数
name_sample = dir_sample(SampleNum+2).name;
%提取测试数据
data(:,1)=load(path_sample);
%所选的时域样本内数据个数
ntdata = length(data(:,1));
Cvtdata= zeros(ntdata,1);
%【1】正常信号处理:
Cvtdata = data;
%【1】正常信号处理end;
% %【2】Narada信号转换:
% for j=1:length(data(:,1))
% data(j,1) = data(j,1) * 5.0 / 65535.0; %Convert the data 转化为电压信号
% end
%
% %增益系数
% gain = 10;
% for j=1:ntdata
% Cvtdata(j,1)= data(j,1)/(gain*200/1000);
% end
% Avgdata = zeros(1,1);
% Avgdata = mean( Cvtdata(:,1) ); %求数据平均值
% %【2】Narada信号转换end;
% 峰值法识别
f = 800; %采样频率
fs = f;
fc = 0.02; %高通截断频率
% dummyV = IdealHighPass (DSet, fs, fc) ; %滤波
% nDSet= dummyV(1:size(DSet,1));
t = 0:1/f:(ntdata-1)/f;
%%% FFT 快速傅里叶变换 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [Ns,dummy]= size(nDSet(:,1)); %Sample size 样本大小
mag=abs(fft(Cvtdata,ntdata)); %Magnitude
mag(1:5,1)= mag(1:5,1)/20;
freqdomain= fs*(0:ntdata-1)'/ntdata; % Frequency series
figure;
plot(t,Cvtdata);
xlabel(['Time (s)']);
ylabel(['Accel (g)']);
grid on
% annotation('textbox',[0.2,0.8,0.9,0.2],'string',strcat( Narada_name,' Time: ',dataFolder),'EdgeColor','none','FontSize',16);
figure;
hold on
title('fft-data');
plot(freqdomain(1:ntdata/2,1),mag(1:ntdata/2,1));
xlabel('Frequency (Hz)','FontSize',14);
% ylabel('Magnitude','FontSize',14);
ylabel('Magnitude','FontSize',14);
hold off
%%%Obtain psd estimate using welch's method
if 1==1
figure;
% hold on
title('pwelch-data');
[psd_c,f_c]=pwelch(Cvtdata,ntdata,0,[],fs,'onesided'); %pls set the stablized time of zeropadding as 10s.
pwelch(Cvtdata,ntdata,0,[],fs,'onesided');
figure;
loglog(f_c,psd_c);
xlabel('Frequency (Hz)');
ylabel('Power Spectrum Density ');
% hold off
end