二进制ASK调制matlab仿真代码
ASK调制与解调的仿真

实验四ASK 调制与解调的仿真一.实验目的1.掌握幅度键控的原理,经过对仿真的过程和结果剖析,加深对其理解。
2.运用 MATLAB对 ASK的调制与解调过程进行仿真。
二.实验内容运用 MATLAB编程实现ASK调制解调过程,并且输出其调制后的波形,画出频谱、功率谱密度图,并比较各样调制的误码率状况,议论其调制成效。
三.软件纲要设计说明,功能模块及流程和工作原理ASK信号调制器的设计:产生二进制振幅键控信号的方法主要有两种:法 1:采纳相乘电路,用基带信号 A t 和载波 cos t 相乘就获得已调信号输出;法 2:采纳开关电路,这里的开关由输入基带信号 A t 控制,用这类方法能够获得相同的输出波形。
ASK 信号解调器的设计:ASK信号的解调方法有两种,即包络检波法和相关解调法,前者属于非相关解调。
此中解调的原理框图以下图。
依据 ASK调制的表达式可知:S2 ASK (t ) a n A cos c t综合式令A=1,则ASK信号的一般时域表达式为:S 2ASK (t ) a n g(t nT s ) cos c tnS(t ) cos c t式中, T s 为码元间隔, g(t ) 为连续时间 Ts 2,Ts 2 内随意波形形状的脉冲(剖析时一般 设为归一化矩形脉冲) ,而 S(t) 就是代表二进制信息的随机单极性脉冲序列。
依据 ASK 相关解调的表达式:z(t ) y(t) ?cos( c t) m(t ) ? cos 2 ( c t ) m(t) ? 1 [1 cos(2 c t)] 1 m(t) 1 m(t ) cos(2c t) 2 2 2此中第 1 项是基带信号,第 2 项是频次为 2 c 的高频信号,利用低通滤波器可检出基带信 号,再经过抽样裁决,可恢复出原始信号序列。
四. 软件详尽设计、重点技术与难点、测试数据用 MATLAB 编程以下:t=0::8; % 定义时间采样值y=sin(2*pi*t); % 定义未调信号的表达式x=[ones(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),zeros(1,100) ,ones(1,100),zeros(1,101)]; % 定义载波 X 的取值z=x.*y; % 定义已调信号的表达式subplot(3,1,1) % 画第一个图plot(t,x) % 画出载波图axis([0,8,,]) % 定义范围xlabel(' 时间 ') % 定义坐标轴的名字title(' 未调信号 '); % 定义图的名字subplot(3,1,2); % 画第二个图plot(t,y) % 画出调制信号图axis([0,8,,]) % 定义范围xlabel(' 时间 ') % 定义坐标轴的名字title('载波 ')%定义图的名字subplot(3,1,3)%画出第三个图plot(t,z)%画出解调后的图axis([0,8,,]) %定义范围xlabel('时间 ')%定义坐标轴的名字title('已调信号 ');%定义图的名字仿真结果:软件中主要包括有二进制信号的产生,调制信号的产生,调制信号的解调解画图部分。
2ASK调制与解调的MATALAB仿真

数字调制与解调2ASK的仿真概述:数字调制技术在通信系统中占有非常重要的地位,数字通信技术与MA TALAB的结合是现代通信系统发展的一个必然把局势。
本文主要介绍了2ASK调制解调的原理,2ASK调制主要采用OOK 开关监控的方法,2ASK解调主要采用相干解调的方法。
文中还会介绍用MA TALAB如何实现调制解调的系统,采用MA TALAB脚本编写程序,结果表明了设计的正确性。
第一部分原理介绍2ASK信号的调制2ASK技术是通过改变载波信号的幅值变化来表示二进制0或1的。
载波0 ,1信息只改变其振幅,而频率和相位保持不变。
通常使用其最大值Acos(tω+Φ)和0分别表示1和0.有一种常用的幅值键控技术是开关键控(OOK)在OOK中,把一个幅度取为0,另一个幅度取为非0,其优点是传输信息所需的能量下降了,且调制方法简单.OOK的产生原理如图2ASK信号的解调接收端接收信号传来的2ASK信号,首先经过带通滤波器滤掉传输过程中产生的噪声干扰,再从中回复原始数据信号。
常用的解调方法有两种:包络解调法和相干解调法。
相干解调法相干解调也叫同步解调,就是利用相干波和接收到的2ASK信号相乘分离出包含原始信号的低频信号,再进行抽样判决恢复数字序列。
相干波必须是与发送端同频同相的正弦信号。
Z(t)=y(t)cos(tω)=m(t)cos2(tω)=12m(t)[1+cos(2tω)]=12m(t)+12m(t)cos(2tω).式中1/2m(t)是基带信号,1/2m(t)cos(2tω)是频率为2ω的高频信号,利用低通滤波器可检测出基带信号,再经过抽样判决,即可恢复出原始数字信号序列{a n},2ASK信号带宽为码元速率的2倍,即:B2ASK=2R b.式中R b为信息速率。
相干解调的原理图如下第二部分直接用MATLAB编程仿真利用MATLAB进行调制与解调的仿真的程序,以下是建立的M文件:编写M脚本文件对数字信号序列1101001101011001进行2ASK调制与解调进行仿真,数字信号的码元速率Rb=1000Band,载波频率为f=4kHZ.以下是仿真程序及注释。
基于MATLAB的ASK调制解调实验

基于MATLAB的ASK调制解调实验基于MATLAB 的ASK 调制解调实验1.实验⽬的(1) 熟悉MATLAB 中M ⽂件的使⽤⽅法,并在掌握ASK 调制解调原理的基础上,编写出ASK 调制解调程序。
(2) 绘制出ASK 信号解调前后在时域和频域中的波形,并观察解调前后频谱有何变化以加深对ASK 信号解调原理的理解。
(3) 对信号叠加噪声,并进⾏解调,绘制出解调前后信号的时频波形,改变噪声功率进⾏解调,分析噪声对信号传输造成的影响。
2.实验原理(1)ASK 调制原理ASK 指的是振幅键控⽅式。
这种调制⽅式是根据信号的不同,调节正弦波的幅度。
幅度键控可以通过乘法器和开关电路来实现。
载波在数字信号1或0的控制下通或断,在信号为1的状态载波接通,此时传输信道上有载波出现;在信号为0的状态下,载波被关断,此时传输信道上⽆载波传送。
那么在接收端我们就可以根据载波的有⽆还原出数字信号的1和0。
对于⼆进制幅度键控信号的频带宽度为⼆进制基带信号宽度的两倍。
幅移键控法(ASK )的载波幅度是随着调制信号⽽变化的,其最简单的形式是,载波在⼆进制调制信号控制下通断,此时⼜可称作开关键控法(OOK )。
⼆进制幅度键控记作2ASK 。
2ASK 是利⽤代表数字信息“0”或“1”的基带矩形脉冲去键控⼀个连续的载波,使载波时断时续地输出。
有载波输出时表⽰发送“1”,⽆载波输出时表⽰发送“0”。
2ASK 信号可表⽰为tw t s t e c cos )()(0=式中,cw 为载波⾓频率,s(t)为单极性NRZ 矩形脉冲序列)()(b nn nT t g a t s -=∑其中,g(t)是持续时间b T 、⾼度为1的矩形脉冲,常称为门函数;n a 为⼆进制数字-=P P a n 101,出现概率为,出现概率为2ASK/OOK 信号的产⽣⽅法通常有两种:模拟调制(相乘器法)和键控法。
本模拟幅度调制的⽅法⽤乘法器实现。
相应的调制如图5-1和图5-2:图5-1模拟相乘法图5-2键控/开关法(2)ASK 解调原理2ASK/OOK 信号有两种基本的解调⽅法:⾮相⼲解调(包络检波法)和相⼲解调(同步检测法)。
2DPSK信号处理仿真(含代码)

2DPSK信号处理仿真(含代码)按照2DPSK产生模型和解调模型分别产生2DPSK信号和高斯白噪声,经过信道传输后进行解调。
对调制解调过程中的波形进行时域和频域观察,并且对解调结果进行误码率测量。
2DPSK信号的解调可以选用非相干解调或者相干解调法。
仿真流程首先通过随机函数产生一列随机的基带信号,这里设定一共有10个码元。
然后对这10个码元进行差分变换,设定起始参考电平为0电平。
则差分序列可以由如下的公式产生:在完成差分序列的产生之后要产生对应的载波,载波采用正弦波,相位设定如下:使用载波与对应的差分序列相乘,首先生成两个ASK波形,叠加这两个ASK波形就得到DPSK调制的已调波形。
完成波形调制之后,直接在波形上叠加高斯白噪声,完成信道传输的模拟。
同时在接收端,首先进行带通滤波,滤除信道中叠加上的噪声,然后通过相干解调的方式进行解调。
让解调后的波形通过低通滤波器,对波形进行平滑处理,最后通过抽样判决判断出接收到的序列码。
对序列码采用公式进行码反变化就可以得到解调后的绝对码序列,对比发送的绝对码序列和接收到的绝对码序列就可以得到误码率。
仿真结果1)码序列:首先可以通过该仿真程序产生输入的绝对码序列和输入的相对码序列。
2)载波信号:产生两个正弦信号作为载波,一个初相为0 ,另一个初相为π。
3)调制后的波形与频谱:为了实现DPSK调制,在完成绝对码向相对码的转换之后,根据这些相对码分别生成对应的ASK调制波形,将两个ASK波形叠加就得到了DPSK的调制波形。
4)通过信道:模拟通过信道,在输入信号上增加均值为0,方差为2的高斯白噪声,得到对应的信号和频谱。
5)通过带通滤波:将接受到的通过信道的波形进行带通滤波,得到滤波后的波形和对应的频谱。
6)相干解调:对经过带通滤波之后的信号再进行相干解调,得到解调后的波形和频谱。
7)通过低通滤波:将上面解调后的信号通过低通滤波可以得到滤波后对应的波形及频谱。
8)得到解调波形及误码率:通过抽样判决得到解调出来的相对码的码序列,然后利用码反变换得到输入的绝对码序列。
matlab2ask信号调制与解调原理

matlab2ask信号调制与解调原理
MATLAB中2ASK(二进制振幅键控)信号的调制与解调原理如下:
1. 调制原理:基带码元d(t)和高频载波相乘实现2ASK信号的调制。
具体来说,如果基带码元为二进制信号,那么其幅度变化将控制载波信号的通断,从而实现数字信息的传递。
在MATLAB中,可以使用信号处理工具箱中的函数来生成2ASK信号。
2. 解调原理:2ASK信号经过信道传输之后,再和载波相乘,然后经过低通滤波后抽样判决恢复出原始基带码元信号。
解调过程中,使用一个同频同相的本地载波与要解调的信号相乘,去掉高频部分即可恢复出原始的基带码元信号。
在MATLAB中,可以使用信号处理工具箱中的函数来实现2ASK信号的解调。
需要注意的是,以上只是一种简化的2ASK调制和解调过程的描述,实际的通信系统中可能还会包括其他的信号处理过程,如信道编码、调制解调、信号同步等。
在MATLAB中进行仿真时,需要根据实际需求进行相应的设计和调整。
二进制ASK调制matlab仿真代码

function ber = sim_ASK2(snrIndB,N,flag)% 二进制ASK调制解调仿真程序% 输入% snr: 信噪比% N: 仿真比特数% flag:绘制调制解调波形标志位% 输出% y: 误码率x = round(rand(1,N));% 产生信号比特fc = 200; % 载波频率fs = 2000;% 采样频率fb = 50; % 比特频率nSamples = fs/fb;% 每比特采样数signal_in_one_bit = cos(2*pi*fc*(0:nSamples-1)/fs);% 传号space_in_one_bit = zeros(1,nSamples); % 空号limitation = sum(signal_in_one_bit.^2)/2; % 判决门限sig_ori = reshape(repmat(x,nSamples,1),1,N*nSamples); % 原始信号%% ASK调制y=zeros(1,nSamples*N);for i=1:length(x)if(x(i)==1)y((i-1)*nSamples+1:i*nSamples) = signal_in_one_bit;elsey((i-1)*nSamples+1:i*nSamples) = space_in_one_bit;endendmod_sig = y;% 调制信号%% 高斯信号传输% rec_sig = awgn(mod_sig,snr,0); % 通过高斯信道后的接收信号snr = 10^(0.1*snrIndB)/(fb/4);sigma = 1/sqrt(snr);rec_sig = awgn_gauss(mod_sig,sigma);%% ASK解调bits_judged = zeros(1,N);for i = 1:N % 逐比特处理rec_seg = rec_sig((i-1)*nSamples+1:(i*nSamples));sum_rec = rec_seg*signal_in_one_bit'; % 相关累积if(sum_rec>=limitation) % 判决bits_judged(i) = 1;elsebits_judged(i) = 0;endendx_pie = bits_judged;% 接收信号判决值ber = length(find(x~=x_pie))/N;% 误码率% 绘制调制解调结果图if(1==flag)bits_display = 30;% 绘图显示的比特数figure;subplot(411);stem(x(1:bits_display));title('原始数据比特'),xlabel('t')subplot(412);plot(mod_sig(1:bits_display*nSamples));title('调制信号'),xlabel('t')subplot(413);plot(rec_sig(1:bits_display*nSamples));title('经过信道后的接收信号'),xlabel('t')subplot(414);stem(x_pie(1:bits_display));title('解调以后的数据比特'),xlabel('t')%% 计算和绘制信号频谱[f1,powerIndB1] = getFre(sig_ori,fs);[f2,powerIndB2] = getFre(mod_sig,fs);[f3,powerIndB3] = getFre(rec_sig,fs);figuresubplot(311);plot(f1,powerIndB1); xlim([0 fs/2]);ylim([-80 10]);title('原始数据的功率谱密度');xlabel('频率(Hz)');ylabel('功率谱密度(w/Hz)');subplot(312);plot(f2,powerIndB2); xlim([0 fs/2]);ylim([-80 10]);title('调制信号的功率谱密度');xlabel('频率(Hz)');ylabel('功率谱密度(w/Hz)');subplot(313);plot(f3,powerIndB3); xlim([0 fs/2]);ylim([-80 10]);title('经过信道接收信号的功率谱密度');xlabel('频率(Hz)');ylabel('功率谱密度(w/Hz)');end。
matlabask调制解调

MATLAB中实现ASK(振幅键控)调制解调的步骤如下:
生成随机比特流:使用MATLAB的随机数生成函数生成二进制比特流。
映射比特流到振幅:将二进制比特流映射到相应的振幅值,通常使用高电平和低电平表示二进制比特流的1和0。
调制信号:使用生成的振幅信号调制高频载波信号。
通常可以使用MATLAB的信号处理函数进行调制,如modulate函数。
传输信号:将调制后的信号通过信道传输。
解调信号:在接收端,使用适当的解调方法将调制信号解调为原始比特流。
常用的解调方法包括相干解调和非相干解调。
在MATLAB中,可以使用相关函数进行相干解调,如demodulate函数。
比特流同步:在解调过程中,需要确保解调器与发送端保持同步,以便正确解调出原始比特流。
可以使用适当的同步算法实现比特流的同步。
误码率分析:最后,可以使用MATLAB的误码率分析工具计算解调后的比特流的误码率,以评估调制解调性能。
以上是MATLAB实现ASK调制解调的大致步骤。
matlab2ask调制

matlab2ask调制
MATLAB2ASK调制是一种将数字信号转化为模拟信号的调制方式。
ASK调制的基本原理是将数字信号转换为二进制数,再将二进制数映
射到不同的振幅上。
当输入数字信号为1时,输出信号的振幅为正值;当输入数字信号为0时,输出信号的振幅为零。
MATLAB2ASK调制具体实现步骤如下:
1. 生成二进制数据:首先需要生成二进制数据,可以使用MATLAB中的randi函数生成指定长度的随机整数序列。
2. 将二进制数据转换成ASK调制波形:使用MATLAB中的if语句和for循环结构将二进制数据映射到不同的振幅上,并利用plot函数绘
图显示出ASK波形。
3. 添加噪声:在实际应用中,通常会存在噪声干扰。
因此,可以使用MATLAB中的awgn函数添加高斯白噪声。
4. 解调ASK波形:解调ASK波形需要使用检测电路。
在MATLAB中可以使用envelope函数对ASK波形进行包络检测,并通过阈值判断
得到解调后的二进制数据。
5. 绘图并比较结果:最后可以通过plot函数分别绘图显示出原始数据、ASK波形、添加噪声后的ASK波形以及解调后的二进制数据,并进行比较。
总结来说,MATLAB2ASK调制是一种简单、易实现的数字信号调制方式。
通过MATLAB中提供的函数和工具箱,可以轻松地实现ASK调制,并进行相应的仿真和分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function ber = sim_ASK2(snrIndB,N,flag)
% 二进制ASK调制解调仿真程序
% 输入
% snr: 信噪比
% N: 仿真比特数
% flag:绘制调制解调波形标志位
% 输出
% y: 误码率
x = round(rand(1,N));% 产生信号比特
fc = 200; % 载波频率
fs = 2000;% 采样频率
fb = 50; % 比特频率
nSamples = fs/fb;% 每比特采样数
signal_in_one_bit = cos(2*pi*fc*(0:nSamples-1)/fs);% 传号
space_in_one_bit = zeros(1,nSamples); % 空号limitation = sum(signal_in_one_bit.^2)/2; % 判决门限
sig_ori = reshape(repmat(x,nSamples,1),1,N*nSamples); % 原始信号
%% ASK调制
y=zeros(1,nSamples*N);
for i=1:length(x)
if(x(i)==1)
y((i-1)*nSamples+1:i*nSamples) = signal_in_one_bit;
else
y((i-1)*nSamples+1:i*nSamples) = space_in_one_bit;
end
end
mod_sig = y;% 调制信号
%% 高斯信号传输
% rec_sig = awgn(mod_sig,snr,0); % 通过高斯信道后的接收信号
snr = 10^(0.1*snrIndB)/(fb/4);sigma = 1/sqrt(snr);
rec_sig = awgn_gauss(mod_sig,sigma);
%% ASK解调
bits_judged = zeros(1,N);
for i = 1:N % 逐比特处理
rec_seg = rec_sig((i-1)*nSamples+1:(i*nSamples));
sum_rec = rec_seg*signal_in_one_bit'; % 相关累积
if(sum_rec>=limitation) % 判决
bits_judged(i) = 1;
else
bits_judged(i) = 0;
end
end
x_pie = bits_judged;% 接收信号判决值
ber = length(find(x~=x_pie))/N;% 误码率
% 绘制调制解调结果图
if(1==flag)
bits_display = 30;% 绘图显示的比特数
figure;
subplot(411);stem(x(1:bits_display));title('原始数据比特'),xlabel('t')
subplot(412);plot(mod_sig(1:bits_display*nSamples));title('调制信号
'),xlabel('t')
subplot(413);plot(rec_sig(1:bits_display*nSamples));title('经过信道后的接收信号'),xlabel('t')
subplot(414);stem(x_pie(1:bits_display));title('解调以后的数据比特
'),xlabel('t')
%% 计算和绘制信号频谱
[f1,powerIndB1] = getFre(sig_ori,fs);
[f2,powerIndB2] = getFre(mod_sig,fs);
[f3,powerIndB3] = getFre(rec_sig,fs);
figure
subplot(311);plot(f1,powerIndB1); xlim([0 fs/2]);ylim([-80 10]);title('原始数据的功率谱密度');xlabel('频率(Hz)');ylabel('功率谱密度(w/Hz)');
subplot(312);plot(f2,powerIndB2); xlim([0 fs/2]);ylim([-80 10]);title('调制信号的功率谱密度');xlabel('频率(Hz)');ylabel('功率谱密度(w/Hz)');
subplot(313);plot(f3,powerIndB3); xlim([0 fs/2]);ylim([-80 10]);title('经过信道接收信号的功率谱密度');xlabel('频率(Hz)');ylabel('功率谱密度(w/Hz)');
end。