|
Zero Crossing Counter5 [$ U0 F2 e1 {- g" _" T" v
4 U: c: F* v: r% I6 Y3 D 9 c! [% ~6 p1 X7 p8 |9 r, ?
& H& @ h( o: ]5 ]9 A5 J
In some DSP applications, it can be very helpful to know how many times your signal has crossed the zero-line (amplitude origin).
" F1 [- [+ t( J) v7 j$ ?6 F N" L
How is this helpful? Well, zero-crossings can tell you very quickly if your signal is composed of high frequency content or not. Let's say your sample rate is 50kHz and over a small window of 1,000 samples there are 500 zero-crossings. That would mean that every two samples crosses the zero-line (i.e. 12.5kHz)
! @8 z8 X6 U6 O. D& R, T! m
+ e' Y) U* [- Y8 GIn speech processing, the zero-crossing counts can help distinguish between voiced and un-voiced speech. Un-voiced sounds are very noise-like ('Shh' and 'Sss' for example). In addition, zero-crossings could also be used to determine if your signal has a DC offset. If you signal is 'muted' and you are not seeing alot of zero-crossings might mean that your signal is offset from the zero-line
4 L) ~' f1 a" v9 X+ E: n7 T' T3 O3 ]1 i1 ?* ^) F) B$ u
One nice thing about the matlab code below is that it is implemented in a very DSP-friendly way. It ports very easily into C-Code and does minimizes the amount of conditional statements for faster processing time. |
评分
-
查看全部评分
|