【发布时间】:2022-01-17 23:14:00
【问题描述】:
我正在使用 matlab 的内置 ammod 和 amdemod 函数调制和解调信号。 Fc 设置为 500,当我使用 Fs=2000 时,解调信号与消息信号非常匹配。
但是当我使用 Fs=1000.. 时,解调信号似乎被放大了。为什么会这样?是不是因为 Fs 的值没有正确满足 Nyquist Cretierion 导致的混叠?
代码如下:
clc
clear all
close all
pkg load communications
Fc=500; %Defining parameters for carrier frequency
Fs=1000; %Defining parameters for sampling rate
Ts=1/Fs; %Defining sampling period
Tc=1/Fc;
t=0:Ts:1.0239; %%Defining time scale
t2=0:Tc:12;
%%Step 2- Generating the Message an d Carrier Signal
x=3*cos(50*pi*t)-sin(10*pi*t); %%Defining Message signal
Ac=1; %Amplitude of the Carrier Signal
ct=Ac*cos(500*pi*t2); %%carrier signal
%x=x(1:2000);%limiting x to 2000 samples
%%Step 3 - Generating the AM-Signal
x_am = ammod(x,Fc,Fs);
%%Step 4 - Demodulating the AM-Signal
x_dem =amdemod(x_am,Fc,Fs);
【问题讨论】:
-
我没有这些功能,但您可以通过将
Fc设置为小于 Nyquist 的值来验证,例如499.跨度>
标签: matlab octave modulation