通信原理基于matlab的计算机仿真-源代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

例错误!文档中没有指定样式的文字。-1%周期信号(方波)的展开,fb_jinshi.mcloseall;clearall;N=100;%取展开式的项数为2N+1项T=1;fs=1/T;N_sample=128;%为了画出波形,设置每个周期的采样点数dt=T/N_sample;t=0:dt:10*T-dt;n=-N:N;Fn=sinc(n/2).*exp(-j*n*pi/2);Fn(N+1)=0;ft=zeros(1,length(t));form=-N:Nft=ft+Fn(m+N+1)*exp(j*2*pi*m*fs*t);endplot(t,ft)例错误!文档中没有指定样式的文字。-4利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。function[f,sf]=T2F(t,st)%ThisisafunctionusingtheFFTfunctiontocalculateasignal'sFourier%Translation%Inputisthetimeandthesignalvectors,thelengthoftimemustgreater%than2%Outputisthefrequencyandthesignalspectrumdt=t(2)-t(1);T=t(end);df=1/T;N=length(st);f=-N/2*df:df:N/2*df-df;sf=fft(st);sf=T/N*fftshift(sf);脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。function[tst]=F2T(f,sf)%Thisfunctioncalculatethetimesignalusingifftfunctionfortheinput%signal'sspectrumdf=f(2)-f(1);Fmx=(f(end)-f(1)+df);dt=1/Fmx;N=length(sf);T=dt*N;%t=-T/2:dt:T/2-dt;t=0:dt:T-dt;sff=fftshift(sf);st=Fmx*ifft(sff);另写脚本文件fb_spec.m如下:%方波的傅氏变换,fb_spec.mclearall;closeall;T=1;N_sample=128;dt=T/N_sample;t=0:dt:T-dt;st=[ones(1,N_sample/2),-ones(1,N_sample/2)];%方波一个周期subplot(211);plot(t,st);axis([01-22]);xlabel('t');ylabel('s(t)');subplot(212);[fsf]=T2F(t,st);%方波频谱plot(f,abs(sf));holdon;axis([-101001]);xlabel('f');ylabel('|S(f)|');%根据傅氏变换计算得到的信号频谱相应位置的抽样值sff=T^2*j*pi*f*0.5.*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5);plot(f,abs(sff),'r-')例错误!文档中没有指定样式的文字。-5%信号的能量计算或功率计算,sig_pow.mclearall;closeall;dt=0.01;t=0:dt:5;s1=exp(-5*t).*cos(20*pi*t);s2=cos(20*pi*t);E1=sum(s1.*s1)*dt;%s1(t)的信号能量P2=sum(s2.*s2)*dt/(length(t)*dt);%s2(t)的信号功率s[f1s1f]=T2F(t,s1);[f2s2f]=T2F(t,s2);df=f1(2)-f1(1);E1_f=sum(abs(s1f).^2)*df;%s1(t)的能量,用频域方式计算df=f2(2)-f2(1);T=t(end);P2_f=sum(abs(s2f).^2)*df/T;%s2(t)的功率,用频域方式计算figure(1)subplot(211)plot(t,s1);xlabel('t');ylabel('s1(t)');subplot(212)plot(t,s2)xlabel('t');ylabel('s2(t)');例错误!文档中没有指定样式的文字。-6%方波的傅氏变换,sig_band.mclearall;closeall;T=1;N_sample=128;dt=1/N_sample;t=0:dt:T-dt;st=[ones(1,N_sample/2)-ones(1,N_sample/2)];df=0.1/T;Fx=1/dt;f=-Fx:df:Fx-df;%根据傅氏变换计算得到的信号频谱sff=T^2*j*pi*f*0.5.*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5);plot(f,abs(sff),'r-')axis([-101001]);holdon;sf_max=max(abs(sff));line([f(1)f(end)],[sf_maxsf_max]);line([f(1)f(end)],[sf_max/sqrt(2)sf_max/sqrt(2)]);%交点处为信号功率下降3dB处Bw_eq=sum(abs(sff).^2)*df/T/sf_max.^2;%信号的等效带宽例错误!文档中没有指定样式的文字。-7%带通信号经过带通系统的等效基带表示,sig_bandpass.mclearall;closeall;dt=0.01;t=0:dt:5;s1=exp(-t).*cos(20*pi*t);%输入信号[f1s1f]=T2F(t,s1);%输入信号的频谱s1_lowpass=hilbert(s1).*exp(-j*2*pi*10*t);%输入信号的等效基带信号[f2s2f]=T2F(t,s1_lowpass);%输入等效基带信号的频谱h2f=zeros(1,length(s2f));[ab]=find(abs(s1f)==max(abs(s1f)));%找到带通信号的中心频率h2f(201-25:201+25)=1;h2f(301-25:301+25)=1;h2f=h2f.*exp(-j*2*pi*f2);%加入线性相位,[t1h1]=F2T(f2,h2f);%带通系统的冲激响应h1_lowpass=hilbert(h1).*exp(-j*2*pi*10*t1);%等效基带系统的冲激响应figure(1)subplot(521);plot(t,s1);xlabel('t');ylabel('s1(t)');title('带通信号');subplot(523);plot(f1,abs(s1f));xlabel('f');ylabel('|S1(f)|');title('带通信号幅度谱');subplot(522)plot(t,real(s1_lowpass));xlabel('t');ylabel('Re[s_l(t)]');title('等效基带信号的实部');subplot(524)plot(f2,abs(s2f));xlabel('f');ylabel('|S_l(f)|');title('等效基带信号的幅度谱');%画带通系统及其等效基带的图subplot(525)plot(f2,abs(h2f));xlabel('f');ylabel('|H(f)|');title('带通系统的传输响应幅度谱');subplot(527)plot(t1,h1);xlabel('t');ylabel('h(t)');title('带通系统的冲激响应');subplot(526)[f3hlf]=T2F(t1,h1_lowpass);plot(f3,abs(hlf));xlabel('f');ylabel('|H_l(f)|');title('带通系统的等效基带幅度谱');subplot(528)plot(t1,h1_lowpass);xlabel('t');ylabel('h_l(t)');title('带通系统的等效基带冲激响应');%画出带通信号经过带通系统的响应及等效基带信号经过等效基带系统的响应tt=0:dt:t1(end)+t(end);yt=conv(s1,h1);subplot(529)plot(tt,yt);xlabel('t');ylabel('y(t)');title('带通信号与带通系统响应的卷积')ytl=conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt);subplot(5,2,10)plot(tt,real(yt));xlabel('t');ylabel('y_l(t)cos(20*pi*t');title('等效基带与等效基带系统响应的卷积×中心频率载波')例3-6%例:窄带高斯过程,文件zdpw.mclearall;closeall;N0=1;%双边功率谱密度fc=10;%中心频率B=1;%带宽dt=0.01;T=100;t=0:dt:T-dt;%产生功率为N0*B的高斯白噪声P=N0*B;st=sqrt(P)*randn(1,length(t));%将上述白噪声经过窄带带通系统,[f,sf]=T2F(t,st);%高斯信号频谱figure(1)plot(f,abs(sf));%高斯信号的幅频特性[ttgt]=bpf(f,sf,fc-B/2,fc+B/2);%高斯信号经过带通系统glt=hilbert(real(gt));%窄带信号的解析信号,调用hilbert函数得到解析信号glt=glt.*exp(-j*2*pi*fc*tt);[ff,glf]=T2F(tt,glt);figure(2)plot(ff,abs(glf));xlabel('频率(Hz)');ylabel('窄带高斯过程样本的幅频特性')figure(3)subplot(411);plot(tt,real(gt));title('窄带高斯过程样本')subplot(412)plot(tt,real(glt).*cos(2*pi*fc*tt)-imag(glt).*sin(2*pi*fc*tt))title('由等效基带重构的窄带高斯过程样本')subplot(413)plot(tt,real(glt));title('窄带高斯过程样本的同相分量')subplot(414)plot(tt,imag(glt));xlabel('时间t(秒)');title('窄带高斯过程样本的正交分量')%求窄带高斯信号功率;注:由于样本的功率近似等于随机过程的功率,因此可能出现一些偏差P_gt=sum(real(gt).^2)/T;P_glt_real=sum(real(glt).^2)/T;P_glt_imag=sum(imag(glt).^2)/T;%验证窄带高斯过程的同相分量、正交分量的正交性a=real(glt)*(imag(glt))'/T;用到的子函数function[t,st]=bpf(f,sf,B1,B2)%Thisfunctionfilteraninputatfrequencydomainbyanidealbandpassfilter%Inputs:%f:frequencysamples%sf:inputdataspectrumsamples%B1:bandpass'slowerfrequency%B2:bandpass'shigherfrequency%Outputs:%t:frequencysamples%st:outputdata'stimesamplesdf=f(2)-f(1);T=1/df;hf=zeros(1,length(f));bf=[floor(B1/df):floor(B2/df)];bf1=floor(length(f)/2)+bf;bf2=floor(length(f

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功