📜  DSBSC解调器(1)

📅  最后修改于: 2023-12-03 15:00:33.079000             🧑  作者: Mango

DSBSC解调器

DSBSC解调器是一种基于正交解调技术的信号解调器。DSBSC解调器可以将带有载波的双边带调制信号解调成原始信号,并且在原始信号频谱上只保留了一个带宽,使得信号更易于处理。

工作原理

DSBSC解调器的工作原理基于正交解调技术,分为两个步骤:带通滤波和相乘整流。

  1. 带通滤波

    带通滤波是将输入的DSBSC信号经过一个带通滤波器,滤掉不希望的频率成分,只保留需要的频率成分。通常使用低通滤波器或者带通滤波器。

  2. 相乘整流

    相乘整流是将带通滤波后的信号和一个正弦参考信号相乘,得到一个波形,然后再通过低通滤波器,得到原始信号。

代码实现

下面是一个简单的DSBSC解调器的Python实现代码片段:

import numpy as np
import matplotlib.pyplot as plt

def DSBSC_demodulator(signal, fs, fc, f_cutoff):
    t = np.arange(len(signal)) / fs
    I = signal * np.cos(2 * np.pi * fc * t)
    Q = signal * np.sin(2 * np.pi * fc * t)
    I_filtered = butter_lowpass_filter(I, f_cutoff, fs)
    Q_filtered = butter_lowpass_filter(Q, f_cutoff, fs)
    demodulated_signal = I_filtered + Q_filtered
    return demodulated_signal

def butter_lowpass_filter(data, cutoff, fs, order=5):
    nyquist = 0.5 * fs
    normal_cutoff = cutoff / nyquist
    b, a = butter(order, normal_cutoff, btype='low', analog=False)
    y = filtfilt(b, a, data)
    return y

signal = np.load('signal.npy')
fs = 1000
fc = 100
f_cutoff = 50
demodulated_signal = DSBSC_demodulator(signal, fs, fc, f_cutoff)

plt.figure()
plt.plot(signal[0:1000], label='Original Signal')
plt.plot(demodulated_signal[0:1000], label='Demodulated Signal')
plt.legend()

结论

DSBSC解调器是一种简单有效的信号解调器。通过对输入信号进行带通滤波和相乘整流操作,可以将带有载波的双边带调制信号解调成原始信号。同时,在原始信号频谱上只保留了一个带宽,使得信号更易于处理。