Communication (Systems) - a small guide

If you were sent this site, don’t be mad!
This is all my knowledge on the Communication Systems Course offered at my University (some stuff has been redacted by the author).

Since I get a lot of messages around Christmas and New Year, neither about Christmas nor New Year, but about the Communication Systems Receiver Project, I decided to offload some time into writing this. This is not AI written in 0.2 seconds, I checked the facts and referenced my old receiver code.

I had passed this course in the Winter Semester of 2022/23, and was able to decode all three mystery signals, A and B flawlessly, C with a handful of broken characters. See end of page.

Some things might have changed about the course, but the info on this page might still be useful to you.

Some Rules

⚠️ I will not release any of my code to the public
ℹ️ I’m sharing select code snippets, copy at your own risk
⚠️ I will not troubleshoot your particular receiver design

I will not break those rules. I do hope that you will follow these rules:

  • Upload your stuff to git, or loose work. Pick (only) one
    • a friends code once OVERWROTE his mystery signals. Git would have alerted him about changes of the file! Use IT!!1!
  • Do not plagiarize, you will fail 🤡
  • Do not copy someone else’s code, you will fail ❌
  • Be honest in your report and oral exam
  • Pick a good partner or no partner, but not a bad partner
    • above-mentioned friend has been betrayed once

Some Tips

On my machine (at that time Ryzen 5600X) it took a good minute for Octave to run through one (1) signal. I chose to cut the mystery signal down to a 30% chunk in the middle. When I finally decoded a message, I removed this limit.

Start your script with something like this:

clear all; close all; clc;

This ensures you don’t have any stale variables in your runtime (Matlab/Octave are weird; see StackOverflow Survey: most loved/hated languages), which may interfere with your code, instead of giving you an error: variable not found.

Create a file in your home directory named .octaverc and insert the following to automatically load the needed packages on Octave startup:

pkg load signal
pkg load control

You can also put these lines at the start of your receiver code. Don’t forget the semicolon!

Figures…

Adding a figure between two other figures breaks the entire script, as figures overwrite other figures that have the same number. I was constantly going back and forth to edit the numbers inside the figure(3);-calls. I came up with this auto incrementing way of making the figures behave nicely:

# start of code
fig_ind=1;
# all plots use fig_ind to number themselves
figure(fig_ind++); plotspec(signal, Ts); title("Some Signal");

Always plot your signals. You will gain much more insight into what is and what isn’t working. I had a final count of 13 Figures to look through when the receiver did the receiving.

Importing the Signals

I debated whether or not to actually include this, but here we go. I saw a lot of receivers with a user prompt, asking which signal to import. Consider this: You are running this receiver like a couple of hundred times till you get some results. Typing A every time you launch your receiver code feels like a massive waste of time. That’s not even considering the time to implement this functionality!

KISS. Keep It Simple Stupid.

I made our Professor edit my script to specify which Mystery Signal to decode. All my Mystery Signal import statements are one-liners on purpose. I can just comment out the ones I don’t want to decode and run the script. And it runs. Beautiful.

%r = load("test-signal.mat"); fs = 840000; fi = 2300000; srrc_len = 5; srrc_roff = 0.3; T_t = 7.5e-6;
r = load("mysteryA.mat"); fs = 840000; fi = 2300000; srrc_len = 5; srrc_roff = 0.3; T_t = 7.5e-6;
%r = load("mysteryB.mat"); fs = 740000; fi = 1680000; srrc_len = 4; srrc_roff = 0.37; T_t = 9.7e-6;
%r = load("mysteryC.mat"); fs = 920000; fi = 2100000; srrc_len = 6; srrc_roff = 0.2; T_t = 6.25e-6;

⚠️ Use your time wisely

Software Receiver Design

Get hold of the SRD book, as it is the best reference there is. The Course is built around the scripts this book provides.

The starting point of the Receiver is the sampled signal. You are not concerned with implementing the analog part of the radio. See Figure 15.2 for things you do not have to implement. See Figure 15.3 for things you might want to implement.

Sampled here refers to the signal after demodulation in the analog domain (as this entire project is software, this could be done in future years) and after sampling the signal. Of note here is that the handout that accompanies the three mystery signals states the following signal parameters (at least for me, it did):

mysteryC:  SRRCLength:     6
           SRRCrolloff:    0.2
           T_t:            6.25e-6 s
           f_if:           2.1 MHz
           f_s:            920 kHz

It clearly states the intermediate frequency f_if is higher than the sampling frequency f_s. There might be a way to harness the aliasing formula given in one of the Lecture Slides, to write a small loop to find the one valid aliased frequency dynamically for all mysteries. (And there is. I did that, but ended up not using it in the final receiver).

Question for the reader: calculate the aliased frequency for the intermediate and sampling frequencies above.

Down Conversion or Demodulation

Recovering the Carrier Frequency is of upmost importance. Think of this as tuning your Radio to a particular Station. Only difference is there only is one Radio Station on Planet Earth (your mystery signal).

There are a couple of Algorithms to choose from that will in most cases perform the same. At least I know lost of students that had good experiences picking either of them.

  • dualpll.m Dual Phase Locked Loop
    • this does require preprocessing found in pllpreprocess.m
  • costasloop.m Costas Loop

You likely want to stay away from a single PLL as it only matches either Phase or Frequency, never both. I’d also say do not bother demodulating with a fixed sine wave.

I chose to go with dualpll.m for no reason other than, I got it to work first and didn’t spend time on the Costas Loop.

⚠️ Note that dualpll.m recovers the squared carrier wave

Filters

Filters can be applied anywhere in your receiver, some spots are obvious, some aren’t. After demodulation, the spectrum has 2 copies overlapping at baseband, and copies at positive and negative 2f_c, the carrier. Those copies probably want to be filtered.

ℹ️ The Pulse Matched Filter does this pretty well

You might also want to avoid IIR Filters, as they can be unstable. But don’t let me discourage you!

Clock Recovery & Equalizer

Decision Directed signal processing blocks are overall the best. Those pretend to have an idea about what is happening with the signal.

Our Professor often mentions the term “Voodoo Parameters”. Often unit-less, those are meant to be adjusted. Go hog wild and play around. This applies especially to these signal processing blocks.

Here’s my Clock Recovery:

You can easily see that the right most Signal C has some trouble keeping up. It worked mostly perfectly, the plot just shows some signs of battle damage.

Quantization

This is just a one-liner. Refer to idsys.m. Note that attenuation or loss in amplitude will force it to make worse decisions. It quantizes to the nearest number in the alphabet. ℹ️ Always plot the signals you are working with!

Frame Synchronization

I implemented my own Frame Synchronizer from scratch. This was by far the most fun part. There really isn’t a script given by the Professor or in the SRD book, that you could copy whole. You’re really on your own here.

Playing with idsys.m

This script generates a perfect PAM signal with data only. It then oversamples and convolves with the Hamming Pulse, and simple AM Modulation sends it to the receiver, but that is not important for Frame Synchronization, as one could:

  1. extend the PAM symbols with headers (same as the mystery signals)
  2. write a Frame Synchronizer that runs on those perfect PAM symbols to locate the headers, and then back-convert the data.

This is exactly what I did. There are multiple things to consider:

  • since 4 PAM symbols make one character, an offset by 1, 2 or 3 produces garbage
    • Introduce offsets to test your Frame Synchronizer
  • working with arrays in Matlab and Octave is horrible
    • You will run into weird error messages

My Approach

I implemented my Frame Synchronization in a decision directed kind of way. It correlates the entire mystery signal, and iterates over it in framesize steps.

Since it looks at the correlated signal in this interval, I ensure I get one (1) match for the correlation, as all headers in the signal are spaced apart by this symbol length. I get one perfect result, every iteration over the signal. I iterate over it until the Frame Synchronizer reaches the end of the signal.

If a frame would not decode, no matter the reason, It would likely get the next frame right again. My approach also allows me to append the frame’s data to a result string. This was awesome, as I wouldn’t just print out the frame data every iteration, but I had a fully recovered message string, and I also saved those to files. No header strings included too!

Here’s the Correlation:

⚠️ You should be able to see that a chunk of frames is of negative polarity

ℹ️ Oral Exam: Make the argument that this can recover, and works in a live kind of way, as the signal enters this processing block in chunks, not all at once

Results

As said above, I recovered A and B perfectly, while C has a couple broken characters.

Here they are - Click to Expand

Notice how every decoded signal has these repeating 0123456789 patterns? Hmm… I wonder If one could use them to train the equalizer or some other component.

Recovered Message:
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
The Fun They Had
by Isaac Asimov

Margie even wrote about it that night in her diary. On the page headed
May 17, 2157, she wrote, "Today, Tommy found a real book!"

It was a very old book. Margie's grandfather once said that when he
was a little boy his grandfather told him that there was a time when
all stories were printed on paper.

They turned the pages, which were yellow and crinkly, and it was
awfully funny to read words that stood still instead of moving the way
they were supposed to--on a screen, you know. And then, when they
turned back to the page before, it had the same words on it that it
had had when they read it the first time.

"Gee," said Tommy, "what a waste. When you're through with the book,
you just throw it away, I guess. Our television screen must have had a
million books on it and it's good for plenty more. I wouldn't throw it
away."

"Same with mine," said Margie. She was eleven and hadn't seen as many
telebooks as Tommy had. He was thirteen. She said, "Where did you find
it?"

"In my house." He pointed without looking, because he was busy
reading. "In the attic." "What's it about?" "School."

Margie was scornful. "School? What's there to write about school? I
hate school."

Margie always hated school, but now she hated it more than ever. The
mechanical teacher had been giving her test after test in geography
and she had been doing worse and worse until her mother had shaken her
head sorrowfully and sent for the County Inspector.

He was a round little man with a red face and a whole box of tools
with dials and wires. He smiled at Margie and gave her an apple, then
took the teacher apart. Margie had hoped he wouldn't know how to put
it together again, but he knew how all right, and, after an hour or
so, there it was again, large and black and ugly, with a big screen on
which all the lessons were shown and the questions were asked. That
wasn't so bad. The part Margie hated most was the slot where she had
to put homework and test papers. She always had to write them out in a
punch code they made her learn when she was six years old, and the
mechanical teacher calculated the mark in no time.

The Inspector had smiled after he was finished and patted Margie's
head. He said to her mother, "It's not the little girl's fault,
Mrs. Jones. I think the geography sector was geared a little too
quick. Those things happen sometimes. I've slowed it up to an average
ten-year level. Actually, the over-all pattern of her progress is
quite satisfactory." And he patted Margie's head again.

Margie was disappointed. She had been hoping they would take the
teacher away altogether. They had once taken Tommy's teacher away for
nearly a month because the history sector had blanked out completely.

So she said to Tommy, "Why would anyone write about school?"

Tommy looked at her with very superior eyes. "Because it's not our
kind of school, stupid. This is the old kind of school that they had
hundreds and hundreds of years ago." He added loftily, pronouncing the
word carefully, "Centuries ago."

Margie was hurt. "Well, I don't know what kind of school they had all
that time ago." She read the book over his shoulder for a while, then
said, "Anyway, they had a teacher."

"Sure they had a teacher, but it wasn't a regular teacher. It was a
man." "A man? How could a man be a teacher?" "Well, he just told the
boys and girls things and gave them homework and asked them
questions." "A man isn't smart enough." "Sure he is. My father knows
as much as my teacher." "He can't. A man can't know as much as a
teacher." "He knows almost as much, I betcha."

Margie wasn't prepared to dispute that. She said, "I wouldn't want a
strange man in my house to teach me."

Tommy screamed with laughter. "You don't know much, Margie. The
teachers didn't live in the house. They had a special building and all
the kids went there." "And all the kids learned the same thing?"
"Sure, if they were the same age."

"But my mother says a teacher has to be adjusted to fit the mind of
each boy and girl it teaches and that each kid has to be taught
differently."

"Just the same they didn't do it that way then. If you don't like it,
you don't have to read the book."

"I didn't say I didn't like it," Margie said quickly. She wanted to
read about those funny schools.

They weren't even half-finished when Margie's mother called, "Margie!
School!" Margie looked up. "Not yet, Mamma."

"Now!" said Mrs. Jones. "And it's probably time for Tommy, too."

Margie said to Tommy, "Can I read the book some more with you after
school?"

"Maybe," he said nonchalantly. He walked away whistling, the dusty old
book tucked beneath his arm.

Margie went into the schoolroom. It was right next to her bedroom, and
the mechanical teacher was on and waiting for her. It was always on at
the same time every day except Saturday and Sunday, because her mother
said little girls learned better if they learned at regular hours.

The screen was lit up, and it said: "Today's arithmetic lesson is on
the addition of proper fractions. Please insert yesterday's homework
in the proper slot."

Margie did so with a sigh. She was thinking about the old schools they
had when her grandfather's grandfather was a little boy. All the kids
from the whole neighborhood came, laughing and shouting in the
schoolyard, sitting together in the schoolroom, going home together at
the end of the day. They learned the same things, so they could help
one another on the homework and talk about it.

And the teachers were people...

The mechanical teacher was flashing on the screen: "When we add the
fractions 1/2 and 1/4..."

Margie was thinking about how the kids must have loved it in the old
days. She was thinking about the fun they had.
01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345&e

Mystery Message B:

Recovered Message:
0123456789012345678901234567890123456789012345678901224567890123456789012345678901234567890123456789012345678901234567890123456789012345678901224567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
The Flowers
by Alice Walker

It seemed to Myop as she skipped lightly from hen house to pigpen to
smokehouse that the days had never been as buautiful as these. The air
held a keenness that made her nose twitch. The harvesting of the corn
and cotton, peanuts and squash, made each day a golden surprise that
caused excited little tremors to run up her jaws.

Myop carried a short, knobby stick. She struck out at random at
chickens she liked, and worked out the beat of a song on the fence
around the pigpen. She felt light and good in the warm sun. She was
ten, and nothing existed for her but her song, the stick clutched in
her dark brown hand, and the tat-de-ta-ta-ta of accompaniment.

Turning her back on the rusty boards of her family‚s sharecropper
cabin, Myop walked along the fence till it ran into the stream made by
the spring. Around the spring, where the family got drinking water,
silver fernw and wildflowers grew. Along the shallow banks pigs
rooted. Myop watched the tiny white bubbles disrupt the thin black
scale of soil and the water that silently rose and slid away down the
stream.

She had explored the woods behind the house many times. Often, in late
autumn, her mother took her to gather nuts among the fallen
leaves. Today she made her own path, bouncing this way and that way,
vaguely keeping an eye out for snakes. She found, in addition to
various common but pretty ferns and leaves, an armful of strange blue
flowers with velvety ridges and a sweet suds bush full of the brown,
fragrant buds.

By twelve o'clock, her arms laden with sprigs of her findings, she was
a mile or more from home. She had often been as far before, but the
strangeness of the land made it not as pleasant as her usual
haunts. It seemed gloomy in the little cove in which she found
herself. The`air was damp, the silence close and deep.

Myop began to circle back to the house, back to the peacefulness of
the morning. It was then she stepped smack into his eyes. Her heel
became modged in the broken ridge between brow and nose, and she
reached down quickly, unafreid, to free herself. It was only when she
saw his naked grin that she gave a little yelp of surprise.

He had been a tall man. From feet to neck covered a long space. His
head lay beside him. When she pushed back the leaves and layers of
earth and debris Myop saw that he’d had large white teeth, all of them
cracked or broken, long fingers, and very big bones. All his clothes
had rotted away except some threads of blue denim from his
overalls. The buckles of the overall had turned green.

Myop gazed around the spot with interest. Very near where she’d
stepped into the head was a wild pink rose. As she picked it to add to
her bundle she noticed a raised mound, a ring, around the rose’s
root. It was the rotted remains of a noose, a bit of shredding
plowline, now blending benignly into the soil. Around an overhanging
limb of a great spreading oak clung another piece. Frayed, rotted,
bleached, and frazzled--barely there--but spinning restlessly in the
breeze. Myop laid down her flowers/

And the summer was over.

012345678901234567890123456789012345678901234566890123456789012345678901634567890123456789012345678901234567890:j

And finally Mystery Message C.

Recovered Message:
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890133456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
Sunday in the Park
by Bel Kaufman

It was still warm in the late-afternoon sun, and the city noises came
muffled through the trees in the park. She put her book down on the
bench, removed her sunglasses, and sighed contentedly. Morton was
reading the Times Magazine section, one arm flung around her shoulder;
their three-year-old son, Larry, was playing in the sandbox: a faint
breeze fanned her hair softly against her cheek. It was five-thirty of
a Sunday afternoon, and the small playground, tucked away in a corner
of the park, was all but deserted. The swings and seesaws stood
mo4ionless and abandoned, the slides were empty, and only in the
sandbox two little boys squatted diligently side by side. How good
this is, she thought, and almost smiled at her sense of
well-being. They must out in the sun more often; Morton was so
city-pale, cooped up all week inside the gray factorylike
university. She squeezed his arm affectionately and glanced at Larry,
delighting in the pointed little face frowning in concentration over
the tunnel he was digging. The other boy suddenly stood up and with a
quick, deliberate swing of his chubby arm threw a spadeful of sand at
Larry. It just missed his head. Larry continued digging; the boy
remained standing, shovel raised, stolid and impassive.

"No, no, little boy." She shook her finger at him, her eyes searching
for the child's mother or nurse. "We mustn't throw sand. It may get in
someone's eyes and hurt. We must play nicely in the nice sandbox." The
boy looked at her in unblinking expectancy.  He was about Larry's age
but perhaps ten pounds heavier, a husky little boy with none of
Larry's quickness and sensitivity in his face. Where was his mother?
The only other people left in the playground were two women and a
little girl on roller skates leaving now through the gate, and man on
a bench a few feet away. He was a big man, and he seemed to be taking
up the whole bench as he held the Sunday comics close to his face.
She supposed he was the child's father.0He did not look up from his
comics, but spat once deftly ovt of the corner of his mouth. She
turned her eyes away.

At that moment, as swiftly as before, the fat little boy threw another
spadeful of sand at Larry. This time some of it landed on his hair and
forehead. Larry looked up at his mother, his mouth tentative; her
expression would tell him whether to cry or not.  Her first instinct
was to rush to her son, brush the sand out of his hair, and punish the
other child, but she controlled it. She always said that she wanted
Larry to learn to fight his own battles.

"Don't do that, little boy," she said sharply, leaning forward on the
bench. "You mustn't throw sand!"

The man on the bench moved his mouth as if to spit again, but instead
he spoke. He did not look at her, but at the boy only.

"You go right ahead, Joe," he said loudly. "Throw all you want. This
here is a public sandbox."

She felt a sudden weakness in her knees as0she glanced at Morton. He
had become aware of what was happening. He put his Times down
carefully on his lap and turned his fine, lean face toward the man,
smiling the shy, apologetic smile he might have offered a student in
pointing out an error in his thinking. When he spoke to the man, it
was with his usual reasonableness.

"You're quite right," he said pleasantly, "but just because this is a
public place...."

The man lowered his funnies and looked at Morton. He looked at him
from head to foot, slowly and deliberately. "Yeah?" His insolent voice
was edged with menace. "My kid's got just as good right here as yours,
and if he feels like throwing sand, he'll throw it, and if you don't
like it, you can take your kid the hell out of here."

The children were listening, their eyes and mouths wide open, their
spades forgotten in small fists. She noticed the muscle in Morton's
jaw tighten. He was rarely angry; he seldom lost his temper. She was
suffused with a tenderness for her husband and an impotent rage
against the man for involving him in a situation so alien and so
distasteful to him.

"Now, just a minute," Morton said courteously< "you must realize...."

"Aw, shut up," said the man.

Her heart began to pound. Morton half rose; the Times slid to the
ground. Slowly the other man stood up. He took a couple of steps
toward Morton, then stopped. He flexed his great arms, waiting. She
pressed her trembling knees together. Would there be violence,
fighting? How dreadful, how incredible.... She must do something, stop
them, call for help. She wanted to put her hand on her husband's
sleeve, to pull him down, but for some reason she didn't.

Morton adjusted his glasses. He was very pale. "This is ridiculous,"
he said unevenly. "I must ask you...."

"Oh, yeah?" said the man. He stood with his legs spread apart, rocking
a little, looking at Morton with utter scorn. "You and who else?"

For a moment the two men looked at each other nakedly. Then Morton
turned his back on the man and said quietly, "Come on, let's get out
of here." He walked awkwardly, almost limping with self-consciousness,
to the sandbox. He stooped and lifted Larry and his shovel out.

At once Larry came to life; his face lost its rapt expression and he
began to kick and cry. "I don't want to go home, I want to play
better, I don't want any supper, I don't like supper...." It became a
chat as they walked, pulling their child between them, his feet
dragging on the ground. In order to get to the exit gate they had to
pass the bench where the man sat sprawling again. She was careful not
to look at him. With all the dignity she could summon, she pulled
Larry's sandy, perspiring little hand, while Morton pulled the
other. Slowly and with head high she walked with her husband and child
out of the playground.

Her first feelings was one of relief that a fight had been avoided,
that no one was hurt. Yet beneath it there was a layer of something
else, something heavy and inescapable. She sensed that it was more
than just an unpleasant incident, more than defeat of reason by
force. She felt dimly it had something to do with her and Morton,
something acutely personal, familiar, and important.

Suddenly Morton spoke. "It wouldn't have proved anything."

"What?" she asked.

"A fight. It wouldn't have proved anything beyond the fact that he's
bigger than I am."

"Of course," she said.

"The only possible outcome," he continued reasonably, "would have
been--what?  My glasses broken, perhaps a tooth or two replaced, a
couple of days' work missed--and for what? For justice? For truth?"

"Of course," she repeated. She quickened her step. She wanted only to
get home and to busy herself with her familiar tasks; perhaps then the
feeling< glued like heavy plaster on her heart, would be gone. Of all
the stupid, despicable bullies, she thought, pulling harder on Larry's
hand. The child was still crying. Always before she had felt a tender
pity for his defenseless little body, the frail arms, the narrow
shoulders with sharp winglike shoulder blades, the thin and unsure
legs, but now her mouth tightened in resentment.

"Stop crying," she said sharply. "I'm ashamed of you!"!She felt as if
all three of them were tracking mud along the street. The child cried
louder.

If there had been an issue involved, she thought, if there had been
something to fight for.... But what else could he possibly have done?
Allow himself to be beaten?  Attempt to educate the man? Call a
policeman? "Officer, there's a man in the park who won't stop his
child from throwing sand one mine...." The whole thing was as silly as
that, and not worth thinking about.

"Can't you keep him quiet, for Pete's sake?" Morton asked irritably.

"What do you suppose I've been trying to do?" she said.

Larry pulled back, dragging his feet.

"If you can't discipline this child, I will," Morton snapped, making a
move toward the boy.

But her voice stopped him. She was shocked to hear it, thin and cold
and penetrating with`contempt. "Indeed?" she heard herself say. "You
and who else?"

01234567890123456789012345678901234567890123456789012345678901234567890123456789012345

Wait, there’s more?

I generated my own test signal to try on the receiver. It’s also a lot shorter than the provided mysteries. I do not remember what is hidden inside, but it’s using those parameters:

SRRCLength:     5
SRRCrolloff:    0.3
T_t:            7.5e-6 s
f_if:           2.3 MHz
f_s:            840 kHz 

➡️ Find it here ➡️ test-signal.mat. Go nuts~!

Project Report

Before going into the Oral Exam, you need to submit a short report (mine was 5 pages including graphs and code samples). This should include your receiver architecture: the signal processing blocks and how you connected them together.

What also shouldn’t be left unmentioned, is why you choose those signal processing blocks. If there were any special things to consider in your receiver, mention them too! I had to apply a slight gain before Quantization, so that Mystery Signal C would decode properly. Just slight enough not to degrade Signals A or B of course.

My report outline looks something like this:

  • Introduction
  • Receiver Structure
  • Implementation
  • Results
  • Notes

My general rule for the report was to mention as much as I could without it becoming a thesis paper. Or larger than a couple pages.

Deliverables

Create a zip file with the following files included:

  • your Receiver of course
  • all scripts that are referenced/used by your receiver
  • your mystery signals (.mat)
  • the recovered text of the signals (.txt is fine)
  • the report
  • chocolate to bribe him

Your script should be runnable by him, of course.
You can kind of check whether it is, by moving your zip file contents to a different folder (read: workspace) and trying it out.

⚠️ double check what the Professor has said in lectures and handed out

Oral Exam

There’s no real reason to get stressed out about it, if you managed to decode, let’s say Mystery A perfectly, and B and C with some harsh impairments, you are likely to pass, depending on your report and work split if you have a project partner. As I went in, the Professor asked if I was ready, and I replied: “As ready as I can be…”. I was nervous, but he explained, that my receiver was outstanding, and I’d done a great job. That defused the situation for me, and I was able to answer most of the questions concisely.

The Professor will ask a couple general questions about the class and subject. He will dig deeper about your particular design choices in the receiver. For mine, he asked why I was using a low pass filter before the SRRC pulse matching. In my particular design, It helped clean up a couple more characters of Mystery Signal C. He elaborated, that this is probably a waste of a low pass filter if this was a real receiver design. A 100-tap low pass filter before the SRRC pulse matching filters is a waste, as the SRRC already low pass filters the signal. I agree, but it did help me to receive more characters.

Footnote

Good luck!
If you find yourself having questions now, I might (read: very likely will) not be able to answer them as this is literally all I know.
If you found this helpful: You are welcome. You might (read: very likely will) buy me a coffee! ❤️

Here are some stats of my receiver, just for fun.
My script was 244 lines, and 7543 Bytes big. 100 lines were just comments, or empty. 144 lines are code only.

I wrote the report in LaTeX.
My report was (in LaTeX) 348 lines long, and 13.9 KB of size on disk. It’s a good way to exercise writing great papers with nice formatting. It’s also a lot easier to arrange graphs nicely or to import code blocks with custom formatting.
Fuck Word. Learn LaTeX.

This post, as is standard in Hugo, was written in Markdown and is 661 lines long. And 32.4 KB big.

roman's lab

Technology and Engineering Blog


Receiver Design is my Passion

By Roman Hayn
14 January 2025

[~] ls
-r-x Tutorial