📄 rayleigh.m
字号:
clear all;
close all;
fd = 5;
%需要2″的时长,则 N/(2*fd)>20
N = 2^( floor(log2(40*fd))+1 );
%根据频谱采样得到的时间间隔为1/fd, 需要1″1000个样点,则需要时间间隔为1/1000s,因此需要插入点为
f_sample=floor(1000/fd)+1;
%产生高斯随机变量
x= randn(1,N/2)+j*randn(1,N/2);
y= randn(1,N/2)+j*randn(1,N/2);
%频率滤波
inx = [conj(x(end:-1:1)) x];
iny = [conj(y(end:-1:1)) y];
df = 2*(fd-0.01)/(N-1);
f = -(fd-0.01):df:(fd-0.01);
fdfilter = 1./sqrt(sqrt(1-(f/fd).^2));%.*exp(-j*2*pi*f);
%fdfilter = fftshift(fdfilter);
lx = inx.*(fdfilter);
ly = iny.*(fdfilter);
zx = [lx(N/2+1:end) zeros(1,f_sample*(N-1)) lx(1:N/2) ];
zy = [ly(N/2+1:end) zeros(1,f_sample*(N-1)) ly(1:N/2) ];;
%zx=lx;
%zy=ly;
cx = real(ifft((zx)));
cy = real(ifft((zy)));
r = sqrt(cx.^2+cy.^2);
%功率归一化
r2 = mean(r.^2);
r = r./sqrt(r2);
figure(1);
plot(r);
axis([1 2000 0 max(r(1:2000))])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -