赞
踩
了解二进制数字信号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仿真代码和实验报告,请自行付积分查看,链接如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。