二进制数字(2ASK)载波调制解调仿真设计(matlab仿真)

一、实验目的

        了解二进制数字信号2ASK波形特点,掌握2ASK调制解调系统的构成,基带信号、载波和2ASK已调信号之间的关系;掌握利用matlab对2ASK进行仿真的分析方法。

二、实验任务

利用matlab实现对2ASK信号调制与解调的仿真,其中设定码元个数为42,分别给出:

(1)消息信号、2ASK信号和解调信号的波形;

(2)给出2ASK信号在AWGN信道下的误码率和误比特率性能,并与理论值相比较。利用matlab仿真软件编写程序,完成相应实验内容。

简述2ASK调制解调系统的工作原理和程序设计思路,分别给出(1)无噪声时,消息信号、2ASK信号和解调信号的波形;(2)加入AWGN时,给出BER、SER和理论值随SNR变化的曲线。

三、实验代码

2ASK在无噪声情况下的调制与解调代码:

clc,clear;
i=42;                    %42个码元
j=42000;
t=linspace(0,42,j);     	%0~42之间产生42000个点行向量,即分成42000份
fc=1;                    %载波频率
fm=i;                    %码元速率
%产生基带信号
x=(rand(1,i))             %rand函数产生在0~1之间随机数,共42个
a=round(x);              %随机序列,round取最接近小数的整数
st=t;
for n=1:i 
if a(n)<1
for m=j/i*(n-1)+1:j/i*n
st(m) = 0; 
end
else
for m=j/i*(n-1)+1:j/i*n 
st(m)=1; 
end
end
end
figure(1);
subplot(221); 
plot(t,st);
axis([0,42,-0.2,1.2]); 
title('基带信号');
s1=cos(2*pi*fc*t);            		%载波 
subplot(222); 
plot(t,s1);
axis([0,42,-1.2,1.2]); 
title('载波信号');
e_2ask=st.*s1;               		%调制 
subplot(223); 
plot(t,e_2ask);
axis([0,42,-1.2,1.2]); 
title('已调信号');
at = e_2ask.*cos(2*pi*fc*t);        %相干解调

at=at-mean(at);                  %因为是单极性波形,还有直流分量,应去掉 
[f,af]= T2F(t,at);                  %通过低通滤波器 
[t,at]= lpf(f,af,2*fm);           
%采样判决
for m=0:i-1
if at(1,m*1000+500)+0.5<0.5
for j=m*1000+1:(m+1)*1000
at(1,j)=0;
end
else
for j=m*1000+1:(m+1)*1000
at(1,j)=1;
end
end
end
subplot(224); 
plot(t,at);
axis([0,42,-0.2,1.2]); 
title('相干解调后波形');

function [f,sf]= T2F(t,st)
%利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。
%函数T2F,计算信号的傅立叶变换。
%Input is the time and the signal vectors,the length of time must greater
%than 2
%Output is the frequency and the signal spectrum
dt = t(2)-t(1);
T=t(end);
df = 1/T;
N = length(st);
f=-N/2*df : df : N/2*df-df;
sf = fft(st);
sf = T/N*fftshift(sf);
end

function [t,st]=F2T(f,sf)
%计算信号的反傅立叶变换。
%This function calculate the time signal using ifft function for the input
df = f(2)-f(1);
Fmx = ( f(end)-f(1) +df);
dt = 1/Fmx;
N = length(sf);
T = dt*N;
%t=-T/2:dt:T/2-dt;
t = 0:dt:T-dt;
sff = fftshift(sf);
st = Fmx*ifft(sff);
end

function [t,st]=lpf(f,sf,B)
%This function filter an input data using a lowpass filter
%Inputs: f: frequency samples
% sf: input data spectrum samples
% B: lowpass bandwidth with a rectangle lowpass
%Outputs: t: time samples
% st: output data time samples
df = f(2)-f(1);
T = 1/df;
hf = zeros(1,length(f));            %全零矩阵
bf = [-floor( B/df ): floor( B/df )] + floor( length(f)/2 );
hf(bf)=1;
yf=hf.*sf;
[t,st]=F2T(f,yf);
st = real(st);
end

四、实验结果

图1  无噪声下消息信号、2ASK信号和解调信号的波形

图2 有噪声下消息信号、2ASK信号和解调信号的波形(码元个数42)

图4  误比特数和误码率(SNR=10)

图5  误码率和信噪比之间的关系曲线

如需要完整的matlab仿真代码和实验报告,请自行付积分查看,链接如下:

二进制数字(2ASK)载波调制解调仿真设计(matlab仿真)资源-CSDN文库

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ASK调制解调数字通信的一种基本调制解调方式,主要用于在基带信号上载波调制解调数字信号。MATLAB是一种非常流行的工具,可用于信号处理、调制解调通信系统仿真等许多领域。下面是使用MATLAB进行ASK调制解调仿真的步骤。 1. 生成二进制数字信号 首先,我们需要生成一个二进制数字信号(01序列),可使用MATLAB中的randi()函数生成。例如,可使用以下语句生成20个随机的01数字: seq = randi([0 1],1,20); 2. 将数字信号转换为ASK调制信号 将数字信号转换为ASK调制信号可使用MATLAB中的pammod()函数,此函数将数字信号映射到幅度为1的载波上。例如,可使用以下语句将数字信号转换为ASK信号: fs = 100; fc = 10; % 采样频率和载波频率 x_ask = pammod(seq,2,-1,'gray') * cos(2 * pi * fc * (0:length(seq)-1) / fs); 3. 将ASK信号传输至信道 将ASK信号传输至信道,可以使用MATLAB中的awgn()函数模拟加性高斯白噪声通道。例如,可使用以下语句添加信道噪声: snr = 10; %信噪比 y_ask = awgn(x_ask,snr); 4. 将接收信号进行ASK解调 将接收信号进行ASK解调,可以使用MATLAB中的pamdemod()函数解调,此函数将接收信号的幅度检测,并将其映射回原始数字信号。例如,可使用以下语句将接收信号解调: z_ask = pamdemod(y_ask,2,-1,'gray'); 5. 比较发送和接收信号 比较发送和接收信号,并计算误码率。可使用MATLAB中的biterr()函数来计算错误的数据位数。例如,可使用以下语句比较发送和接收信号,并输出错误位数和误码率: [num_err,err_rate] = biterr(seq, z_ask); disp(['错误位数:',num2str(num_err)]); disp(['误码率:',num2str(err_rate)]); 通过以上简单的步骤,可以实现ASK调制解调MATLAB仿真,以便更好地理解数字通信基础知识和实现通信系统开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.求

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

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

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

打赏作者

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

抵扣说明:

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

余额充值