2ASK编码

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 1P, 且相互独立。

  • 该二进制符号序列可表示为:

s ( t ) = ∑ n a n g ( t − n T s ) s(t)=\sum_{n}a_{n}g(t-nT_{s}) s(t)=nang(tnTs)

  • 则二进制振幅键控信号可表示为:

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)=nang(tnTs)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]); 
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想取名字的飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值