|
我在simulink中建了一個簡單的二階的SDM9 r: k' I2 J! X5 B, x9 r! v; d/ w
* r. b4 ^: R \
http://www.wretch.cc/album/show.php?i=bleezebub&b=14&f=1513912854&p=0
' P- n! a8 f3 H! q
5 j$ h! \5 B0 c* _輸入頻率是500Hz OSR為32! V; p+ O+ a) e9 Z9 }. C
; ~$ ]9 z3 i4 @+ e( V想請問板上的前輩% p, l# I3 F, a' O
. R2 H7 I& B4 k$ a5 {7 m) T X
%calculate SNR from simulink output
K7 w. e- `7 C$ r, Y- S. sclear;
& h' z5 J; l8 t: Z' Yload simout.mat -ascii;
3 k/ P/ A5 A! r# N" N: y) a; p
! l2 r- S; n9 D a I7 v: _3 cosr=32;
: s7 c! g3 I- j) o% Z' W
( ]3 b, ?7 X3 @- \. da=0;8 I( k# U" |+ d' P0 H8 x: D
for a=1:640013 E" a& S+ \: Z: d. k. A" f
x(1,a)=simout(a,1);# f7 Z5 ?3 ~0 `, O; S* v- ]
end
6 Q0 y% f5 s p: o7 g+ b+ z7 q5 H4 g- ~! U$ \
$ [$ F4 T/ J/ `$ jN=length(x)-1;4 a/ R1 ^( H# ]5 R( P
y=ds_hann(N);, ?8 D9 P" u8 t; s2 @( ~
s=x(2:N+1).*y;
3 Q U8 c/ q8 q9 p" k& {# psigfft=fft(s)./(N/4);: W5 k" g6 H( O8 ]
snr_simulink=calculateSNR(sigfft(1:ceil(N/(2*osr))),500,1)- k$ T- {1 X* d. O5 X
! L* C# ?! g( L2 A
以上這段計算SNR的code有錯嗎8 @9 ~! C: U& O+ U6 [ N7 O# i9 n
! c( C9 B( E4 {) ?2 v
因為在我改變輸入頻率或OSR的時候
, J$ w( _. ~2 D& E2 T! n
* r# }6 U0 ~+ c; r有時候會出現
7 c6 P) M2 O1 e* D" Z8 \/ i; I
( `: B/ ^9 Q& h2 s- t1 X. Tsnr_simulink = -Inf) t. n2 U) q3 E# {
0 I9 G. N( J- `3 h請問這是甚麼情況呢
9 I& _/ N! Z( f/ _+ d8 k, s- S( l2 y/ r9 S. \4 k. X
想請高手指點 |
|