|
Zero Crossing Counter
) T' `0 z) ~" R9 \' j- P {* n" r2 n7 [$ o* [
5 A- L+ v$ P( `( L/ L0 S5 i) K" X! W2 x. W* j+ _# F
In some DSP applications, it can be very helpful to know how many times your signal has crossed the zero-line (amplitude origin). ! p$ [: {' |; ?3 z4 t
4 ~7 x' K; H0 ZHow 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)) p$ l' z ?, i
; [8 r7 l' p$ Z4 J
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-line- q$ V( ^5 u/ g$ \5 X L: ?
4 O# c( A% \$ [" q# I9 h, QOne 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. |
评分
-
查看全部评分
|