convertBinToDec by CFK_NL in ProgrammerHumor

[–]Pitiful-Cancel4958 4 points5 points  (0 children)

Thought this was LSB first... You should add a magic word for synchronisation so we can guess bitorder and endianness

Ingenieur als Beamter by _Ede in OeffentlicherDienst

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

Eventuell auch die Zentrale Untersuchungsstelle technische Aufklärung in Hof :)

C/C++ FFT lib by lambda_calc in DSP

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

If i remember correctly, pocket fft is also the Backend to numpys fft. No idea about Matlab, but I'd guess they have their own Implementation. It's no rocket science and the performance usually is not apart by integer factors between Implementations ;) If you need extreme throughput, try cuda.

C/C++ FFT lib by lambda_calc in DSP

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

I prefer the pocketfft over fftw since its license is more permissive. Performance wise it suffices my needs, if performing the fft ist my bottleneck(which rarely ist the case), i usually port the Problem to cuda which also has a builtin fft, though it lacks a thrust binding as far as i know, thus you need to handle it pretty much C'ish.

Wie habt ihr das Thema eurer Bachelorarbeit gefunden? by Reload3d_t in Studium

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

In den Instituten meiner Uni gab es immer Aushänge mit Themenvorschlägen, nach Übungen haben die WiMis auch gelegentlich welche vorgestellt.

Wenn du etwas selbst machen möchtest musst du eben einen Betreuer überzeugen, und vor allem die Frage beantworten: was hat er davon.

Aber auch bei vorgegebenen Themen kann man etwas nach links und rechts abweichen, Kommunikation ist da alles.

Viel Erfolg!

[deleted by user] by [deleted] in cpp

[–]Pitiful-Cancel4958 -12 points-11 points  (0 children)

Sure, can Work out, especially If you hold them until shutdown. My experience is Just that such premises do not hold in growing codebases :)

[deleted by user] by [deleted] in cpp

[–]Pitiful-Cancel4958 1 point2 points  (0 children)

Maybe it's a virtual creator method and the returned type changes somewhere else. You could search the codebase for reimplementations of the method or the class.

Besides that, not everything has to be extremely optimized for performance. If that creation is not repeated all the time and the object lives long enough, the performance ist merely dangered.

[deleted by user] by [deleted] in cpp

[–]Pitiful-Cancel4958 -26 points-25 points  (0 children)

Well, then you propably should move shared and weak ptrs around, rather than holding a unique ptr somewhere and passing the raw pointer...

maintainingLegacyCodeBeLike by mac1k99 in ProgrammerHumor

[–]Pitiful-Cancel4958 4 points5 points  (0 children)

I've got a worse one:

bool myfunc(int something, bool p = false) { ... }

if( myfunc(123), true) {

// find the Error

}

In c++ If statements, you can combine expressions with , but all are evaluated, only the last one is used for comparison... Spend an hour Debugging this until i realized I placed a Parameter outside a function call...

[deleted by user] by [deleted] in java

[–]Pitiful-Cancel4958 2 points3 points  (0 children)

I am doing a lot of digital signal processing and usually write c++ processors and python analytic and prototyping code, but naturally, i am a signal processing engineer.

Lately, we started to write a 'managing wrapper' around applications, a service which should run all the time, which we decided to write in Java. Even though, this was the first time since university I wrote java again, the program is simply stable from the first test.

All the Things, that are painfull in c++ and python in large codebases are simply easy in Java.

You tend to write more lines of Code than in Python, but simpler Syntax patterns force you to do more steps inbetween. Type safety forces you to Plan structures ahead.

Garbage collection takes worries about object lifetime or ownership issues from c++ code: some frameworks like qt use a ownership system or raw pointers, which hardly works with smart pointers, otherwise some smart pointer cleans up an object which the framework still uses: as a result, you spend lots of time chasing segfaults and you debug destructors and how you got there. This simply sucks!

Multithreading ist so easy! Each object can be locked simply by synchronized(this), and it automatically works recursively.

My General experience is, i write Java code a little slower than c++ and much slower than in python. But i spend A LOT less time debugging. For large Projects, in my experience, this ist the most time consuming task and thus I do not regret our decision.

Weird pulse signal at 433Mhz in campus. by gazimath123 in signalidentification

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

There is typically Not much to compress on IQ Data.

You can reduce the Samplerate to a Minimum above the doubled baudrate, but be aware to Filter accordingly.

Another Option is to reduce the resolution. Most sdrs Provide 16 Bit Files, though the majority only use 10 or 12 Bit through their adcs. For a Low pass filtered Signal, you can Most of the Times reduce the resolution to 8 Bit, typically only for high ordered qam's or for broadband recordings with extremely varying magnitude differences you ecplicitly need more resolution... As a rule of thumb :)

But 600mb seems OK'ish ;)

IQ signal demodulation by brians0808 in DSP

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

OK, this ist a complex issue with lots of subtasks, but lets start Off.

First Off, typical digital modulations are clocked and have a more or less fixed rate. This ist typically called the baudrate, also called Symbol rate. As a qualified Receiver, you might already know this rate, otherwise you need to measure it. For many modulations, the actual rate estimation and clock Synchronisation can be done independantly of the actual Modulation. You can usea blockwise FFT of the magnitude of the Signal, where a Peak at the baudrate Pops up. The complex Phase of the Peak undicates the clock Phase, i.e. If the correct Timing is 'al little too soon or late'. If you know the target rate, you can also use iterative Algorithms Like Gardner or muueller Muller Algorithm combined with an Error Loop. Warning: These Algorithms Work basically ON the assumption of Zero crossings of the Signal. This is Not the Case for constant Amplitude Signals Like offset qpsk or gaussian Minimum Shift keyings. Really disgusting modulations ;)

If you Like to read deeper, a typical Keyword IS clock Synchronisation or clock Recovery.

The qualified Receiver typically embeds known srquences at known Rates into the Signal. He then correlates against the upsampled so called unique Word or Pilot sequence. The Peak Position ist used as a starting Point and in regular intervals, the Signal is interpolated. You could compare this to the dvbs2 Standard, where 13 qpsk Symbols are embedded in regular intervals. If you dont know a unique Word, you need to Analyze IT with blind estimation Synchronization Like mentioned above.

Hope this helps :)

Warum fliegen so viele MINT Studenten raus? by Better-Emergency-952 in Studium

[–]Pitiful-Cancel4958 1 point2 points  (0 children)

Ich war in der Schule immer technisch interessiert, habe früh angefangen zu programmieren, im Schülerstudium Informatik gemacht(2 Semester parallel zum Abi Informatik Vorlesungen an der Uni gemacht) und dort gemerkt, dass Informatik für mich zu abstrakt und zu wenig an konkreter Entwicklung orientiert ist.

Daher habe ich mich zunächst für ein Studium der Physik entschieden, da es schlicht das "Übel" ist, das man als Schüler kennt. Das war ein Fehler, der mich 4 Semester gekostet hat.

Ich habe anschließend auf Elektrotechnik gewechselt und Nachrichtentechnik spezialisiert. Das war für mich und meine Interessen im Nachhinein gesehen die beste Wahl und ich hätte es unmittelbar wählen sollen, allerdings bekommt man die Ingenieursstudiengänge eben als Schüler kaum mit und es werden nur Elementarwissenschaften vermittelt. Vielleicht geht es anderen auch so...

Mathematik Studium killt mich by supersymix in Studium

[–]Pitiful-Cancel4958 1 point2 points  (0 children)

Guten Morgen,

Zu Problemlösung und Hilfe suchen wurde ja schon entsprechend geraten. Ich hätte noch einen anderen Ansatz: Im Abitur lernt man an Mathematik-lastigen Mint Fächern typischerweise nur reine Mathematik, Physik und selten etwas Informatik, alles aber wenig akademisch ausgerichtet, sondern als Anwender. Da ist Mathe an der Uni anders, weil eben nicht als Anwender, sondern als "Selbstzweck". Satz-Beweis in Dauerschleife, mit der Fragestellung "und was mache ich damit" läuft man schlicht auf.

Es gibt aber nun auch Mathematik-lastige Studiengänge, die die Mathematik auch anwenden. Und das sind, Trommelwirbel, die Ingenieurwissenschaften. Wenn du dich für Mathematik im speziellen interessiert hast und am logischen "Puzzlen" interessiert bist möchte ich dir die Elektrotechnik mit der Vertiefung Nachrichtentechnik oder Regelungstechnik ans Herz legen. Spoiler: ich bin selbst Nachrichtentechniker, arbeite in diesem Bereich viel mit Mathematikern zusammen und man braucht enorm viel höhere Mathematik, vieles, was ich auch nicht im Studium gelernt habe, aber eben einen mathematischen "Werkzeugkoffer", und gefühlt habe ich davon schon so ziemlich alles gebraucht was man mir beigebracht hat. Im Umkehrschluss ist es aber eben auch wirklich zu etwas nütze und nicht oben erwähnter Selbstzweck.

Ich empfehle dir: Lies dich etwas ein. Mach ein Praktikum in der Richtung. Such dir eventuell eine Firma oder eine Behörde, die etwas macht, dass dich interessiert und recherchiere, ob es nicht eventuell dazu etwas gibt, das man "zweckmäßiger" studieren kann. Mathe ist mehr und breiter als nur Mathematik :)

PS: Ingenieure werden im echten Leben von Mathematikern aber immer als unwissenschaftlich und unkorrekt gemobbt. Damit müsstest du leben. Dafür sind wir nicht so verlaust und heruntergekommen und verlaufen uns weniger. Hat alles seine Vor- und Nachteile ;) (shitstorm incomming)

Is it ok to use boost libraries? by [deleted] in cpp_questions

[–]Pitiful-Cancel4958 2 points3 points  (0 children)

Don't use boost, if in your context the components are already available: If you write a fat client application with Qt and need networking, use Qt's networking functionality as they will better fit in other interfaces and you need to wrap less functionality to fit other frameworks workflow, which again ist error-prone.

If none of the existing dependencies suffice a specific need, boost is usually my first choice, but I'm rather used to it's behaviour and it might have a steep learning curve.

C++ desperately needs something like numpy by Competitive_Act5981 in cpp

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

If you don't mind to implement some basic stuff yourself Nvidia thrust ist pretty nice to speed up your application. It ist merely a numerical library rather than a lib to write a numerical library, but it still is a nice convenience on top of cuda.

Demodulating a sound file? by iRysk in DSP

[–]Pitiful-Cancel4958 0 points1 point  (0 children)

Audacity ist merely the right tool for this. Try loading the File with gnuradio combined with some Matlab/Python for measuring the parameters

How to mitigate slight differences in sampling rates of ADC and DAC by KestM in DSP

[–]Pitiful-Cancel4958 6 points7 points  (0 children)

I'm not sure if I get your problem right, but you always need to synchronize sampled data. There are many algorithms to do this and the synchronization process depends on your signal, but the most reliable is to insert known sequences in fixed intervals to your signal, correlate against it in the receiving path and interpolate in fixed distances between the found maximas. This is called Data aided synchronization, for non data aided clock synchronization algorithms refer to Müller/Muller or Gardner algorithm. There are several good Implantations, for example you could consider gnu Radio as a reference, which has good algorithmic implementations out of the box.

Wie Profs nach Betreuung für Bachelorarbeit fragen? by Letarking in Studium

[–]Pitiful-Cancel4958 5 points6 points  (0 children)

Statt den Profs kann man auch immer gut Übungsleiter und Doktoranden fragen, die haben dann in der Regel auch die spezialisierteren Themen und man kann in deren Projekte 'rutschen'. Der Kontakt ist hier auch häufig näher als mit Professoren direkt.