2 A S K 2ASK 2ASKMATLAB仿真
有具体实验需求可私聊定制
-
A S K ASK ASK即“振幅键控”, 2 A S K 2ASK 2ASK是二进制振幅键控。这是正弦载波的幅度随数字基带信号而变化的数字调制。当数字基带信号为二进制时,则为二进制振幅键控。设发送的二进制符号序列由 0 0 0, 1 1 1序列组模拟信号源调制器信道解调器受信者噪声源调制器信道解调器基带信号输入噪声源基带信号输出成, 发送 0 0 0 符号的概率为 P P P,发送 1 1 1 符号的概率为 1 − P 1-P 1−P, 且相互独立。
-
该二进制符号序列可表示为:
s ( t ) = ∑ n a n g ( t − n T s ) s(t)=\sum_{n}a_{n}g(t-nT_{s}) s(t)=n∑ang(t−nTs)
- 则二进制振幅键控信号可表示为:
e 2 A S K ( t ) = ∑ n a n g ( t − n T s ) c o s ω n t e{2ASK}(t)=\sum_{n}a_{n}g(t-nT_{s})cos\omega_{n}t e2ASK(t)=n∑ang(t−nTs)cosωnt
- 2 A S K 2ASK 2ASK 信号的产生方式通常有两种:模拟调制法和键控法。
- 2 A S K 2ASK 2ASK 信号与模拟调制中的 A M AM AM信号类似。所以, 对 2 A S K 2ASK 2ASK
- 信号也能够采用非相干解调(包络检波法)和相干解调(同步检测法)
实验结果
调制
解调
clc;
clear all;
close all;
N = 1000 % 码元数
fs = 100 % 采样频率
source = randi([0, 1], 1, N); % 信源
T = 1; % 单个码元持续时间
rate = 4; % 载波频率与码元频率之比
fc = rate*(1/T); % 载波频率
t = (0:N*fs*T-1)/fs; % 时间刻度
L = fs*T;
t_decode = (0:(N*fs*T+L/2-1))/fs;
decode_2ASK = zeros(1, N);
carrier = sin(2*pi*fc*t); % 载波
s = reshape((repmat(source', 1, (fs*T)))', 1, N*fs*T);
ASK_res = carrier.*s;
% 计算信号的傅里叶变换
Y = fft(ASK_res);
% 计算双侧频谱 P2。然后基于 P2 和偶数信号长度 L 计算单侧频谱 P1。
P2 = abs(Y/(N*fs*T));
P1 = P2(1:N*fs*T/2+1);
P1(2:end-1) = 2*P1(2:end-1);
% 定义频域 f 并绘制单侧幅值频谱 P1。与预期相符,频率和幅值与理论相同
f = fs*(0:(N*fs*T/2))/(N*fs*T);
s_awgn = awgn(ASK_res, 15);
x = abs(s_awgn); % 加噪,全波整流
Rp=5; % 通带纹波系数
Rs=6; % 阻带衰减系数
Wp=4; % 通带截止频率
Fs=3; % 阻带起始频率
Wp=Wp/(fs/2); % 通带截止频率
Fs=Fs/(fs/2); % 阻带起始频率
% 计算滤波器的最低阶数n和3dB截止频率Wn
[n,Wn]=buttord(Wp,Fs,Rp,Rs);
% 计算系统函数H(z)的分子、分母多项式系数
[b,a]=butter(n,Wn);
y=filter(b,a,x); % filter函数实现IIR滤波器的直接形式
for i = 1:N
if y(L*i-L/2)>=0.5
decode_2ASK(i)=1;
else
decode_2ASK(i)=0;
end
end
source;
decode_2ASK;
de_2ASK = [zeros(1, L/2), reshape(repmat(decode_2ASK', 1, L)', 1, N*L)];
k = xor(source, decode_2ASK);
error = length(find(k(1,:)==1))/N;
disp('误码率:')
disp(error)
df = 0.01;
ts = T/fs;
[s_2askf,~,~,f_]=T2F(ASK_res,ts,df,fs);
plot(f_,10*log10(abs(fftshift(s_2askf).^2/length(f_))));
figure;
subplot(4, 1, 1); plot(t, s); axis([0, 10, -0.5, 1.5]); title("信源")
subplot(4, 1, 2); plot(t, ASK_res); axis([0,10,-1.5,1.5]); title("调制信号")
subplot(4, 1, 3); plot(f,P1); xlabel('f (Hz)'); title('X(t)的单边幅值谱')
subplot(4, 1, 4); plot(f_,10*log10(abs(fftshift(s_2askf).^2/length(f_)))); axis([-50,50,-200,100]); title('功率谱密度')
figure;
subplot(4,1,1);plot(t, s_awgn);axis([0,10,-1.5,1.5]);
subplot(4,1,2);plot(t, x);axis([0,10,-0.5,1.5]);
subplot(4,1,3);plot(t, y);axis([0,10,-0.5,1.5]);
subplot(4,1,4);plot(t_decode, de_2ASK);axis([0,10,-0.5,1.5]);