用matlab产生一个频率为1Hz,振幅为1的余弦信源,设载波频率为10Hz。 ①DSB-SC系统中,当相干解调器输入信噪比为15dB时,系统各点的波形及其频谱,并对调制信号和解调信号进行比较分析。
时间: 2024-09-25 08:15:40 浏览: 145
在MATLAB中,你可以使用`cos`函数生成一个简单的余弦信号,然后通过`modulate`函数进行调制,这里我们选择双边带抑制载波(DSB-SC)调制。首先,我们需要创建基础的余弦信号:
```matlab
% 创建时间向量
t = 0:0.001:1; % 1秒的时间间隔
% 产生1Hz的余弦信源,振幅为1
carrier = cos(2*pi*1*t); % 基带信号,频率1Hz,振幅1
% 载波频率为10Hz
fs = 1000; % 采样率假设为1kHz
fc = 10; % 载波频率
```
接下来,我们将进行DSB-SC调制:
```matlab
% DSB-SC调制
modulated_signal = modulate(carrier, fc, 'dsb-sc'); % 采用DSB-SC调制方式
```
对于DSB-SC系统的相干解调,我们可以先假设理想条件下无噪声存在,然后再引入15dB的信噪比(SNR)来进行模拟。因为MATLAB的内置函数通常不直接支持15dB信噪比,我们可以手动添加白色噪声来达到这个效果。
```matlab
% 添加信噪比为15dB的白噪声
noise_power = 10^(-15/10); % 计算噪声功率
noisy_signal = modulated_signal + noise_power * randn(size(modulated_signal));
% 解调信号
demodulated_signal = demodulate(noisy_signal, fc, 'dsb-sc', 'coherent');
```
现在,为了画出波形及频谱,可以分别使用`plot`函数查看时间和频域的表现,并对比原始信号、调制后的信号以及解调后的信号:
```matlab
% 绘制波形
subplot(2,1,1)
plot(t, carrier, 'b', t, modulated_signal, 'r', t, noisy_signal, 'g', t, demodulated_signal, 'm')
legend('基带信号', '调制后', '加噪声后', '解调后')
% 绘制频谱
subplot(2,1,2)
[~, freq] = freqz(carrier, [], fs);
psd_carrier = abs(freqz(carrier, [], fs)) ^ 2;
[~, freq] = freqz(modulated_signal, [], fs);
psd_modulated = abs(freqz(modulated_signal, [], fs)) ^ 2;
psd_noisy = abs(freqz(noisy_signal, [], fs)) ^ 2;
psd_demodulated = abs(freqz(demodulated_signal, [], fs)) ^ 2;
plot(freq, psd_carrier, 'b', freq, psd_modulated, 'r', freq, psd_noisy, 'g', freq, psd_demodulated, 'm')
xlabel('Frequency (Hz)')
ylabel('Power Spectral Density')
% 比较分析
阅读全文