Need a low dropout rectifier/filter - Page 1
Forum section: electronics / projects

author: joblessalex
author_rank: Contributor
timestamp: September 04, 2013, 01:35:28 am
content: Hello again to the lovely people of the forums! I have a maybe simple, maybe not question. I'm building a system for sending binary data using sound. 1khz carrier turned on and off at 50hz or so for the actual 1s and 0s. I need to know how to make either a filter, or a rectifier that can turn 1khz into a high value, and when it's done, can drop off in less than half a cycle of 50hz. 1 high cycle = 11111111 on the output, leaving room for error correction, so it doesn't matter if the value is 11100000, it still is a 0 on my decoder. Likewise, 00011111 is still a 1. Is there anything I can build to filter just 1khz, but leave the on off pulses intact? Thank you to all the wonderful engineers out there who take their time to help the ones, it really keeps us going!

author: David_AVD
author_rank: Super Contributor
timestamp: September 04, 2013, 02:43:49 am
content: So what happens when the data contains lots of ones or zeros? How will you detect the byte boundaries?

author: w2aew
author_rank: Super Contributor
timestamp: September 04, 2013, 02:54:42 am
content: Quote from: joblessalex on September 04, 2013, 01:35:28 amOne very common way that this used to be done, and would still likely look well would be to use a PLL based tone detector like the LM567 (http://www.ti.com/product/lm567). You'll have to play with the loop filter time constant and lock range to see if you can get the detect and release time that is fast enough for your application. Of course, you'll also need some form of clock recovery or synchronous sampling (line?) to detect strings of 1's and 0's. Or maybe consider a self clocking encoding like Manchester.

author: joblessalex
author_rank: Contributor
timestamp: September 04, 2013, 03:03:31 am
content: Quote from: David_AVD on September 04, 2013, 02:43:49 amThe data sent for example will be 0000101. The transmitter will put out 1khz which will turn on and off at about 50hz. It will then go over a radio and be received through and audio port to an arduino. It will detect the code as something like 1100000 (0) 0000100 (0) 0100001(0) 1100001(0) 0001111(1) 1100000(0) 0001111(1) . The receiving end outputs to a program which basically decides if there are more zeroes or ones and adds the bit to the decoder. I need a filter that will keep the 1khz at a 0, and allow 50hz through. What I'm not sure on is how to make a tight low pass filter to do that without distorting or losing power on the 50hz end.

author: David_AVD
author_rank: Super Contributor
timestamp: September 04, 2013, 03:08:34 am
content: Maybe it's the way you've explained it, but I don't see that working.

author: joblessalex
author_rank: Contributor
timestamp: September 04, 2013, 03:26:25 am
content: Quote from: David_AVD on September 04, 2013, 03:08:34 amI am new to this, could you explain why not? I know if I can get it to decode through all of this, I can easily make a program to decode the binary I define on the other end. It's getting it through the system that's the hard part.

author: edavid
author_rank: Super Contributor
timestamp: September 04, 2013, 04:35:30 am
content: I don't exactly understand what you want to do, but it doesn't sound like such a great idea. You should just use FSK, where there are separate tones for 0 and 1. It will be much easier for you to decode, not least because you can just look up the ways that other people have done it.

author: tszaboo
author_rank: Super Contributor
timestamp: September 04, 2013, 06:02:09 am
content: It is the ASK method. I would put there a microcontroller, sample it at 4 Khz, and use a digital filter. It is not all that hard. If you must use analog, make a bandpass filter for 1 khz, and a precision rectifier, and sample that. Dave made a video about them.

author: David_AVD
author_rank: Super Contributor
timestamp: September 04, 2013, 06:28:40 am
content: Have you tried the data transfer without the audio modulation and demodulation yet?Is your data scheme asynchronous with defined start and stop bits for each and every byte?What will happen if you r receiver starts listening part way through the stream?