|
我在simulink中建了一個簡單的二階的SDM
; t2 w$ S, O5 n* c6 q+ y( y7 W4 b4 f" c
http://www.wretch.cc/album/show.php?i=bleezebub&b=14&f=1513912854&p=0
5 a. \& {, j4 X
( h5 c4 T6 \8 ]. {! R4 m輸入頻率是500Hz OSR為32/ W" Y" J6 |8 p
& J4 ?/ k/ d8 k
想請問板上的前輩& t2 N8 ~6 ?+ [2 i
1 @3 i3 x3 U9 D' h%calculate SNR from simulink output
7 k6 {( h* C4 S1 q! kclear;
# k. Z4 ^4 W: g, ~load simout.mat -ascii;1 M+ X1 `0 x, Q% A. g
9 ?, J3 j; O1 y) [; ^osr=32;
& Z7 r" ^% y, r( q" S( l3 G8 |0 R! c! h. V
a=0;
' {6 b- h& F; W+ o7 _6 n Wfor a=1:64001
! P2 N$ ~1 Y1 c& X" A$ M0 b x(1,a)=simout(a,1);
* ~; C1 f4 Q/ Q0 f" [4 P& Wend& D: l! \, Y; `" R9 e
; c7 K8 o9 d9 [$ x
# A+ {* D9 N( X7 Q
N=length(x)-1;
6 [ I( e& P/ \8 vy=ds_hann(N);( }/ D9 z: t2 i5 G
s=x(2:N+1).*y;
2 i" p- z2 r. R& [, c: _- V+ d/ J. [sigfft=fft(s)./(N/4);
% N3 I5 P, X, Z% Isnr_simulink=calculateSNR(sigfft(1:ceil(N/(2*osr))),500,1)1 R6 E( H$ \4 P1 Z+ d
9 G& W% y7 h3 N* s以上這段計算SNR的code有錯嗎2 Y( F- [! s2 F7 w" t
4 U" x( G0 Z( j因為在我改變輸入頻率或OSR的時候: j5 W# F( e, U5 v2 X# _
) f6 s0 E0 D' p6 ~+ o有時候會出現
8 V9 L6 F0 E3 a& T
" b! x' e1 v! N& }& X* wsnr_simulink = -Inf! d$ r" o+ N1 F0 X; x
4 ~4 O1 `2 U( f' `1 P# s5 E; w6 @請問這是甚麼情況呢
4 F6 S2 K' {- _$ Z8 y8 M4 Y2 J3 {3 \; `# g: K* I" @
想請高手指點 |
|