请写matlab代码,它可以完成以下功能:设基带传输系统为滚降系数分别为0,0.5,1的余弦滚降特性, 1、画出接收端的基带数字信号波形; 2、画出接收端的眼图。
时间: 2023-09-09 19:05:23 浏览: 113
### 回答1:
下面是一个示例 Matlab 代码,它可以完成上述功能:
```
Fs = 1000; % 采样频率
T = 1/Fs; % 采样周期
L = 1000; % 采样点数
t = (0:L-1)*T; % 采样时间
% 生成基带信号
f1 = 50;
f2 = 150;
x = cos(2*pi*f1*t) + cos(2*pi*f2*t);
% 画出基带信号波形
figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Baseband Signal');
% 设置滚降系数
a = [0 0.5 1];
% 计算调制信号
y = zeros(length(a), L);
for i = 1:length(a)
y(i,:) = x.*cos(2*pi*(1-a(i))*Fs*t);
end
% 画出调制信号眼图
figure;
for i = 1:length(a)
subplot(length(a), 1, i);
plot(y(i,:), '.');
xlabel('Samples');
ylabel('Amplitude');
title(sprintf('Modulated Signal with Roll-Off Factor %.1f', a(i)));
end
```
这段代码会生成两个图像,第一个图像显示基带信号的波形,第二个图像显示滚降系数分别为 0、0.5 和 1 的余弦滚降特性调制信号的眼图。
### 回答2:
以下是实现基带传输系统功能的MATLAB代码:
```matlab
% 设置参数
roll_off = [0, 0.5, 1]; % 滚降系数
Fs = 1000; % 采样率
t = 0:1/Fs:1-1/Fs; % 时间序列
% 生成发送端信号
message = randi([0 1], 1, 100); % 生成随机的二进制消息序列
% 初始化接收端信号
received_signal = zeros(size(t));
% 生成接收端信号
for i = 1:length(roll_off)
% 生成基带数字信号
baseband_signal = kron(2*message-1, ones(1, Fs)); % 对二进制序列进行解调
% 对基带信号进行滚降调制
rrc_filter = rcosdesign(roll_off(i), 6, Fs); % 生成滚降系数为roll_off的根升余弦滤波器
transmitted_signal = conv(baseband_signal, rrc_filter); % 滚降调制
transmitted_signal = transmitted_signal(1:length(t)); % 剪裁至与时间序列相同长度
% 添加高斯白噪声
snr = 10; % 信噪比(dB)
noise = awgn(transmitted_signal, snr, 'measured'); % 添加高斯白噪声
% 接收端滚降解调
received_signal = received_signal + conv(noise, rrc_filter, 'same') / Fs;
% 绘制接收端的基带数字信号波形
figure;
plot(t, received_signal);
title(['滚降系数为' num2str(roll_off(i)) '的基带数字信号波形']);
xlabel('时间');
ylabel('幅度');
% 绘制接收端的眼图
figure;
eyediagram(received_signal, Fs, Fs/2);
title(['滚降系数为' num2str(roll_off(i)) '的眼图']);
xlabel('时间');
ylabel('幅度');
end
```
以上代码实现了基带传输系统的功能,并生成了接收端的基带数字信号波形图和眼图,其中滚降系数分别为0, 0.5, 1。可以根据需要自行调整代码中的参数。
### 回答3:
1、画出接收端的基带数字信号波形:
```matlab
% 参数设置
roll_off = [0, 0.5, 1]; % 滚降系数
Fs = 1000; % 采样率
T = 1/Fs; % 采样周期
t = 0:T:1-T; % 时间范围
% 产生发送端的基带信号
data = [1 0 1 1 0 1 0 0]; % 发送的二进制数据
bitrate = 10; % 数据位速率
Ts = T/bitrate; % 单个数据比特间隔
t_data = 0:Ts:T-Ts; % 数据比特时间范围
signal = kron(2*data-1, ones(1, length(t_data))); % 发送端基带信号
% 产生接收端的基带数字信号
rec_signal = zeros(length(roll_off), length(t));
for i = 1:length(roll_off)
h = rcosdesign(roll_off(i), 6, Fs/bitrate, 'sqrt');
rec_signal(i, :) = conv(signal, h, 'same');
end
% 绘制图形
figure;
for i = 1:length(roll_off)
subplot(length(roll_off), 1, i);
plot(t, rec_signal(i, :), 'b');
xlabel('时间');
ylabel('幅度');
title(sprintf('滚降系数为 %.1f 的基带数字信号波形', roll_off(i)));
end
```
2、画出接收端的眼图:
```matlab
% 参数设置
N = 100; % 眼图显示的比特个数
Ts = T/bitrate; % 单个数据比特间隔
T_eye = Ts*N; % 眼图时间范围
t_eye = 0:T_eye:T_eye-Ts; % 眼图时间点
% 绘制眼图
figure;
for i = 1:length(roll_off)
subplot(length(roll_off), 1, i);
plot(t_eye, rec_signal(i, 1:N:end), 'b');
xlabel('时间');
ylabel('幅度');
title(sprintf('滚降系数为 %.1f 的眼图', roll_off(i)));
axis([-Ts/2 T_eye+Ts/2 -1.5 1.5]);
grid on;
end
```
以上代码可实现滚降系数分别为0、0.5、1的余弦滚降特性基带传输系统的基带数字信号波形绘制和接收端眼图绘制。