
毕业论文涉及matlab的脉宽键值调制通信系统仿真。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
clear all; close all; fs=8e5;%抽样频率 fm=20e3;%基带频率 n=2*(6*fs/fm); final=(1/fs)*(n-1); fc=2e5; % 载波频率 t=0:1/fs:(final); Fn=fs/2;%耐奎斯特频率 %用正弦波产生方波 %========================================== twopi_fc_t=2*pi*fm*t; A=1; phi=0; x = A * cos(twopi_fc_t + phi); % 方波 am=1; x(x>0)=am; x(x<0)=-1; figure(1) subplot(321); plot(t,x); axis([0 2e-4 -2 2]); title(基带信号); grid on car=sin(2*pi*fc*t);%载波 ask=x.*car;%载波调制 subplot(322); plot(t,ask); axis([0 200e-6 -2 2]); title(PSK信号); grid on; %===================================================== vn=0.1; noise=vn*(randn(size(t)));%产生噪音 subplot(323); plot(t,noise); grid on; title(噪音信号); axis([0 .2e-3 -1 1]); askn=(ask+noise);%调制后加噪 subplot(324); plot(t,askn); axis([0 200e-6 -2 2]); title(加噪后信号); grid on; %带通滤波 %====================================================================== fBW=40e3; f=[0:3e3:4e5]; w=2*pi*f/fs; z=exp(w*j); BW=2*pi*fBW/fs; a=.8547;%BW=2(1-a)/sqrt(a) p=(j^2*a^2); gain=.135; Hz=gain*(z+1).*(z-1)./(z.^2-(p)); subplot(325); plot(f,abs(Hz)); title(带通滤波器响应); grid on; Hz(Hz==0)=10^(8);//避免对零取对数运算 subplot(326); plot(f,20*log10(abs(Hz))); grid on; title(接收器 -3dB 滤波器响应); axis([1e5 3e5 -3 1]); %滤波器系数 a=[1 0 0.7305];%[1 0 p] b=[0.135 0 -0.135];%gain*[1 0 -1] faskn=filter(b,a,askn); figure(2) subplot(321); plot(t,faskn); axis([0 100e-6 -2 2]); title(通过带通滤波后输出); grid on; cm=faskn.*car;//解调 subplot(322); plot (cm, t , r); axis([min (cm) , max (cm), min (cm), max (cm)]);title(通过相乘器后输出); %低通滤波器 %================================================================== p=0.72; gain1=0.14;//gain=(1-p)/sqrt((p^((p+)) / ((p^((p+)) / ((p^((p+)) / ((p^((p+)) / ((p^((p+)) / ((p^((p+)) / ((p^((p+)) / ((p^((p+)) / (( ))))))))))))))))))))))))))) Hz = gain * (z + 1) ./ (z - p) ; subplot(... );plot(... );title(... );axis(...) %滤波器系数 a=[...]; b=[...]; so = filter(... ); so = so * ... ;so = so - mean(... );subplot(... );plot(... );title(通过低通滤波器后输出); %Comparator %====================================================== High = ... ; Low = ... ; vt = ...;//设立比较标准 error = ... len = length(...) for ii in range(...) if so[ii] >= vt: Vs[ii] = High else Vs[ii] = Low end Vo = Vs subplot(... );plot(... ),title(解调后输出信号),axis(...) xlabel(时间 (s), ylabel(幅度 (V))
全部评论 (0)


