|
我在simulink中建了一個簡單的二階的SDM
, @2 Q2 ^/ B& n5 K* R3 ~+ Q: Y5 m
http://www.wretch.cc/album/show.php?i=bleezebub&b=14&f=1513912854&p=0, W7 g/ g' y2 F# o7 n
* |+ R9 e& q+ n$ f+ r* I! ~
輸入頻率是500Hz OSR為32; d8 V7 ^) D4 P' y$ `9 }1 E, U
' t1 @& i, j4 Q, _# x. K想請問板上的前輩9 B; w# [5 K2 |! I2 e; |* B6 }
6 L3 T% R4 F y8 L" D. J( V- z6 }%calculate SNR from simulink output# }+ }; Y# T- D, J! M6 Y9 k9 e
clear;" I! m# Y; {7 ?# C4 ?+ O! q
load simout.mat -ascii;
" V+ D V4 x X) j5 H: F Y' j' X2 B" {
3 z# n: e! U" g1 Posr=32;
9 s& X- Y1 B& o& Q, N r- H
' \' L/ g. | {a=0;$ y# \. _& F* r5 q4 n
for a=1:64001
9 c T/ a* o; f4 w9 a x(1,a)=simout(a,1);
& W: f. z! U+ s( b7 Xend
) R3 {2 T" R$ m* Y2 `' G5 G9 g/ j( B8 G$ c4 Z9 u* u! o
9 }. q9 ]" m! u2 ]N=length(x)-1;
) k! M) p/ A8 M7 C1 X# Ty=ds_hann(N);
1 v$ r; w) S7 s) A7 As=x(2:N+1).*y;
! Y+ ^, z$ ^ V( P+ Zsigfft=fft(s)./(N/4);% b, Z. `$ l8 p
snr_simulink=calculateSNR(sigfft(1:ceil(N/(2*osr))),500,1); x) E- [. K7 z
' ?$ J& c$ E4 N- h E以上這段計算SNR的code有錯嗎
4 j: n0 T! [5 B. s) H* L& e8 O4 S6 D. M9 ~! i
因為在我改變輸入頻率或OSR的時候
# p( W2 |* D% \: C
+ p5 m' c2 w. f有時候會出現
9 s# b: E- Z- Z
3 B1 | o% Q- S L; V; Y" ^! A6 Rsnr_simulink = -Inf
8 v! Q& h. T' }6 D
5 }- p) Y% I7 U請問這是甚麼情況呢
# y( l) E5 T& Z# K& h, d% q/ d' q! J0 Q D8 x8 l( _! q
想請高手指點 |
|