在MATLAB中生成二进制信号的方法主要分为以下两类,涵盖从随机序列到调制信号的全过程:
一、生成随机二进制序列
使用`randi`函数生成随机二进制码元,例如:
```matlab
st = randi([0,1],1000,1); % 生成1000个随机二进制码元
```
或通过矩阵操作生成多维随机矩阵:
```matlab
st = randi([0,1],m,n); % 生成m行n列的随机二进制矩阵
```
二进制信号扩展
将随机序列转换为等长的二进制基带信号,例如:
```matlab
da = sign(randn(1,N)); % 生成随机序列
st = sigexpand(da,N_sample); % 扩展为二进制信号
```
二、二进制调制信号生成
OOK(二进制幅度键控)
通过开关控制载波幅度实现调制:
```matlab
M = 10; L = 100; Ts = 1; Rb = 1/Ts; % 码元参数
t = 0:Ts/N_sample:N_sample*N*dt-dt;
wave = randi([0,1],1,M); % 生成二进制码元序列
fz = ones(1,L);
st = conv(st, fz); % 生成OOK信号
```
PSK(相移键控)
通过改变载波相位实现调制,例如2PSK:
```matlab
% 生成I/Q分量
I = sin(2*pi*1000*t + 2*pi*wave);
Q = cos(2*pi*1000*t + 2*pi*wave);
st = I + 1i*Q; % 形成复数信号
```
FSK(频移键控)
通过不同频率载波实现调制:
```matlab
% 生成不同频率的I/Q分量
I = sin(2*pi*1000*t + 2*pi*wave);
Q = sin(2*pi*2000*t + 2*pi*wave);
st = I + 1i*Q; % 形成复数信号
```
三、信号处理与可视化
波形绘制: 使用`plot`或`subplot`绘制时域波形,例如OOK信号: ```matlab figure; subplot(2,1,1); plot(t, real(st)); subplot(2,1,2); plot(t, imag(st)); ``` 功率谱分析
注意事项:实际应用中需根据具体需求选择调制方式,并注意信号采样率、码元速率等参数设置。