《2ASK调制与解调》 科研训练论文
subplot(222);
plot(f,10*log10(abs(fftshift(s_2askf).^2/length(f))));% 画出单极性NRZ信号功率谱 axis([-fc-3*B fc+3*B -50 0]); xlabel('f');
ylabel('2ASK信号PDF');
% 对数字基带信号进行2FSK调制
s_2fsk=A*cos(2*pi*fc*t+2*pi*d_sjx(1:Lt).*t);%生成2FSK信号 pause%画出已调信号2FSK及其功率谱 subplot(223)
plot(t,s_2fsk);%画出2FSK波形 axis([0 10 -1.2 1.2]); xlabel('t'); ylabel('2FSK'); subplot(224)
[s_2fskf,s_2fsk,df1,f]=T2F(s_2fsk,ts,df,fs);%求2FSK信号功率谱 plot(f,10*log10(abs(fftshift(s_2fskf).^2/length(f))));% 画出2FSK功率谱 axis([-fc-3*B fc+3*B -50 0]); xlabel('f');
ylabel('2FSK信号PDF');
% 对数字基带信号进行2PSK调制 s_2psk=d_sjx(1:Lt).*ht;%生成2PSK信号 pause%画出已调信号2PSK及其功率谱 figure(3) subplot(321)
plot(t,s_2psk);%画出2PSK波形 axis([0 10 -1.2 1.2]); xlabel('t'); ylabel('2PSK'); subplot(322)
[s_2pskf,s_2psk,df1,f]=T2F(s_2psk,ts,df,fs);%求2PSK信号功率谱
plot(f,10*log10(abs(fftshift(s_2pskf).^2/length(f))));% 画出2PSK信号功率谱 axis([-fc-3*B fc+3*B -50 0]); xlabel('f');
ylabel('2PSK信号PDF');
%-----------将2PSK信号送入信道进行传输,先生成信道加性高斯白噪声噪声 snr_lin=10^(snr/10); %换算成倍数
signal_energy=0.5*A^2*Ts;%求出接收信号平均能量
noise_power=( signal_energy *fs)/(snr_lin*4);%求出噪声方差(噪声均值为0) noise_std=sqrt(noise_power);%求出噪声均方差
noise=noise_std.*randn(1,Lt);%以噪声均方差作为幅度产生高斯白噪声 %----------------将已调信号送入信道 pause%画出信道中的高斯白噪声及其功率谱 subplot(323)
plot(t,noise(1:Lt));%画出噪声
《2ASK调制与解调》 科研训练论文
xlabel('t'); ylabel('信道噪声'); axis([0 10 -3 3]);
[noisef,noise,df1,f]=T2F(noise,ts,df,fs);%求信道噪声功率谱 subplot(324)
plot(f,10*log10(abs(fftshift(noisef).^2/length(f))));% 画出信道噪声功率谱 axis([-fs/2-2 fs/2+2 -50 0]); xlabel('f');
ylabel('信道噪声PDF');
r=s_2psk(1:Lt)+noise(1:Lt);%叠加了噪声的已调信号,相当于将已调信号送入理想信道 pause%画出加噪后的已调信号2PSK及其功率谱 subplot(325)
plot(t,r);%画出加噪后的已调信号2PSK xlabel('t');
ylabel('加噪2PSK信号'); axis([0 10 -3 3]);
[rf,r,df1,f]=T2F(r,ts,df,fs);%求加噪后的已调信号2PSK功率谱 subplot(326)%画出加噪后已调信号的功率谱
plot(f,10*log10(abs(fftshift(rf).^2/length(f))));% 画出已调信号2PSK功率谱 axis([-fc-3*B fc+3*B -50 0]); xlabel('f');
ylabel('加噪2PSK信号PDF');
%-----在接收端准备进行解调,先通过带通滤波器 pause%画出带通滤波器
[H,f]=bp_f(length(rf),f_start,f_cutoff,df1,fs,1);%经过理想带通滤波器 figure(4) subplot(322)
plot(f,abs(fftshift(H)));% 画出理想带通滤波器 axis([-fc-3*B fc+3*B -0.2 1.2]); xlabel('f'); ylabel('理想BPF');
DEM = H.*rf; %滤波器输出的频谱 [dem]=F2T(DEM,fs);%滤波器的输出波形 dem1=dem(1:Lt)
pause%经过理想带通滤波器后的信号波形及功率谱 subplot(323)%经过理想带通滤波器后的信号波形 plot(t,dem1)%画出经过理想带通滤波器后的信号波形 axis([0 10 -4 4]); xlabel('t');
ylabel('理想BPF输出信号');
[demf1,dem1,df1,f]=T2F(dem1,ts,df,fs);%求经过理想带通滤波器后信号功率谱 subplot(324)
plot(f,10*log10(abs(fftshift(demf1).^2/length(f))));% 画出经过理想带通滤波器后信号功率谱 axis([-fc-3*B fc+3*B -50 0]);
《2ASK调制与解调》 科研训练论文
xlabel('f');
ylabel('理想BPF输出信号PDF');
%-----进行相干解调,先和本地载波相乘,即混频 subplot(325)%画出同频同相的本地载波 plot(t,ht);
axis([0 10 -1.2 1.2]); xlabel('t'); ylabel('本地载波');
subplot(326)% 本地载波频谱 [htf,ht,df1,f]=T2F(ht,ts,df,fs);
plot(f,fftshift(abs(htf)))% 画出载波频谱 axis([-fc-3*B fc+3*B 0 15]); xlabel('f');
ylabel('本地载波频谱');
pause%画出混频后的信号及功率谱 figure(5)
der=dem1(1:Lt).*ht(1:Lt);%和本地载波相乘,即混频 subplot(221)%画出混频后的波形 plot(t,der); axis([0 10 -2 2]); xlabel('t');
ylabel('混频后的信号');
[derf,der,df1,f]=T2F(der,ts,df,fs);%求混频后信号的功率谱 subplot(222)
plot(f,10*log10(abs(fftshift(derf).^2/length(f))));%画出混频后的功率谱 axis([-fc-3*B fc+3*B -50 0]); xlabel('f');
ylabel('混频后信号的PDF'); %---------------再经过低通滤波器 pause%画出理想低通滤波器
[LPF,f]=lp_f(length(derf),B,df1,fs,1);%求低通滤波器 subplot(224) % 画出理想低通滤波器 plot(f,fftshift(abs(LPF))); axis([-fc-3*B fc+3*B -0.2 1.2]); xlabel('f'); ylabel('理想LPF');
pause%混频信号经理想低通滤波器后的波形及功率谱 DM = LPF.*derf; %理想低通滤波器输出信号频谱 [dm]=F2T(DM,fs); %理想低通滤波器的输出波形 figure(6) subplot(221)
plot(t,dm(1:Lt));%画出经过低通滤波器后的解调出的波形 axis([0 10 -1.2 1.2]); xlabel('t');
《2ASK调制与解调》 科研训练论文
ylabel('LPF输出信号'); subplot(222)
[dmf,dm,df1,f]=T2F(dm,ts,df,fs);%求LPF输出信号的功率谱
plot(f,10*log10(abs(fftshift(dmf).^2/length(f))));%画出LPF输出信号的功率谱 axis([-fc-3*B fc+3*B -50 0]); xlabel('f');
ylabel('LPF输出信号功率谱'); %-------最后对LPF输出信号抽样判决 dm= dm(1:Lt);
panjue=zeros(1,N);%建立存储判决值的矩阵 %抽样判决,规则:大于等于0判1,小于0判-1 for i=1:N;
if dm(fc*N_sample*(i-1)+fc*N_sample/2+1)>=0;%抽样判决时刻 panjue(i)=1; else
panjue(i)=-1; end end
%----画出判决出的基带信号波形,并和调制信号比较 rr=sigexpand(panjue,fc*N_sample); rrt=ones(1,fc*N_sample); % NRZ波形 huifu_NRZ=conv(rr,rrt);
pause%观察调制信号和解调信号波形 subplot(224)
plot(t,d_sjx(1:Lt));%调制信号波形 axis([0 10 -1.2 1.2]); xlabel('t'); ylabel('调制信号'); subplot(223)
plot(t,huifu_NRZ(1:Lt));%解调信号波形 axis([0 10 -1.2 1.2]); xlabel('t'); ylabel('解调信号');
%-------------------统计误码数
numoferr=sum(abs(panjue-d)/2)/N%计算出错误码元数 clear all close all
A=1; %载波振幅 fc=2; %载波频率(Hz)
SNRindB1=-5:1:12; % 信噪比取值向量,dB为单位 SNRindB2=-5:0.2:12; % 信噪比取值向量,dB为单位 N_sample=100;%每个码元的的采样点数 N=10000; % 码元数
《2ASK调制与解调》 科研训练论文
Ts=1; % 码元宽度
d=sign(rand(1,N)-0.5+eps);%产生双极性二进制码元 df=0.01;
simu_err_prb=zeros(1,length(SNRindB1)); %理论误码率
for i=1:length(SNRindB2) % 计算信噪比值
SNR=10^(SNRindB2(i)/10); % 计算普通接收机的理论误码率。
theo_err_prb(i)=0.5*erfc(sqrt(SNR));%一般蒙特卡洛仿真是针对最佳接收机的,对于来自同一信道的接收信号,信道高斯噪声的功率谱密度是不变的,最佳接收机性能之所以比一般接收机好,是由于其输入信噪比是一般接收机的2倍(一般接收机带通滤波器带宽按2/Ts计算);故信道高斯白噪声的单边带功率谱密度即可按最佳接收机设计,也可按普通接收机设计。 %互补误差函数
theo_err_prb1(i)=0.5*erfc(sqrt(2*SNR));%最佳接收机理论误码率曲线 end
%计算普通接收机实际误码率 for i=1:length(SNRindB1)
[numoferr,panjue,desingal,t]=bpskberr(A,fc,SNRindB1(i),N_sample,N,Ts,d,df); simu_err_prb(i)=numoferr; end
% 误码率曲线图:估计值和理论值曲线对比图
semilogy(SNRindB2,theo_err_prb,SNRindB1,simu_err_prb,'o',SNRindB2,theo_err_prb1,'*'); axis([-5 12 0.00000001 1]); xlabel('SNR in dB'); ylabel('Prb of Err');
legend('普通接收机理论误码率','普通接收机实际误码率','最佳接收机理论误码率'); clear all; close all; echo on
A=1; %载波振幅 fc=2; %载波频率(Hz) snr=10; %信噪比dB
N_sample=8;% 基带信号中每个码元的的采样点数 N=408; % 码元数 Ts=1; % 码元宽度 df=0.01%频率分辨率 B=1/Ts; f_start=fc-B; f_cutoff=fc+B;
fs=fc*N_sample%系统采样频率,即考虑载波后,一个码元内的采样点数 ts=Ts/fs; % 系统采样间隔