用Matlab产生一个频率为1Hz,功率为1的余弦信源,设载波频率为10Hz,画出SSB调制信号及功率谱密度,并在信道中加入经过带通滤波器后的窄带高斯白噪声,功率为0.1,相干解调各个信号,画出解调后的波形
时间: 2024-04-14 18:28:24 浏览: 120
Matlab产生正弦波、均匀白噪声、高斯白噪声_并将两种噪声叠加到正弦波上_并给出自相关和功率谱密度波形
5星 · 资源好评率100%
以下是用MATLAB生成频率为1Hz,功率为1的余弦信源,进行SSB调制、加入噪声、相干解调并画出波形的示例代码:
```matlab
% 生成余弦信源
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间序列
f_source = 1; % 信号频率
A_source = 1; % 信号幅度
source_signal = A_source * cos(2*pi*f_source*t);
% SSB调制
f_carrier = 10; % 载波频率
A_carrier = 1; % 载波幅度
ssb_signal = hilbert(source_signal) .* exp(1i*2*pi*f_carrier*t);
% 绘制SSB调制信号及功率谱密度
figure;
subplot(2,1,1);
plot(t, real(ssb_signal));
title('SSB调制信号 (实部)');
xlabel('时间 (s)');
ylabel('幅度');
N = length(ssb_signal);
f = (-fs/2):(fs/N):(fs/2-fs/N); % 频率序列
power_spectrum = abs(fftshift(fft(ssb_signal))).^2/N; % 功率谱密度
subplot(2,1,2);
plot(f, power_spectrum);
title('SSB调制信号功率谱密度');
xlabel('频率 (Hz)');
ylabel('功率');
% 添加噪声
noise_power = 0.1; % 噪声功率
noise = sqrt(noise_power) * randn(1, length(ssb_signal));
noisy_signal = ssb_signal + noise;
% 相干解调
demodulated_signal = noisy_signal .* conj(hilbert(exp(1i*2*pi*f_carrier*t)));
% 绘制解调后的波形
figure;
plot(t, real(demodulated_signal));
title('解调后的波形 (实部)');
xlabel('时间 (s)');
ylabel('幅度');
```
请注意,上述代码中的绘图部分是使用MATLAB的plot函数进行绘制的。你可以将代码复制到MATLAB编辑器中运行,并查看生成的图形结果。
阅读全文