在 Matlab 上从载波信号中解调 AM 信号

信息处理 matlab 解调
2022-02-14 13:00:44

我正在尝试从载波信号(100kHz)中解调语音信号(带宽约为 5kHz)。

[y,Fs]=audioread('Signal1.wav');

h=10*sinc(10*(-10:10));

y1=过滤器(h,1,y);

但是当我将信号与提供的“ground truth”信号进行比较时,信号的大小是我制作的信号的 1/20。我错过了这个过程中的一些步骤吗?谢谢。

2个回答

不同信号长度的原因是由于它们不同的采样率

原始基带模拟音频信号m(t)有一个5kHz带宽,并应在采样Fbb10kHz,以离散时间形式表示(无混叠)m[n]=m(n/Fbb)在 Matlab 中。

假设你要使用低通采样定理,那么调幅模拟信号x(t)=Acm(t)cos(2πfct+ϕ)载波频率为fc=100kHz(其带宽为100+5kHz),并且必须至少采样Fam=1Tam=210kHz 表示为x[n]=Acmam[n]cos(2πfcnTam+ϕ).

请注意,在后一种情况下,消息信号m(t)过采样mam[n]大约Fam/Fbb=210/10=21通过样品产品获取样品。因此,AM 调制(和解调)信号中的样本数mam[n]代表音频信息将是关于21是原始基带音频表示的倍数m[n].

通常,您会对解调的音频序列进行下采样,以降低其采样率(和采样数)。

让我们看一下 AM 调制的概念。

最简单的线性调幅公式(对于 DSB-SC)是:

m(t)=A(t)cos(wt+ϕ).

在调幅;你有一个固定频率的载波信号,ϕ函数可以省略,传输信号中包含它的信息A(t)功能。所以我们基本上是将我们的信号调制成载波的形状。

AM调制信号的解调有不同的技术。我们能想到如何解调这个信号的最基本的方法,基本上就是检测信号的包络。在现实世界中,这是一个二极管和一个精心设计的电容器的问题。在 MATLAB 中,您必须模拟这些特征。

这里有一个包络检测的例子

还有另一种在 MATLAB 中更容易实现的方法。该方法称为“锁相环”(或类似的方法)。请注意,如果您的信号是同步的,您可以使用此方法。这种解调方式的框图是这样的:

在此处输入图像描述

在 MATLAB 中应用模拟解调技术时最常见的错误是采样。您必须以正确的频率和正确的点采集样本。

我希望这在幅度调制技术方面对您有所启发。还有更多的解调方法,但是谁需要它们呢?只需查看它们并找到适合您需求的方法。锁相环我用得最多,如果没有特殊需求,建议你用。

一如既往,祝您有美好的一天。