|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我这有一个波浪谱,我把它转化成了时间域的信号,然后想再把这个时间域的信号转为波浪谱,为什么回不去啊,程序如下
clear all
g=9.8; % 加速度
h=7; % 有义波高
A=8.1*10^(-3)*g*g; % 参数A
B=3.11/(h*h); % 参数B
w_max=4.5; % 最大频率
w_min=0.2; % 最小频率
w_m1=0.4;
w_m2=0.7;
dw1=(w_m1-w_min)/128; % 频率分为128份
dw2=(w_m2-w_m1)/256; % 频率分为256份
dw3=(w_max-w_m2)/128; % 频率分为128份
wi1=w_min; % 初始频率1
wi2=w_m1; % 初始频率2
wi3=w_m2; % 初始频率3
z_t1=0;
z_t2=0;
z_t3=0;
wspan=w_min:0.01:w_max;
s_span=A*wspan.^(-5).*exp(-B*wspan.^(-4));
subplot(5,1,1);
plot(wspan,s_span)
subplot(5,1,2);
plot(wspan/(2*pi),s_span)
Fs = 16;%采样周期
T = 1/Fs;
N = 2048;
t = (0:N-1)*T;
for i=1:128
s=A*wi1^(-5)*exp(-B*wi1^(-4)); % 每一频率处的波能谱
zta=sqrt(2*s*dw1); % 波幅
z=zta*cos(wi1*t+2*pi*randn);
z_t1=z_t1+z;
wi1=wi1+dw1;
end
for i=1:256
s=A*wi2^(-5)*exp(-B*wi2^(-4)); % 每一频率处的波能谱
zta=sqrt(2*s*dw2); % 波幅
z=zta*cos(wi2*t+2*pi*randn);
z_t2=z_t2+z;
wi2=wi2+dw2;
end
for i=1:128
s=A*wi3^(-5)*exp(-B*wi3^(-4)); % 每一频率处的波能谱
zta=sqrt(2*s*dw3); % 波幅
z=zta*cos(wi3*t+2*pi*randn);
z_t3=z_t3+z;
wi3=wi3+dw1;
end
z_t=z_t1+z_t2+z_t3;
subplot(5,1,3);
plot(t,z_t)
%axis([0,300,-9.5,9.5])
[cor3 lag3] = xcorr(z_t,'unbiased');
subplot(5,1,4);
plot(lag3/Fs,cor3),title('随机信号自相关函数');
Xk3 = fft(cor3)/N/2;
k = (0:N/2-1)*Fs/N; % kmax = (N/2)*Fs/N = Fs/2(Nyquist), Fs/N为频率分辨率
subplot(5,1,5);
plot(k,2*Xk3(1:N/2));xlabel('Frequency(Hz)');ylabel('|Y|');
axis([0,0.8,0,10]) |
|