plot(p_load(:,1),'-d')
时间: 2024-02-04 08:03:56 浏览: 24
这是一个 MATLAB 代码,它会绘制一个以 p_load(:,1) 为数据的折线图,其中 '-d' 表示绘制出来的线条形状为菱形。如果需要在 MATLAB 中运行这段代码,需要保证 p_load(:,1) 是一个向量或者矩阵的第一列,可以使用命令 "size(p_load)" 查看 p_load 的大小。
相关问题
请解释一下如下代码b=1; % 系统参数b固定 min_a=0; % 参数a最小 div_a=0.01; % 参数a迭代步长 max_a=1; % 参数a最大 M=(max_a-min_a)/div_a+1; % 参数a迭代次数 alp=1.8; snrdb=50; snr=10^(snrdb/10); load EPSI1; sig1=EPSI1(12800+1:12800+1280); % 取第101至110个周期的EP信号 NN=1000; % 重采样率 s1=interp(sig1(1:128*3),NN); N=length(s1); % 随机微分方程数值解的点数 tt=1/NN; % 随机微分方程数值解的时间步长 MM=2; % 独立运行的次数 mm=1; d=zeros(MM,1); a_est=zeros(MM,1); for index=1:MM % v0=randn(N,1); gamma=1; p=alp; v1=(alpha(N,alp,0,gamma,0))'; s1=gamma*sqrt(snr)*s1/std(s1); % 用噪声强度(分散系数为1)和信噪比来确定信号大小 x1=s1+v1; % x1=atan(x1); % x1=abs(x1).^(alp-1).*sign(x1); %---algorithm--- y1=zeros(N,M); xx1=zeros(N/NN,1); yy1=zeros(N/NN,M); c_coe1=zeros(M,1); m=1; for a=min_a:div_a:max_a; y1(1,1)=1; for n=1:N-1 y1(n+1,m)=y1(n,m)+tt*(a*y1(n,m)-b*y1(n,m)^3+x1(n)); end xx1=downsample(x1,NN); yy1(:,m)=downsample(y1(:,m),NN); ss1=downsample(s1,NN); xx1_yy1(m)=(1/length(xx1))*sum(xx1.*(abs(yy1(:,m)).^(p-1).*sign(yy1(:,m)))); % 计算输入输出的对称共变系数c_cor yy1_xx1(m)=(1/length(yy1(:,m)))*sum(yy1(:,m).*(abs(xx1).^(p-1).*sign(xx1))); xx1_xx1(m)=(1/length(xx1))*sum(xx1.*(abs(xx1).^(p-1).*sign(xx1))); yy1_yy1(m)=(1/length(yy1(:,m)))*sum(yy1(:,m).*(abs(yy1(:,m)).^(p-1).*sign(yy1(:,m)))); c_coe1(m)=(xx1_yy1(m)*yy1_xx1(m))/(xx1_xx1(m)*yy1_yy1(m)); % 对称共变系数 m=m+1; end [val1,loc1]=max(c_coe1);% 确定最佳a值a_est、 a_est(mm)=(loc1-1)*div_a+min_a; cc_ss1yy1=xcov(ss1,abs(yy1(:,loc1)).^(p-1).*sign(yy1(:,loc1))); % 了解随机共振系统的延时d,应该a相同时看延时是否相同 [val,loc]=max(cc_ss1yy1); d(mm)=length(ss1)-loc; mm=mm+1; end a_est d dd=mean(d) figure(1) % 观察最佳a值a_est时的输入xx1、输出yy1(:,loc1) subplot(411),plot(ss1) subplot(412),plot(xx1) loc=(a_est(mm-1)-min_a)/div_a+1 % 众数? subplot(413),plot(yy1(:,loc)) a=min_a:div_a:max_a; subplot(414),plot(a,c_coe1,'*')
这段代码实现了一个基于随机微分方程的系统参数估计算法。具体来说,它通过迭代计算不同参数a下的随机微分方程的数值解,然后计算输入信号和输出信号的对称共变系数,从而估计最佳的参数a。同时,它还通过计算输入信号和输出信号的随机共振来确定延时。
具体的实现过程如下:
1. 定义系统参数b、参数a的最小值min_a、最大值max_a和迭代步长div_a。
2. 根据参数a的最小值、最大值和迭代步长计算参数a的迭代次数M。
3. 定义信噪比和信号sig1,并对信号进行重采样。
4. 定义独立运行次数MM和存储结果的数组d和a_est。
5. 对于每次独立运行,计算随机微分方程的数值解,并计算输入信号和输出信号的对称共变系数,从而估计最佳的参数a。
6. 计算输入信号和输出信号的随机共振,从而确定延时。
7. 计算多次独立运行的延时的平均值dd,并输出结果。
8. 绘制输入信号、输出信号和对称共变系数随参数a的变化曲线。
clear %清除内存 load('1797 b007_0.mat') %根据实际需要更改地址、路径 sig=X118_DE_time(1:12000); fs=12000; N=12000; Ts=1/fs; sig=sig(1:N);%设置取样频率fs,取样数N t=0:Ts:(N-1)*Ts;%时间轴 t sig=(sig-mean(sig))/std(sig,1);%对 sig 进行归一化 subplot(211);plot(t,sig);%绘制 sig 波形 xlabel('时间 t/s'); ylabel('振动加速度/V'); nfft=fs/2; % 16384 S=pspectrum(sig,nfft);%对 sig 做功率谱 subplot(212); plot((0:nfft/2 -1)/nfft*fs,S(1:nfft/2));% 绘制功率谱 xlabel('频率 f/Hz'); ylabel('功率谱 P/W') [c,l]=wavedec(sig,3,'db2');%利用 db2 对 sig 进行 3 级小波分解 c3=wrcoef ('a',c ,l,'db2',3); d3=wrcoef('d',c,l,'db2',3); d2 =wrcoef ('d',c,l,'db2',2); d1 =wrcoef('d',c,l,'db2',1);%重构第 1-3 层细节 d1~d3 和第 3 层概貌 c3 figure; subplot(414); plot(t,c3); ylabel('c3');%绘制 c3 subplot(413); plot(t,d3); ylabel('d3');%绘制 d3 subplot(412); plot(t,d2); ylabel('d2');%绘制 d2 subplot(411); plot(t,d1); ylabel('d1');%绘制 d1 y=hilbert(d1); %对 d1 进行 Hilbert 变换,得y ydata=abs(y); %ydata=|y| ydata=ydata-mean(ydata);%对 ydata 去均值(目的是去除幅度较大的直流分量) P=pspectrum(ydata,nfft);%ydata 的功率谱为 P figure; plot((0:nfft/2-1)/nfft*fs,P(1:nfft/2)); xlabel('频率 f/Hz');%绘出 d1 的 Hilbert 包络谱 P=P(1:nfft/2); [M,f1]=max(P); f1=f1*fs/nfft-1 %故障频率 f1为包络谱中幅度最大处的频率 将代码由利用db2进行3级小波分解改为利用db10进行5级小波分解
clear %清除内存
load('1797 b007_0.mat') %根据实际需要更改地址、路径
sig=X118_DE_time(1:12000);
fs=12000;
N=12000;
Ts=1/fs;
sig=sig(1:N);%设置取样频率fs,取样数N
t=0:Ts:(N-1)*Ts;%时间轴
t
sig=(sig-mean(sig))/std(sig,1);%对 sig 进行归一化
subplot(211);
plot(t,sig);%绘制 sig 波形
xlabel('时间 t/s');
ylabel('振动加速度/V');
nfft=fs/2; % 16384
S=pspectrum(sig,nfft);%对 sig 做功率谱
subplot(212);
plot((0:nfft/2 -1)/nfft*fs,S(1:nfft/2));% 绘制功率谱
xlabel('频率 f/Hz');
ylabel('功率谱 P/W')
[c,l]=wavedec(sig,5,'db10');%利用 db10 对 sig 进行 5 级小波分解
c5=wrcoef ('a',c ,l,'db10',5);
d5=wrcoef('d',c,l,'db10',5);
d4 =wrcoef ('d',c,l,'db10',4);
d3 =wrcoef('d',c,l,'db10',3);
d2 =wrcoef ('d',c,l,'db10',2);
d1 =wrcoef('d',c,l,'db10',1);%重构第 1-5 层细节 d1~d5 和第 5 层概貌 c5
figure;
subplot(511); plot(t,sig); ylabel('原始信号');%绘制 sig
subplot(512); plot(t,c5); ylabel('c5');%绘制 c5
subplot(513); plot(t,d5); ylabel('d5');%绘制 d5
subplot(514); plot(t,d4); ylabel('d4');%绘制 d4
subplot(515); plot(t,d3); ylabel('d3');%绘制 d3
y=hilbert(d1); %对 d1 进行 Hilbert 变换,得y
ydata=abs(y); %ydata=|y|
ydata=ydata-mean(ydata);%对 ydata 去均值(目的是去除幅度较大的直流分量)
P=pspectrum(ydata,nfft);%ydata 的功率谱为 P
figure;
plot((0:nfft/2-1)/nfft*fs,P(1:nfft/2));
xlabel('频率 f/Hz');%绘出 d1 的 Hilbert 包络谱
P=P(1:nfft/2);
[M,f1]=max(P);
f1=f1*fs/nfft-1 %故障频率 f1为包络谱中幅度最大处的频率
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)