|
感觉你的原始信号的生成有点问题,注意复数计算和for循环中i,j的使用,i,j当作复数单位是可以写成1i,1j, clear all* q! _& E7 C9 Y5 C clc& O/ |; I) h0 g6 H$ e$ U; a9 J n=0.0048;. J" R6 t G& R X1 A Gxn0=262144;8 h; ~) N9 {* w4 l$ F T B- q6 V/ k0 n N=5200;' B: Z. u( t; Z- i- d ll=0.04; for k=1:N/2# z% C- ^4 @( @$ ?$ C8 {6 _! { nk=k*n; Gx(k)=Gxn0*(nk/0.1)^(-2); Xk(k)=sqrt(N*Gx(k)/2/ll); end R=2*pi*rand(1,N/2); for k=1:N/2. P7 H2 y( Z0 p# Q# Y3 Z Xkf(k)=Xk(k)*exp(1i*R(k));8 F' o+ F; }$ N6 g. @- p) z Xkf(N-k)=Xk(k)*exp(-1i*R(k));$ d1 \3 o' \) [4 |0 I/ M- ` end Xkf(N/2)=0;6 a) i) L- M1 A* N7 o: r for j=1:N k=(1:1:N-1);5 C& [% J$ t/ c! }, D1 W8 V, W bb=exp(1i*2*pi*k*(j-1)/N); cc=Xkf.*bb; aa=sum(cc);0 q$ k7 y* [* I, |' g Xm(j)=abs(aa/N); %%此处修改了!%%% end4 E% b5 _0 N" k/ C2 W" {" a, h t=(1:N)*ll;' `, h: U ?/ v/ S& A figure(1)$ t- T" b* \+ \% d5 d" q, _3 i plot(t,Xm) L=length(Xm);) X' Z+ T# g8 n, ^, X nfft=2^nextpow2(round(length(Xm)/4)); window=chebwin(nfft); overlap=round(length(Xm)/8);1 }8 r i& F9 |8 p9 t ns=ceil(N/L);7 n* V% }. b) O* l [pxx,f] = pwelch(Xm,window,overlap,nfft,ns,'oneside');2 P2 o1 H8 F$ o* ]8 Q figure(2) plot(log10(f),log10(pxx)) |
| 你画的图就默认把虚部去掉了,如果单纯想把虚部去掉,real(xmm)即可,但是不一定合理,是不是取模更合适,abs(xmm) |
/1
关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )
GMT+8, 2025-11-23 16:01 , Processed in 0.171875 second(s), 28 queries , Gzip On.
地址:深圳市南山区科技生态园2栋A座805 电话:19926409050