www.gusucode.com > matlab编程一个频分复用系统的模拟源码程序 > matlab编程一个频分复用系统的模拟源码程序/code/DSP_test/text_2FSK.m
%2FSK调制与解调测试程序 clc;clear all;close all; n0=1024; x=[0 1 0]; x=snrz(x,n0); Fs=270000; Ts=1/Fs; t=-Ts:Ts/n0:2*Ts-Ts/n0; n=length(x); figure(1);plot(t,x); axis([-Ts 2*Ts -0.5 1.5]); f1=30000; w1=2*pi*30000-2*pi*4200; w2=2*pi*30000+2*pi*4200; f1p_mod_LPF=3000;f1s_mod_LPF=3500; rp=3;rs=30; w1p_mod_LPF=2*f1p_mod_LPF/Fs;w1s_mod_LPF=2*f1s_mod_LPF/Fs; LPF_Modb1=fir1(80,w1s_mod_LPF); LPF_Moda1=1; [LPF_Modh1 fw]=freqz(LPF_Modb1,LPF_Moda1,256); y_2fsk=filter(LPF_Modb1,LPF_Moda1,x); Y_2fsk=fft(y_2fsk); figure();plot(abs(Y_2fsk)); for i=1:n if x(i)==1 y_2fsk(i)=cos(w1*i/Fs); else y_2fsk(i)=cos(w2*i/Fs); end end %figure(2);plot(t,y_2fsk); Y_2fsk=fft(y_2fsk); figure();plot(abs(Y_2fsk)); y=y_2fsk; N=80; f1_Dem_BPFp=[f1-3000 f1+3000]; f1_Dem_BPFs=[f1-3500 f1+3500]; w1_Dem_BPFp=2*f1_Dem_BPFp/Fs; w1_Dem_BPFs=2*f1_Dem_BPFs/Fs; BPF_Demb11=fir1(N,w1_Dem_BPFs-2*pi*2300/Fs); BPF_Demb12=fir1(N,w1_Dem_BPFs+2*pi*2300/Fs); BPF_Dema11=1;BPF_Dema12=1; [BPF_Demh11 fw]=freqz(BPF_Demb11,BPF_Dema11,256); [BPF_Demh12 fw]=freqz(BPF_Demb12,BPF_Dema12,256); fw=fw./pi; figure(); hold on plot(fw,abs(BPF_Demh11),'r'); plot(fw,abs(BPF_Demh12),'g'); hold off y11_Dem_BPF=filter(BPF_Demb11,BPF_Dema11,y); y12_Dem_BPF=filter(BPF_Demb12,BPF_Dema12,y); y11_Dem_BPF=y11_Dem_BPF+y12_Dem_BPF; Y11_Dem_BPF=fft(y11_Dem_BPF); figure();plot(abs(Y11_Dem_BPF)); dt=1/Fs; %微分器 for i=1:n-1 y1(i)=(y11_Dem_BPF(i+1)-y11_Dem_BPF(i))/dt; end %包络检波 y1=abs(hilbert(y1)); zero1=(max(y1)-min(y1))/2; y1=y1-zero1; y1(1,n)=0; f1p_Dem_LPF=2900;f1s_Dem_LPF=3100; w1p_Dem_LPF=2*f1p_Dem_LPF/Fs;w1s_Dem_LPF=2*f1s_Dem_LPF/Fs; LPF_Demb1=fir1(N,w1s_Dem_LPF); LPF_Dema1=1; [LPF_Demh1 fw]=freqz(LPF_Demb1,LPF_Dema1,256); y1_LPF=filter(LPF_Demb1,LPF_Dema1,y1); figure();plot(y1_LPF);