《2ASK调制与解调》 科研训练论文
subplot(221);
plot(t,s_2ask);%画出2ASK信号 axis([0 10 -1.2 1.2]); xlabel('t'); ylabel('2ASK'); %求2ASK信号功率谱
[s_2askf,s_2ask,df1,f]=T2F(s_2ask,ts,df,fs);%求出单极性NRZ信号功率谱 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');
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));%画出噪声 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_2ask(1:Lt)+noise(1:Lt);%叠加了噪声的已调信号,相当于将已调信号送入理想信道 pause%画出加噪后的已调信号2PSK及其功率谱 subplot(325)
plot(t,r);%画出加噪后的已调信号2PSK xlabel('t');
ylabel('加噪2ASK信号'); 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%画出带通滤波器
《2ASK调制与解调》 科研训练论文
[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]); 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)
《2ASK调制与解调》 科研训练论文
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');
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)=0; end end
%----画出判决出的基带信号波形,并和调制信号比较 rr=sigexpand(panjue,fc*N_sample); rrt=ones(1,fc*N_sample); % NRZ波形 huifu_NRZ=conv(rr,rrt);
pause%观察调制信号和解调信号波形 subplot(224)
《2ASK调制与解调》 科研训练论文
plot(t,d_NRZ(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%计算出错误码元数 ylabel('2ASK信号PDF'); clear all; close all; echo on
%------------------系统仿真参数 A=1; %载波振幅 fc=2; %载波频率(Hz) snr=10; %信噪比dB
N_sample=8;% 基带信号中每个码元的的采样点数 N=10000; % 码元数 Ts=1; % 码元宽度 df=0.01%频率分辨率 B=1/Ts; f_start=fc-B; f_cutoff=fc+B;
fs=fc*N_sample%系统采样频率,即考虑载波后,一个码元内的采样点数 ts=Ts/fs; % 系统采样间隔 t=0:ts:N*Ts-ts; Lt=length(t);
%-----------画出调制信号波形及功率谱 % 产生二进制信源 d=sign(randn(1,N));
dd=sigexpand((d+1)/2,fc*N_sample); gt=ones(1,fc*N_sample); % NRZ波形 d_NRZ=conv(dd,gt); d_NRZ1=d_NRZ(1:Lt);
pause%画出单极性NRZ波形及其功率谱 figure(1) subplot(211);
plot(t,d_NRZ1);% 画出单极性NRZ信号波形 axis([0 10 0 1.2]); xlabel('t');
《2ASK调制与解调》 科研训练论文
ylabel('单极性信号'); subplot(212);
[d_NRZ1f,d_NRZ1,df1,f]=T2F(d_NRZ1,ts,df,fs);%求出单极性NRZ信号功率谱 plot(f,10*log10(abs(fftshift(d_NRZ1f).^2/length(f))));% 画出单极性NRZ信号功率谱 axis([-3*B 3*B -50 0]); xlabel('f');
ylabel('单极性信号功率谱');
pause%画出双极性NRZ波形及其功率谱 ht=A*sin(2*pi*fc*t);%载波
s_2ask=d_NRZ(1:Lt).*ht;%生成已调信号2ASK pause%画出已调信号2ASK及其功率谱 figure(2) subplot(211);
plot(t,s_2ask);%画出2ASK信号 axis([0 10 -1 1]); xlabel('t'); ylabel('2ASK'); %求2ASK信号功率谱
[s_2askf,s_2ask,df1,f]=T2F(s_2ask,ts,df,fs);%求出单极性NRZ信号功率谱 subplot(212);
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的功率谱')
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);%以噪声均方差作为幅度产生高斯白噪声 %----------------将已调信号送入信道
r=s_2ask(1:Lt)+noise(1:Lt);%叠加了噪声的已调信号,相当于将已调信号送入理想信道 [H,f]=bp_f(length(s_2askf),f_start,f_cutoff,df1,fs,1);%经过理想带通滤波器 DEM = H.*s_2askf; %滤波器输出的频谱 [dem]=F2T(DEM,fs);%滤波器的输出波形 dem1=dem(1:Lt)
pause%经过理想带通滤波器后的信号波形及功率谱 figure(3)
subplot(211)%经过理想带通滤波器后的信号波形 plot(t,dem1)%画出经过理想带通滤波器后的信号波形 axis([0 10 -1 1]); xlabel('t');
ylabel('理想BPF输出信号');
[demf1,dem1,df1,f]=T2F(dem1,ts,df,fs);%求经过理想带通滤波器后信号功率谱 subplot(212)