www.gusucode.com > matlab编程一个频分复用系统的模拟源码程序 > matlab编程一个频分复用系统的模拟源码程序/code/DSP_test/main.m
%频分复用系统的实现 % % % % %-----------------分割线---------------------------------------- clc;clear all;close all; %原始信号的产生 %码元速率270Kbps Fs=270*10^3; x1=[0 1 1 0 1]; x2=[0 1 1 0 1]; x3=[0 1 1 0 1]; [y1 n1]=snrz(x1); [y2 n2]=snrz(x2); [y3 n3]=snrz(x3); t=0:5/Fs/n1:5/Fs-5/Fs/n1; Y1=fft(y1); % Y2=fft(y2); % Y3=fft(y3); figure(); plot(t,y1); f=0:1/n1:0.5; figure(); %hold on subplot(3,1,1);plot(f,abs(Y1(1:n1/2+1)),'r'); %plot(abs(Y2(1:n1/2+1)),'g'); %plot(abs(Y3),'b'); %hold off %-----------------分割线---------------------------------------- %低通滤波 LPF_Modb1=fir1(40,0.02); LPF_Modh1=freqz(LPF_Modb1,1,256); subplot(3,1,2);plot(linspace(0,1,256),abs(LPF_Modh1)); y1=filter(LPF_Modb1,1,y1); y2=filter(LPF_Modb1,1,y2); y3=filter(LPF_Modb1,1,y3); Y1=fft(y1); subplot(3,1,3);plot(f,abs(Y1(1:n1/2+1)),'r'); %-----------------分割线---------------------------------------- %数字带通调制 w0=0.2*10^6;%频率间隔 w1=900*10^6; w2=w1+5*w0; w3=w1+10*w0; y1_2ask=Modulation_2ASK(y1,w1); y2_2ask=Modulation_2ASK(y2,w2); y3_2ask=Modulation_2ASK(y3,w3); %-----------------分割线---------------------------------------- %数字带通滤波 BPF_Modb1=fir1(80,[0.23 0.25]); BPF_Modh1=freqz(BPF_Modb1,1,256); BPF_Modb2=fir1(80,[0.26 0.28]); BPF_Modh2=freqz(BPF_Modb2,1,256); BPF_Modb3=fir1(80,[0.32 0.35]); BPF_Modh3=freqz(BPF_Modb3,1,256); figure(); hold on plot(linspace(0,1,256),abs(BPF_Modh1),'r'); plot(linspace(0,1,256),abs(BPF_Modh2),'g'); plot(linspace(0,1,256),abs(BPF_Modh3),'b'); hold off y1=filter(BPF_Modb1,1,y1_2ask); y2=filter(BPF_Modb2,1,y2_2ask); y3=filter(BPF_Modb3,1,y3_2ask); %-----------------分割线---------------------------------------- %频率波形 Y1_2ask=fft(y1_2ask); Y2_2ask=fft(y2_2ask); Y3_2ask=fft(y3_2ask); figure(); subplot(3,1,1); hold on plot(f,abs(Y1_2ask(1:n1/2+1)),'r'); plot(f,abs(Y2_2ask(1:n2/2+1)),'g'); plot(f,abs(Y3_2ask(1:n3/2+1)),'b'); hold off y=y1_2ask+y2_2ask+y3_2ask; Y=fft(y); subplot(3,1,2); plot(f,abs(Y(1:n3/2+1))); %-----------------分割线---------------------------------------- %信道模拟 y=y+0.2*randn(1,length(y)); Y=fft(y); subplot(3,1,3); plot(f,abs(Y(1:n3/2+1))); %-----------------分割线---------------------------------------- %带通滤波 y_Demod1=filter(BPF_Modb1,1,y); y_Demod2=filter(BPF_Modb2,1,y); y_Demod3=filter(BPF_Modb3,1,y); Y_Demod1=fft(y_Demod1); Y_Demod2=fft(y_Demod2); Y_Demod3=fft(y_Demod3); figure(); hold on plot(f,abs(Y_Demod1(1:n1/2+1)),'r'); plot(f,abs(Y_Demod2(1:n2/2+1)),'g'); plot(f,abs(Y_Demod3(1:n3/2+1)),'b'); hold off %-----------------分割线---------------------------------------- %数字解调 y_Demod1=Demodulation_2ASK(y_Demod1,w0); %-----------------分割线---------------------------------------- %低通 y_de1=filter(BPF_Modb1,1,y_Demod1); figure(); plot(y_de1); %恢复信号