ASK 和曼彻斯特编码

信息处理 离散信号 解调
2022-02-11 09:19:38

首先,上下文:我在 wav 文件中获得了一个信号、采样率和载波频率,以及它是曼彻斯特编码并经过 ASK 调制的事实。载波一半频率的正弦波的五个周期表示“行”的结束,并添加奇偶校验列/行。从这里我要重现一个 300x300 的黑白图像。我得到的主要工具(以前从未使用过)是 MatLab。这是一项任务,我只是在寻找一些我在其他地方找不到的答案。

所以,据我了解,我得到了这个y[t],它等于x[t]*cos(2*pi*1000*t)从这个信号中,我需要尝试x[t]退出,然后对其进行解码。我的问题之一是如何去提取这个信号。

抱歉,开始时间长了,如果这似乎是基本的。这是一门入门课程,突然让我们陷入困境!

问题 1:由于这是曼彻斯特编码后的 ASK,我猜每个“位”将由样本中的一组值表示,这些值从正到负或从负到正?我的猜测正确吗?

问题2:在样本中,每组四个非零数字之间恰好有五个(或六个,我现在忘记了)零(除了我猜测的部分是表示结束的五个句点一排)。这些零点在解调中是否有用,或者它们只是在采样阶段引入而对解调无用?

问题3:所以,假设上述问题是正确的。为了解调这个信号,我是否可以简单地删除所有零值,然后迭代并在它为正时表示“1”,当它为负时表示“0”(可能是遇到行末尾时的一些附加值),然后将其配对为 10 -> 1 和 01 -> 0?

非常感谢您的帮助,再次对长度感到抱歉!

1个回答

我建议你先解调你的信号。将接收到的信号y[t] = x[t]*cos(2*pi*1000*t)乘以cos(2*pi*1000*t)记住,cos(A)cos(B)=1/2(cos(AB)+cos(A+B)). 你会留下来x[t]*0.5*(cos(0) + cos(2*pi*2000*t) = x[t]*0.5*1 + x[t]*0.5*cos(2*pi*2000*t)用 1k Hz 的低通滤波器过滤剩余的信号,只留下 x[t]。从那里您可以尝试回答其余的问题。

在 Matlab 中,这将如下所示:

t = 0:1/Fs:END_TIME;  % Fs is your sampling rate. This makes a vector of individual time ticks
y_demod = y.*cos(2*pi*1000*t);   % This multiplies every element in Y with the cos(...) 
                                 % ... element. Make sure they're the same size.
a = (1/Fs)*(Fs/4);               % A cutoff frequency of approximately 1/2 the sampling rate
x_est = filter([1 1-a],a,y_demod);

简单的 1 极低通滤波器取自这里:https ://stackoverflow.com/questions/1783633/matlab-apply-a-low-pass-or-high-pass-filter-to-an-array