我正在尝试从载波信号(100kHz)中解调语音信号(带宽约为 5kHz)。
[y,Fs]=audioread('Signal1.wav');
h=10*sinc(10*(-10:10));
y1=过滤器(h,1,y);
但是当我将信号与提供的“ground truth”信号进行比较时,信号的大小是我制作的信号的 1/20。我错过了这个过程中的一些步骤吗?谢谢。
我正在尝试从载波信号(100kHz)中解调语音信号(带宽约为 5kHz)。
[y,Fs]=audioread('Signal1.wav');
h=10*sinc(10*(-10:10));
y1=过滤器(h,1,y);
但是当我将信号与提供的“ground truth”信号进行比较时,信号的大小是我制作的信号的 1/20。我错过了这个过程中的一些步骤吗?谢谢。
不同信号长度的原因是由于它们不同的采样率。
原始基带模拟音频信号有一个kHz带宽,并应在采样kHz,以离散时间形式表示(无混叠)在 Matlab 中。
假设你要使用低通采样定理,那么调幅模拟信号载波频率为kHz(其带宽为kHz),并且必须至少采样kHz 表示为.
请注意,在后一种情况下,消息信号被过采样到大约通过样品产品获取样品。因此,AM 调制(和解调)信号中的样本数代表音频信息将是关于是原始基带音频表示的倍数.
通常,您会对解调的音频序列进行下采样,以降低其采样率(和采样数)。
让我们看一下 AM 调制的概念。
最简单的线性调幅公式(对于 DSB-SC)是:
在调幅;你有一个固定频率的载波信号,函数可以省略,传输信号中包含它的信息功能。所以我们基本上是将我们的信号调制成载波的形状。
AM调制信号的解调有不同的技术。我们能想到如何解调这个信号的最基本的方法,基本上就是检测信号的包络。在现实世界中,这是一个二极管和一个精心设计的电容器的问题。在 MATLAB 中,您必须模拟这些特征。
这里有一个包络检测的例子。
还有另一种在 MATLAB 中更容易实现的方法。该方法称为“锁相环”(或类似的方法)。请注意,如果您的信号是同步的,您可以使用此方法。这种解调方式的框图是这样的:
在 MATLAB 中应用模拟解调技术时最常见的错误是采样。您必须以正确的频率和正确的点采集样本。
我希望这在幅度调制技术方面对您有所启发。还有更多的解调方法,但是谁需要它们呢?只需查看它们并找到适合您需求的方法。锁相环我用得最多,如果没有特殊需求,建议你用。
一如既往,祝您有美好的一天。