Trying to make an SDR radio, How to multiply, mix ect. #224
-
Dear pshatzman, I strongly appreciate your work and would also like to try to make SDR radio with your tools. |
Beta Was this translation helpful? Give feedback.
Replies: 17 comments 1 reply
-
I am not sure what the best option would be.
With the help of the online ide you can generate a c++ class ps. This was the first time I was writing something in Faust and it is amazing to see that it's possible to set up something as complex as this within 15 min w/o prior knowledge |
Beta Was this translation helpful? Give feedback.
-
Thank you for the above proposal. The logic you draw for Foust is exactly what I would like to test for the first radio. |
Beta Was this translation helpful? Give feedback.
-
No worries, I am an old retiree as well. The following might be helpful as well: https://github.com/pschatzmann/arduino-audio-tools/wiki/Faust |
Beta Was this translation helpful? Give feedback.
-
Just a question on the side: I started to extend the library with codecs. Is there any open source codec which I should consider to support that might be interesting for SDR? |
Beta Was this translation helpful? Give feedback.
-
I did not verify if some from listed below are already covered in your tools. So my breef overlook with focus on those that are popular to buy on ebay or Aliexpress and are available on cheep boards to buy: |
Beta Was this translation helpful? Give feedback.
-
Not exactly: When audio is transmitted, it is usually encoded (e.g. to be compressed) and then decoded again. Examples GSM or G722. Here is the list of codecs that I am currently supporting: |
Beta Was this translation helpful? Give feedback.
-
Perhaps this link gives you some indication of what we radio hams use in telecommunications. SDRs are mainly designed to follow this kind of modulation and compression: |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
You just picked the wrong example. Use the next one in the documentation |
Beta Was this translation helpful? Give feedback.
-
Thanks, guitarix works on my setup too. Using same template I still didnt get my sdr sketch working. Even simplified not. |
Beta Was this translation helpful? Give feedback.
-
Made a simplified version to work, but I get presence of annoying constant tone of about 700Hz. Suspect that this is related to selected buffer size in faust ide. It is displayed to be 128 bytes only and it is selected automatically by faust. Wanted to set it to 1024 or 512 for the test, but I cant find the way to change this in faust ide. Do you know if this is possible? |
Beta Was this translation helpful? Give feedback.
-
I don't think that the setting of 128 is used anywhere in the generated code. How do you generate the input signal and what is it's sample rate ? |
Beta Was this translation helpful? Give feedback.
-
This was a code: AudioKitStream kit; // Arduino Setup // Setup Faust faust.setLabelValue("gain", 0.50); auto cfg_i2s = kit.defaultConfig(RXTX_MODE); Serial.println(es8388_set_voice_volume(70)); // Arduino loop - copy sound to kit |
Beta Was this translation helpful? Give feedback.
-
You are not setting any sample rate, so the system is using the default value of 44100. Are you sure that this is correct?
As explained before you can increase the buffer size e.g. to 2048
|
Beta Was this translation helpful? Give feedback.
-
44100 sampling is correct for the SDR. I have changed buffer to 2048 and also tried 512, but the unwanted 700Hz sound is always exactly the same. At the same time the useful wanted signal is processed correctly, but 700Hz is louder. |
Beta Was this translation helpful? Give feedback.
-
I have seen that you gave up the approach using Faust. |
Beta Was this translation helpful? Give feedback.
-
So I tried to reduce smaller number of taps for filter and also reduced sample rate down to 16000 , but unwanted 700Hz remains. import("stdfaust.lib"); Filters are same, I will change them later to appropriate for SDR. |
Beta Was this translation helpful? Give feedback.
I am not sure what the best option would be.
My first thought would be to implement this logic in Faust and use my framework just for the input and output. If I got you right the logic would be something as follows:
With the help of the online ide you can generate a c++ class
What to you think ?
ps. This was the first time I was writing something i…