|
我在simulink中建了一個簡單的二階的SDM3 q+ E3 [! ~# ^9 D
- E: J1 Z/ Q5 v& t7 Ahttp://www.wretch.cc/album/show.php?i=bleezebub&b=14&f=1513912854&p=0
! n$ ~# n; Z1 g& |
( ]0 }( [' T% B8 \) i9 u( ?輸入頻率是500Hz OSR為32
5 c$ [" ~$ [8 g& `& |7 S
6 R9 h) {; r7 h6 ?$ m想請問板上的前輩
3 K, O o# R; l# p! h6 M$ R& W3 o) C$ B4 E5 ~7 E& d* U7 p( A
%calculate SNR from simulink output6 N+ M: a5 v3 T& U. x
clear;
# U- `& u* ]0 E$ H) U% Qload simout.mat -ascii;' N5 i9 H; F7 A0 |
) q: q0 f) w& p/ G. t9 ~
osr=32;
$ v$ \* Y9 O7 {: u0 e) s3 o9 V
' V# a1 Z6 t# I( J5 Xa=0;
' _/ w1 D/ i& k+ F0 R# \, v2 ffor a=1:64001
! V9 U, l6 @& z8 P( h+ v5 N x(1,a)=simout(a,1);
8 z! x7 A# n1 j2 R: E8 n8 `7 send9 ~; X! `4 [: h+ p. E
3 ~! p# J9 p' G6 d) |! h" ]9 {
/ P q5 s! C+ _0 F
N=length(x)-1;
1 k6 c, x0 N) wy=ds_hann(N);
7 F" i/ z$ Q. T: T4 e7 o6 os=x(2:N+1).*y;& L+ }+ a* q$ _) y/ M" E+ c
sigfft=fft(s)./(N/4);- s& h5 a# G. V) n- X3 t
snr_simulink=calculateSNR(sigfft(1:ceil(N/(2*osr))),500,1)
/ l& \1 r9 ]) Y0 j3 } ^3 L4 ~# d( }& ]5 o1 ^+ N
以上這段計算SNR的code有錯嗎
- h+ N4 O( U4 l5 F v# D! ?' N
3 l2 G6 k( T( ]4 b. x& M因為在我改變輸入頻率或OSR的時候; k4 ], i4 q( f: Y, ?8 c
$ W2 o5 Q* J$ d有時候會出現
1 Y8 ~4 [' q+ X- G- U2 L Z4 M" f! _. U9 K! b) V. g$ `. ]% K
snr_simulink = -Inf; c- J; D4 R) ?3 Q4 d1 b9 q
( ?: x' x, g. p4 I! j4 F請問這是甚麼情況呢
8 G3 M2 I" s; U( p4 N0 a; s/ v. K! L, Y \# P, d
想請高手指點 |
|