*Started 1st February 2021*

See JSN-SR04T, HC-SR04, Ringing

I have a FeelTech FY3200S signal generator and an Owon SDS7102V 'scope, both are pieces of low cost test gear. It is possible to control the signal generator via its USB input and to read the screen data from the 'scope using its Ethernet connection. In combination this allows automatic measuring of things like frequency response.

I set out to measure the variation in impedance of ultrasonic transducers with frequency. The idea is that a Python program runs on my PC and commands the signal generator to produce various frequencies; for each one the result on the 'scope is read and saved to disc.

I then have another Python program which analyses the data and produces graphs. Both programs are available from the downloads links below.

The transducer is connected in series with a 1 KΩ resistor, the signal generator is connected across both. Channel 1 (red) on the 'scope measures the signal across the resistor and channel 2 (yellow) the signal generator output. The technique is described in [2] - note in that reference the positions of the resistor and the device under test are interchanged meaning the equations are slightly different.

The software analysing the data has to fit a sinusoidal signal, producing amplitude and phase. The obvious approach is to do a Fourier transform of all the samples. That's how I set off, later I realised it was better to truncate the number of samples to be a multiple of the frequency. Knowing the frequency makes things easier. I found that an approach [3][4][5][6] is to use trigonometrical identities to make what is being fitted linear, and then multivariate linear regression can be used; this how the code below works. There is also a method like least squares for a line see [7].

Graphics below are .svg and can be scaled up. The HCSR04 data shows how things are supposed to be, the transmit transducer minimum impedance frequency is around the maximum impedance frequency of the receive transducer [8].

Transmit transducer taken from an HCSR04

Receive transducer taken from an HCSR04

Commonly the Butterworth-van Dyke circuit model (left) is used for ultrasonic transducers, the same model is used for quartz crystal resonators, so the same analysis holds. At low frequencies the inductor is effectively a short circuit resulting in a capacitive impedance (phase shift less than zero). At high frequencies the inductor is effectively an open circuit again resulting in a capacitive impedance. Between the two the impedance is inductive (phase shift greater than zero). As the frequency increases there is a point of series resonance (slightly past) where the reactance of C and L cancel resulting in minimum impedance. After that there is a point of parallel resonance close to one of maximum impedance. At resonance the impedance is purely resistive and the phase shift is zero.

It is possible to fit the impedance curves using the Scipy general non-linear curve fitting library and determine the model parameters for transducers (code below). For the HCSR04 transmitter R=192 Ω L=70 mH C=210 pF Cp=1464 pF and for the receiver R=252 Ω L=71 mH C=231 pF Cp=1525 pF. I have done this in a simple way only fitting the magnitude of the impedance, even so results for phase are not bad.

[10] covers the contents of this page in a lot more detail from the view point of a researcher in the field.

Comparison of measurements and model for a transmit transducer taken from an HCSR04.

Data for a Murata MA40S4S (transmitter) obtained from a reputable source.

Again it is possible to fit the data and produce values for the model parameters and compare the model predictions with the data.

The Murata application note [9] for the MA40S4S/R shows the variation of impedance with frequency and gives parameters for the model. The measured impedance is similar to what I found, however the model parameters are different, as a result the Murata model ones are not in good agreement with their own data.

The values I found are (with Murata application note in brackets) R=208(340) Ω, C= 293(300) pF, L= 51(48) mH, Cp= 1876(2150) pF.

The following graphic compares my data with the results of the Murata model.

All that fits the theory, but the following data does not. The results for the Murata MA40S3S/R show the receive and transmit transducer impedances are similar, out of line with the idea the receive parallel resonance frequency matches the transmit series resonance frequency. References to MA40S3S/R are limited and I have not found a datasheet for it.

Murata MA40S3S (transmitter)

Murata MA40S3R (receiver)

Transducer supplied with a JSN-SR04T

The ultrasonic speaker found in devices for scaring pests like mice.

- Python code to generate data (1st February 2021)
- Python code to analyse data and generate graphs (7th February 2021)
- Python code to analyse data and fit model parameters (8th February 2021)

References:

- Fetching Data from Owon SDS7102V to PC Rei Labs
- Oscilloscope Measurement Lab: Measuring Impedance and Capacitance Tektronix
- Sine regression phase shift with known amplitude and period from data points
- How do I get the amplitude and phase for sine wave from lm() summary?
- Phase modelling while fitting sine wave to cyclic data
- Sine regression phase shift with known amplitude and period from data points
- Regression of Sinusoids Jean Jacquelin
- Difference in ultrasonic transducers and recivers? Tracy Allen
- MA40S4S/MA40S4R application note Murata
- Air Coupled Ultrasonic Transducers for Industrial Applications Alexander Unger Ph D thesis 2019