声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1212|回复: 0

[综合讨论] 求助matlab谱分析方法,等待大虾!

[复制链接]
发表于 2011-11-5 21:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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])
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 04:29 , Processed in 0.064936 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表