matlab调制2ASK代码
时间: 2023-12-03 14:40:43 浏览: 112
以下是matlab调制2ASK的代码示例:
```matlab
% 设置参数
f0 = 10; % 基带频率
fs = 100; % 采样频率
T = 1/fs; % 采样时间
N = 1000; % 采样点数
A = 1; % 振幅
fc = 20; % 载波频率
SNR = 10; % 信噪比
% 生成基带信号
t = (0:N-1)*T;
m = A*sin(2*pi*f0*t);
% 生成载波信号
c = cos(2*pi*fc*t);
% 2ASK调制
s = (m>0).*c + (m<=0).*(-c);
% 加噪声
s_n = awgn(s, SNR);
% 解调
m_n = s_n.*c;
m_n = filter(ones(1,10)/10,1,m_n); % 低通滤波
m_n = m_n(10:T:end); % 采样
% 绘制误码率曲线
EbN0 = 0:2:20;
BER = zeros(size(EbN0));
for i = 1:length(EbN0)
SNR = EbN0(i) + 10*log10(2);
s_n = awgn(s, SNR);
m_n = s_n.*c;
m_n = filter(ones(1,10)/10,1,m_n); % 低通滤波
m_n = m_n(10:T:end); % 采样
BER(i) = sum(abs(m_n-m)>0)/N;
end
semilogy(EbN0, BER);
xlabel('Eb/N0 (dB)');
ylabel('BER');
title('2ASK');
```
阅读全文