# demod
用于通信仿真的解调
函数库: TySignalProcessing
# 语法
x, = demod(y,fc,fs,method)
x, = demod(y,fc,fs,method,opt)
# 说明
x, = demod(y,fc,fs,method) 使用方法中指定的方法,使用载波频率fc和采样率fs解调实际载波信号y。
x, = demod(y,fc,fs,method,opt)使用opt中指定的附加选项解调实载波信号y。
# 示例
频率调制和解调
生成以8 kHz采样的150 Hz正弦波,持续1秒。将调制信号嵌入方差为0.1²的高斯白噪声中。
using TyPlot
using TySignalProcessing
fs = 8000
t = [0:1/fs:1-1/fs;]
s = cos.(2*pi*150*t)
使用0.1的调制常数以3 kHz的载波频率对信号进行频率调制。
fc = 3000
rx, = modulate(s,fc,fs,"fm",0.1)
使用相同的载波频率和调制常数对信号进行频率解调。计算并绘制发射、接收和解调信号的功率谱估计。
y= demod(rx,fc,fs,"fm",0.1)
plot(s)
hold("on")
plot(y)
grid("on")
# 输入参数
y-调制信号实向量|实矩阵
调制消息信号,指定为实向量或矩阵。除了pwm和ppm方法外,y的大小与x相同。
fc- 载波频率实正标量
用于调制消息信号的载波频率,指定为实正标量。
fs- 采样率实正标量
采样率,指定为实正标量。
method-使用的调制方法"am"(默认)|"amdsb-sc"|"amdsb-tc"|"amssb"|"fm"|"pm"|"pwm"|"ppm"|"qam"
使用的调制方法,指定为以下方法之一:
- am或amdsb-sc-幅度解调,双边带,抑制载波。将y乘以频率fc的正弦,并使用filtfilt应用五阶巴特沃斯低通滤波器。
x = y .* cos.(2 * pi * fc * t);
b, a = butter(5, fc * 2 / fs);
x = filtfilt(b, a, x[:]);
- amdsb-tc-幅度解调,双边带,传输载波。将y乘以频率fc的正弦,并使用filtfilt应用五阶巴特沃斯低通滤波器。
x = y .* cos.(2 * pi * fc * t);
b, a = butter(5, fc * 2 / fs);
x = filtfilt(b, a, x[:]);
如果指定opt,则解调器从x中减去标量opt。opt的默认值为0。
- "amssb"-幅度解调,单边带。将y乘以频率fc的正弦,并使用filtfilt应用五阶巴特沃斯低通滤波器。
x = y .* cos.(2 * pi * fc * t);
b, a = butter(5, fc * 2 / fs);
x = filtfilt(b, a, x[:]);
- fm-频率解调。通过将y的希尔伯特变换调制为频率-fc Hz的复指数来解调FM波形,并获得结果的瞬时频率。
y=cos.(2*pi*fc*t + opt*cumsum(x))
cumsum是x积分的矩形近似值。modulate使用opt作为频率调制常数。如果未指定opt参数,modulate使用默认值
- pm-相位解调。通过将y的希尔伯特变换调制为频率-fc Hz的复指数来解调PM波形,并获得结果的瞬时相位。
y=cos.(2*pi*fc*t + opt*x)
调制使用opt作为相位调制常数。如果不指定opt参数,modulate使用默认值
pwm-脉宽解调。查找脉宽调制信号y的脉宽。解调器在x中返回一个向量,其元素以周期的分数指定每个脉冲的宽度。y中的脉冲应在每个载波周期的开始处开始,也就是说,它们应左对齐。modulate(x,fc,fs,"pwm","centered")产生在每个周期开始时居中的脉冲。y的长度是length(x)*fs/fc。
ppm-脉冲位置解调。查找脉冲位置调制信号y的脉冲位置。为了正确解调,脉冲不能重叠。x是length(t)*fc/fs。
qam-正交幅度解调。x1,x2=demod(y,fc,fs,"qam")将y乘以频率fc的余弦和正弦,并使用filtfilt应用五阶巴特沃斯低通滤波器。
x1 = y.*cos.(2*pi*fc*t);
x2 = y.*sin.(2*pi*fc*t);
b,a = butter(5,fc*2/fs);
x1 = filtfilt(b,a,x1[:]);
x2 = filtfilt(b,a,x2[:]);
输入参数opt的大小必须与y相同。
opt-某些方法的可选输入实向量
可选输入,为某些方法指定。有关如何使用opt的更多详细信息,请参阅method。
# 输出参数
x-解调的消息信号实向量|实矩阵
解调的消息信号,作为实向量或矩阵返回。