|
Zero Crossing Counter
t0 U M" ^+ @; \5 X( ^
8 w- x, E8 q' y B y( j o
& g7 U; n3 u( ^# n8 A" w; {; ]/ I. l" q* S3 P
In some DSP applications, it can be very helpful to know how many times your signal has crossed the zero-line (amplitude origin).
9 y" q2 k! @3 u. n
' N" ^! F( |0 g. {* ^* OHow 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)
3 {. [' e9 Z. a& }9 e* z: \0 a1 b) z& f& F. g0 Y5 Y- U4 a
In 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-line6 ?1 D# |8 C! W8 [; f$ w, i
! Q5 E* n. _9 q+ lOne 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. |
评分
-
查看全部评分
|