一、实验目的
了解多进制数字信号MASK波形特点,掌握MASK调制解调系统的构成,基带信号、载波和MASK已调信号之间的关系;掌握利用matlab对MASK进行仿真的分析方法。
二、实验任务
利用matlab实现对4ASK信号调制与解调的仿真,其中原消息代码频率为6240Hz,分别给出:
(1)消息信号、4ASK信号和解调信号的波形;
(2)给出4ASK信号在AWGN信道下的误码率和误比特率性能,并与理论值相比较。利用matlab仿真软件编写程序,完成相应实验内容。
简述4ASK调制解调系统的工作原理和程序设计思路,分别给出(1)无噪声时,消息信号、4ASK信号和解调信号的波形;(2)加入AWGN时,给出BER、SER和理论值随SNR变化的曲线。
三、部分实验代码
clc,clear;
f=624*10; %信号频率
T=1/f;
N=500; % 码元个数
Ns=100; %单个码元采样点数
fs=2000000; % 采样频率
dt=T/Ns;
fc=1000000; %载波频率
%%基带信号
t=0:dt:(N*Ns-1)*dt; % 限定t的取值范围
data=randi(4,1,N)-1;
mt=zeros(1,N); % 创建一个1*N的零矩阵
for q=1:N
mt((q-1)*Ns+1:q*Ns)=data(q); % 产生基带信号
end
%调制
t0=0:0.0000001:0.05;
Fc=cos(2*pi*fc*t0); %载波信号
Ask2=mt.*Fc(1:length(t));
%解调
mt1=Ask2.*Fc(1:length(t)); %相干解调
%滤波器
fp=2*f; % 低通滤波器截止频率
b=fir1(30, fp/fs,hamming(31)); % 这里是生成了30阶的汉明窗滤波器
[h,w]=freqz(b, 1,512); % 生成fir滤波器的频率响应
lvbo=fftfilt(b,mt1); % 对信号进行滤波
%抽样判决
M=length(lvbo);
pdst=zeros(1,M);
for i=1:Ns:M
k=0.25;
temp=max(lvbo(i+40:i+Ns-1));
if temp>=1.25
pdst(i:i+Ns-1)=3;
elseif 3*k<temp && temp<=5*k
pdst(i:i+Ns-1)=2;
elseif k<temp && temp<=3*k
pdst(i:i+Ns-1)=1;
else pdst(i)=0;
end
end
figure(1);
subplot(411);plot(mt);title('基带信号');axis([0 1000 -0.5 3.5]);
subplot(412);plot(Ask2);title('4Ask信号');axis([0 1000 -3.5 3.5]);
subplot(414);plot(pdst);title('解调滤波后的信号');axis([0 1000 -0.5 3.5]);
subplot(413);plot(lvbo);title('低通滤波后的信号');axis([0 1000 -0.5 3.5]);
四、实验结果
图1 无噪声情况下消息信号、4ASK信号和解调信号的波形仿真结果
图2 有噪声情况下消息信号、4ASK信号和解调信号的波形仿真结果(SNR=20)
图3 误码率与信噪比关系曲线
如需要完整的代码和实验报告,请自行付积分查看,链接如下: