Using filter IIR to Serial I/O Tranceiver ARF 7429

Please help me...
I have a final assignment to apply the filter IIR into a tranceiver ARF 7429, of course using serial I/O code into matlab GUI. My questions are:
1. Is it possible to apply the filter into my program that connected to the tranceiver? How can I do it?
2. Can you give example code for the matlab GUI?
3. I have searched the IIR filter program that needed passband and stopband. How can I receive this passband and stopband from the tranceiver?
thank you..

 Accepted Answer

I am not clear whether you are trying to filter samples whose numeric value happens to have been transported over RS232, or if you are trying to filter the bits that were received over RS232 and then you want the byte decoding to happen on the filtered bits, or if you are trying to filter the RS232 signal on the wire, before it goes to the transceiver for decoding?
I do not understand what you mean by receiving the passband and stopband from the transceiver? Do you mean you wish to be able to receive numeric values transported over RS232 and use those values as the filter coefficients, or do you mean you wish to be able to receive the numeric cutoff frequencies that were transported over RS232 and use those to design a filter, or something else?
Are you trying to do this in Simulink? Do you have the toolbox to design IIR filters?

4 Comments

thank you for your answer Mr.Walter..
Exactly, I want to use the filter to reduce the noise of the signal between two tranceiver. The tranceiver itself is connected to PC via RS232. But I don't know how to make this filter with matlab since I'm a beginner for filter.
Do you have any idea how I can solve this matter?
I've found a IIR filter code that we have to input the passband and stopband manually and I don't understand this.
I'm not familiar with simulink and I don't have the toolbox. I want to make this program as a GUI matlab if it possible. Can you tell me what I have to do?
As soon as the transceiver gets the signal, it uses a transistor network to compare the signal to the reference voltages and determines the bit value -- below the negative threshold for logical 1, and above the positive threshold for logical 0. By the time it passes those bits on to the program, it is too late to do the filtering. Your filter would have to be between the sender and the local transceiver. That implies either a hardware filter or an A/D convertor at a high rate, a digital filter, and a D/A convertor to reconstruct the signal to send it to the transceiver. If you are going to go through the bother of an A/D convertor and a digital filter, you might as well decode the signal after the digital filtering instead of sending it on to the transceiver.
I suspect your question about the IIR filter code is what the passband and stopband values *mean*. If so, then that is something best studied in filter reference material.
So I can't apply the filter after the signal through the transceiver?
I still have to use 2 transceiver so I have to add these A/D convertor,digital filter,D/A convertor right..
then are these A/D convertor, digital filter, D/A converter a hardware?what hardware?
There are a number of challenges to applying the filter to the received bits. Remember that RS232 serial does not use a clock signal, so you are unable to place the timing of the bits. RS232 requires a start bit, then sends the least significant bit first and through the rest of the byte, then a stop bit. Look at the bottom diagram here for the waveforms: http://www.lookrs232.com/rs232/waveforms.htm . Start bit is logic 0, stop bit is logic 1, and after a word there can be an indefinite wait for the next word with any apparent bits being ignored until the next start bit is seen. As there are limits on rate of voltage slew, the standard implicitly endorses holding the voltage steady if there are multiple bits the same in a row, rather than returning to ground and going back to the same value. There is no promise of a per-bit pulse. Voltages must exceed the negative threshold (go more negative) to be recognized as logic 1, and must exceed the positive threshold (go more positive) to be recognized as logic 0, with an intermediate voltage range that is not either bit.
If you were to be in idle state and were to get a transient that drive the line to the state required for the start bit, but the transient subsided and the line went idle before the stop bit time, the lack of bits should in theory be detected and a framing error should be detected and the word thrown away. Likewise if you fail to get the clear stop bit (which is opposite voltage to the start bit) then the misframing should be detected and the word thrown away. In practice, noise on the line _does_ create phantom characters... though possibly I am remembering times I was connected via a modem.
With the intra-word timing not fixed (not even ideally -- the line literally stays idle until the sender is ready to send something), and with the fact that words can be thrown away without notice (well unless you want to program your own serial drivers), you can see there is a mismatch in attempting to post-filter the received serial bits via an IIR filter. It could be a worse mismatch, I suppose, but trying to consider it as a bit stream and packing together bits from adjacent received words is not going to work because you don't know how many discarded words there were between bits you have available for processing.
You have lost so much information about the actual signal voltages and timing that I don't see how you could do any post IIR filtering in practice. You'd have better results packing the bits in to groups of words that incorporated ECC techniques.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!