【Matlab】2ASK二进制振幅键控波形生成

前言

一个通信原理课程中使用Matlab生成2ASK波形的实验笔记。

内容

  1. 设发送二进制信息为10011101,码元速率为1波特,载波 sin(wt),幅值为1,初始相位为0。
  2. 当载波频率为2Hz,利用matlab软件画出2ASK的波形

原理

2ASK二进制振幅键控是正弦载波的幅度随数字基带信号而变化的数字调制。
表达式:
表达式

Ts 是二进制基带信号时间间隔,g(t) 是持续时间为 Ts 的矩形脉冲;
gx
则2ASK信号为
2ask
2ASK信号也称OOK信号,2ASK调制技术先产生二进制基带信号,产生一个载波信号,利用一个2选1开关电路进行输出。例如为1输出载波,为0则置0。

程序源码

b = [1,0,0,1,1,1,0,1];  % 二进制数据
n = length(b);  % b长度
t = 0:.01:n;
x = 1:1:(n+1)*100;
for i = 1:n
    for j = i:.1:i+1
        bw(x(i*100:(i+1)*100)) = b(i);
    end
end
bw = bw(100:end);
f=2;  % 载波频率
sint = sin(2*pi*f*t);
st = bw.*sint;
subplot(3,1,1);plot(t,bw);
title('信号','Fontsize',20);
grid on ; axis([0 n -2 +2])
subplot(3,1,2);plot(t,sint);
title('载波','Fontsize',20);
grid on ; axis([0 n -2 +2])
subplot(3,1,3);plot(t,st);
title('调制信号','Fontsize',20);
grid on ; axis([0 n -2 +2])

结果分析

波形如下图所示,二进制信息经2ASK调制后,有载波表示1,无载波表示0。

结语

从波形上看,可以理解为,信号和载波相乘,就能得到调制后的信号。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要对二进制振幅键控信号进行采样处理提取载波频率、带宽和码元速率,可以按照以下步骤进行: 1. 首先,将二进制振幅键控信号进行解调,得到基带信号。 2. 对基带信号进行低通滤波,以去除高频噪声和干扰。 3. 对滤波后的基带信号进行采样处理,得到离散的信号序列。 4. 对采样后的信号序列进行快速傅里叶变换(FFT),以得到信号的频域特征。 5. 从频谱图中提取出载波频率和带宽信息。 6. 根据采样率和码元长度,计算码元速率。 下面是一些MATLAB代码示例,可以帮助你完成上述步骤: ```matlab % 设定采样率和码元长度 fs = 1000; % 采样率 T = 1/fs; % 采样间隔 bit_length = 50; % 码元长度 % 生成测试信号 f_c = 100; % 载波频率 f_b = 10; % 信号带宽 t = 0:T:1-T; % 时间序列 data = randi([0,1],1,length(t)/bit_length); % 二进制数据 symbol = repelem(data,bit_length); % 重复码元 signal = symbol.*cos(2*pi*f_c*t); % 二进制振幅键控信号 % 解调得到基带信号 demod_signal = signal.*cos(2*pi*f_c*t); % 低通滤波 fc = f_b/2; % 截止频率 [b,a] = butter(4,fc/(fs/2)); % 4阶Butterworth滤波器 lpf_signal = filter(b,a,demod_signal); % 采样处理 sampled_signal = lpf_signal(1:bit_length:end); % 快速傅里叶变换 N = 2^nextpow2(length(sampled_signal)); Y = fft(sampled_signal,N)/length(sampled_signal); f = fs/2*linspace(0,1,N/2+1); % 提取载波频率和带宽 [~,index] = max(abs(Y)); carrier_freq = f(index); bw = length(find(abs(Y)>max(abs(Y))/2))*fs/N; % 计算码元速率 symbol_rate = fs/bit_length; % 显示结果 disp(['载波频率:',num2str(carrier_freq),'Hz']); disp(['带宽:',num2str(bw),'Hz']); disp(['码元速率:',num2str(symbol_rate),'bps']); ``` 这段代码将生成一个二进制振幅键控信号,并对其进行解调、滤波、采样、快速傅里叶变换和信息提取,最后计算出载波频率、带宽和码元速率,并输出结果。你可以根据自己的需求修改代码中的参数和信号生成方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翻过月亮.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值