通信原理实验(三)数字基带信号

实验总览

主要分析单极性归零、不归零码,双极性归零、不归零码,AMI码和HDB3码。

单极性不归零码

单极性不归零码产生

信号发生程序

function [signal, t] = SNRZ(N, Ts, L)
     dt = Ts / L;
     totalt = N * Ts;
     wave = round(rand(1, N));
     signal = zeros(1, N * L);
     t = 0 : dt : totalt - dt; %得到自变量时间采样点,从0采样到totalt - dt,采样间隔为dt
     for i = 1 : N
         if wave(i) == 1
             signal((i - 1) * L + 1 : i * L) = 1;
         else
             signal((i - 1) * L + 1 : i * L) = 0;
         end
     end
end

实验主程序

clc;clear;
%% 参数定义
N = 2000;
Ts1 = 1;
Ts2 = 0.1;
L = 200;
%% 产生码型
[SNRZ1, t1] = SNRZ(N, Ts1, L);
[SNRZ2, t2] = SNRZ(N, Ts2, L);
%% 频谱分析
HSNRZ1 = fft(SNRZ1);
HSNRZ2 = fft(SNRZ2);
n1 = length(t1);
n2 = length(t2);
nf1 = 0 : 1 / n1 : 1 - 1 / n1;
nf2 = 0 : 1 / n2 : 1 - 1 / n2;
fs1 = L / Ts1;
fs2 = L / Ts2;
f1 = nf1 * fs1;
f2 = nf2 * fs2;
%% 画图
subplot(3, 1, 1); plot(t1, SNRZ1); title('单极性不归零码时域波形 Ts = 1');
subplot(3, 1, 2); plot(f1, abs(HSNRZ1)); title('单极性不归零码频谱 Ts = 1');
subplot(3, 1, 3); plot(f2, abs(HSNRZ2)); title('单极性不归零码频谱 Ts = 0.1');

实验结果

 

单极性不归零码频谱中含有直流分量,没有定时信息,谱零点带宽为fB。

单极性归零码

单极性归零码产生

信号发生程序

function [signal, t] = SRZ(N, Ts, L)
     dt = Ts / L;
     totalt = N * Ts;
     wave = round(rand(1, N));
     signal = zeros(1, N * L);
     t = 0 : dt : totalt - dt; %得到自变量时间采样点,从0采样到totalt - dt,采样间隔为dt
     for i = 1 : N
         if wave(i) == 1
             signal((i - 1) * L + 1 : (i - 1 / 2) * L) = 1;
             signal((i - 1 / 2) * L + 1 : i * L) = 0;
         else
             signal((i - 1) * L + 1 : i * L) = 0;
         end
     end
end

实验主程序

clc;clear;
%% 参数定义
N = 2000;
Ts1 = 1;
Ts2 = 0.1;
L = 200;
%% 产生码型
[SRZ1, t1] = SRZ(N, Ts1, L);
[SRZ2, t2] = SRZ(N, Ts2, L);
%% 频谱分析
HSRZ1 = fftshift(fft(SRZ1));
HSRZ2 = fftshift(fft(SRZ2));
n1 = length(t1);
n2 = length(t2);
nf1 = - 1 / 2 + 1 / n1 : 1 / n1 : 1 / 2;
nf2 = - 1 / 2 + 1 / n2 : 1 / n2 : 1 / 2;
fs1 = L / Ts1;
fs2 = L / Ts2;
f1 = nf1 * fs1;
f2 = nf2 * fs2;
%% 画图
subplot(3, 1, 1); plot(t1, SRZ1); title('单极性归零码时域波形 Ts = 1');
subplot(3, 1, 2); plot(f1, abs(HSRZ1)); title('单极性归零码频谱 Ts = 1');
subplot(3, 1, 3); plot(f2, abs(HSRZ2)); title('单极性归零码频谱 Ts = 0.1');

实验结果

 

### 数字基带传输系统仿真实验实现方法 #### 实现工具 MATLAB 是一种广泛应用于工程领域中的高级编程语言和交互环境,非常适合用于数字信号处理以及通信系统的建模与仿真。对于数字基带传输系统的仿真实验而言,MATLAB 提供了丰富的函数库和支持包来帮助构建此类模型并执行必要的计算。 #### 工作流程概述 在 MATLAB 中建立一个完整的数字基带传输链路涉及以下几个方面的工作: - **源编码**:生成待发送的信息序列,通常表示为二进制形式的一串‘0’和‘1’。 - **调制映射**:将这些原始的数据位转换成适合物理层传输的形式,比如通过不同的脉冲形状来进行表示[^2]。 - **信道传播**:模拟实际环境中可能遇到的各种干扰因素,特别是加入加性高斯白噪声(AGWN),以测试系统性能如何受到影响。 - **接收端解码**:对接收到的已受扰动后的波形实施匹配滤波器操作,并恢复出尽可能接近原样的信息比特流;此过程还包括估计同步参数、去除残留相移等步骤。 - **性能评估**:比较输入与输出之间的差异,统计错误发生的频率即误码率(BER, Bit Error Rate), 并绘制相应的曲线图以便直观展示不同条件下BER的变化趋势[^1]。 #### 示例代码片段 下面给出一段简单的 MATLAB 脚本来创建基本框架下的 BPSK (Binary Phase Shift Keying) 基带传输实验平台: ```matlab % 参数设定 Fs = 8e3; % 采样频率(Hz) Tb = 1/Fs; % 符号周期(s) Nbits = 1000; % 发送总长度(bit) % 数据准备阶段 dataBits = randi([0 1], Nbits, 1); % 随机产生一组二进制数列作为消息载体 modulatedSignal = pskmod(dataBits, 2, pi/2); % 对上述产生的随机序列应用BPSK调制方式 % 添加AWGN通道效应 noisySig = awgn(modulatedSignal,Fs,'measured'); % 接收侧处理逻辑 demodDataBits = pskdemod(noisySig, 2, pi/2); [numErrors, ber] = biterr(dataBits,demodDataBits); disp(['Number of errors made: ',num2str(numErrors)]); disp(['Bit error rate computed: ', num2str(ber)]); figure; subplot(2,1,1); plot(real(modulatedSignal)); title('Transmitted Signal'); subplot(2,1,2); plot(real(demodDataBits));title('Received Data After Demodulation'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值