clear all;
clc;
Ts = 1; %码元周期
fs = 1000; %采样频率
N_sample = 1000; %单个码元抽样点数
fc1 = 5; %载波频率1
fc2 = 15; %载波频率2
dt = Ts/fs; %抽样的时间间隔
N = 200; %码元数
t = 0:dt:(N*fs-1)*dt; %定义时间矢量(波形图的横坐标)
df = fs/length(t);
f = -fs/2:df:fs/2-df; %定义频率矢量(频谱图的横坐标)
% 生成随机序列
gt = ones(1, N_sample); % NRZ
RAN = round(rand(1, N)); % 随机0 1序列
ct1 = cos(2*pi*fc1*t);
ct1_t = ct1(1:1000);
ct2 = cos(2*pi*fc2*t);
ct2_t = ct2(1:1000);
se = [];
mt = [];
for i = 1 : N % 生成序列
if RAN(i)==1
se = [se gt];
mt = [mt ct2_t];
else
se = [se zeros(1, N_sample)];
mt = [mt ct1_t];
end
end
%1 产生基带信号以及进行FSK调制信号
figure(1)
subplot(211);
plot(t, se);
grid on;axis([0 8 -0.1 1.1]);
title('单极性二进制不归零基带信号');
xlabel('时间(s)'); ylabel('电压值(V)');
subplot(212);
plot(t, mt);
grid on;axis([0 8 -1.1 1.1]);
title('2FSK调制信号');
xlabel('时间(s)'); ylabel('电压值(V)');
%基带信号功率谱
figure(2)
f1=fft(se);
fmt = fftshift(f1);
fmtA=abs(fmt);
fmtA_dB=fmtA.^2/Ts;
maxF=max(fmtA_dB);
fmtA_dB=fmtA_dB/maxF;
fmtA_dB=10*log10(fmtA_dB+eps);
subplot(211);
plot(f,fmtA_dB,'LineWidth',1);
grid on;axis([-5 5 -160 0])
title('单极性不归零二进制基带信号功率谱密度');
xlabel('频率(Hz)');ylabel('功率谱幅度值(dB)');
%FSK调制信号功率谱
f2=fft(mt);
fmt2 = fftshift(f2);
fmtA2=abs(fmt2);
fmtA2_dB=fmtA2.^2/Ts;
maxF2=max(fmtA2_dB);
fmtA2_dB=fmtA2_dB/maxF2;
fmtA2_dB=10*log10(fmtA2_dB+eps);
subplot(212);
plot(f,fmtA2_dB,'LineWidth',1);
grid on;axis([-25 25 -150 0])
title('2FSK调制信号功率谱密度');
xlabel('频率(Hz)');ylabel('功率谱幅度值(dB)');
%2 叠加高斯白噪声
figure(3);
add_noise=awgn(mt,10,'measured');
subplot(211);
plot(t,mt);
grid on;axis([0 8 -1.1 1.1])
title('FSK调制信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(t,add_noise);
grid on;axis([0 8 -2 2])
title('叠加噪声后的FSK调制信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');
%3 以f1(5Hz)为中心的低通滤波
figure(4)
noise_f=fft(add_noise);
fpass = 0; % fpass设置为0得到的就是低通滤波
fstop = 8; %通带的截止频率为8Hz
[fk1,mf10] = IdealFilter(length(t),fs,fpass,fstop,noise_f);
mf1 = abs(fftshift(mf10));
mt1=ifft(mf10,length(t));
subplot(211);
plot(t,mt1);
grid on;axis([0 8 -1.1 1.1])
title('FSK调制信号理想低通滤波后信号波形图(mt1)');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(fk1,mf1);
grid on;axis([-30 30 0 4.2*10^4]);
title('FSK调制信号理想低通滤波结果(f1)');
xlabel('(频率Hz)');ylabel('频谱幅度值');
%4 以f2(10Hz)为中心的低通滤波
figure(5);
fpass = 8;
fstop = 16; %通带的截止频率为16Hz
[fk2,mf20] = IdealFilter(length(t),fs,fpass,fstop,noise_f);
mf2 = abs(fftshift(mf20));
mt2=ifft(mf20,length(t));
subplot(211);
plot(t,mt2);
grid on;axis([0 8 -1.1 1.1])
title('FSK调制信号理想带通滤波后信号波形图(mt2)');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(fk1,mf2);
axis([-30 30 0 4.2*10^4]);grid on;
title('FSK调制信号理想带通滤波结果(f2)');
xlabel('(频率Hz)');ylabel('频谱幅度值');
%5 以频率f1的载波对m1(t)进行全波整流
figure(6)
qmt1=abs(mt1);
fqmt10=fft(qmt1);
fqmt1 = fftshift(fqmt10);
subplot(211);
plot(t,qmt1);
grid on;axis([0 8 -0.1 1.2])
title('m1(t)全波整流信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(f,fqmt1);
grid on;axis([-30 30 0 6.4*10^4])
title('m1(t)全波整流信号的幅频特性');
xlabel('频率(Hz)');ylabel('频谱幅度值(dB)');
%6 对m1(t)全波整流后的信号进行低通滤波,得到包络
figure(7);
fpass = 0; % fpass设置为0得到的就是低通滤波
fstop = 8; %通带的截止频率为5Hz
[fk3,fmt30] = IdealFilter(length(t),fs,fpass,fstop,fqmt10);
spf3 = fftshift(fmt30);
envelope1=ifft(fmt30,length(t));
envelope1=abs(envelope1);
subplot(211);
plot(t,envelope1);
grid on;axis([0 8 0 0.8])
title('m1(t)包络检波信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(fk3,abs(spf3));
axis([-15 15 0 6.2*10^4]) ;grid on;
title('m1(t)包络检波信号的幅频特性');
xlabel('(频率Hz)');ylabel('频谱幅度值');
%7 以频率f2的载波对m2(t)进行全波整流
figure(8);
qmt2=abs(mt2);
fqmt20=fft(qmt2);
fqmt2 = fftshift(fqmt20);
subplot(211);
plot(t,qmt2);
grid on;axis([0 8 -0.1 1.2])
title('m2(t)全波整流信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(f,fqmt2);
grid on;axis([-30 30 0 6.4*10^4])
title('m2(t)全波整流信号的幅频特性');
xlabel('频率(Hz)');ylabel('频谱幅度值(dB)');
%8 对m2(t)全波整流后的信号进行低通滤波,得到包络
figure(9)
fpass = 0; % fpass设置为0得到的就是低通滤波
fstop = 8; %通带的截止频率为8Hz
[fk4,fmt40] = IdealFilter(length(t),fs,fpass,fstop,fqmt20);
spf4 = fftshift(fmt40);
envelope2=ifft(fmt40,length(t));
envelope2=abs(envelope2);
subplot(211);
plot(t,envelope2);
grid on;axis([0 8 0 0.8])
title('m2(t)包络检波信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(fk4,abs(spf4));
axis([-15 15 0 6.2*10^4]);grid on;
title('m2(t)包络检波信号的幅频特性');
xlabel('(频率Hz)');ylabel('频谱幅度值');
%9 采样判决
figure(10)
de1=zeros(1,length(t)+fs/2);
for i = 0:N-1
if qmt1((0.5*Ts+i)*fs) >= 0.3 %得到波形图
de1((0.5*Ts+i)*fs:(0.5*Ts+i+1)*fs-1) = gt;
else
de1((0.5*Ts+i)*fs:(0.5*Ts+i+1)*fs-1) = zeros(1, N_sample);
end
end
de1=de1(1:200000);
de2=zeros(1,length(t)+fs/2);
for i = 0:N-1
if qmt2((0.5*Ts+i)*fs) >= 0.3 %得到波形图
de2((0.5*Ts+i)*fs:(0.5*Ts+i+1)*fs-1) = gt;
else
de2((0.5*Ts+i)*fs:(0.5*Ts+i+1)*fs-1) = zeros(1, N_sample);
end
end
de2=de2(1:200000);
judge_signal=zeros(1,length(t)+fs/2);
for i=1:(N*fs)
if de1(i)>=de2(i) %得到波形图
judge_signal(i) =0;
else
judge_signal(i) =1;
end
end
judge_signal=judge_signal(1:200000);
subplot(211);
plot(t,se);
grid on;axis([0 8 -0.1 1.1])
title('发送端的被调制信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');
subplot(212);
plot(t,judge_signal);
grid on;axis([0 8 -0.1 1.1])
title('接收采样判决后恢复的被调制信号波形图');
xlabel('时间(s)');ylabel('电压值(V)');