生成一段matlab代码,它可以满足以下要求:用matlab产生独立等概的二进制信源, 1、画出OOK信号波形和功率谱; 2、画出2PSK信号波形和功率谱; 3、画出2FSK信号波形和功率谱(设频差远大于码元速率
时间: 2023-02-06 12:59:22 浏览: 141
产生2FSK信号的matlab程序
5星 · 资源好评率100%
以下是在 Matlab 中产生独立同分布的二进制信源并画出 OOK、2PSK 和 2FSK 信号波形和功率谱的代码示例:
% 产生独立同分布的二进制信源(共 1000 个码元)
data = randi([0 1], 1, 1000);
% 设置常数
fs = 1000; % 采样频率(设为码元速率的整数倍)
T = 1 / fs; % 采样周期
% OOK 信号
% 设置常数
fc = 100; % 载波频率
A = 1; % 载波幅度
% 产生 OOK 信号
ook_signal = A * data;
% 画出 OOK 信号波形
t = (0:length(ook_signal)-1) * T; % 时间向量
figure;
plot(t, ook_signal);
xlabel('时间 (s)');
ylabel('幅度');
title('OOK 信号波形');
% 画出 OOK 信号功率谱
nfft = 2^nextpow2(length(ook_signal));
ook_psd = pwelch(ook_signal, [], [], nfft, fs);
f = fs/2*linspace(0,1,nfft/2+1);
figure;
plot(f, ook_psd(1:nfft/2+1));
xlabel('频率 (Hz)');
ylabel('功率谱密度 (W/Hz)');
title('OOK 信号功率谱');
% 2PSK 信号
% 设置常数
fc = 100; % 载波频率
A = 1; % 载波幅度
phi = pi; % 初相位
% 产生 2PSK 信号
psk_signal = A * cos(2*pi*fc*t + phi*data);
% 画出 2PSK 信号波形
figure;
plot(t, psk_signal);
xlabel('时间 (s)');
ylabel('幅度');
title('2PSK 信号波形');
% 画出 2PSK 信号功率
阅读全文