欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    通信原理基于matlab的计算机仿真-源代码(共34页).doc

    • 资源ID:13927090       资源大小:161.50KB        全文页数:34页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    通信原理基于matlab的计算机仿真-源代码(共34页).doc

    精选优质文档-倾情为你奉上例 Error! No text of specified style in document.1%周期信号(方波)的展开,fb_jinshi.mclose all;clear all;N=100; %取展开式的项数为2N1项 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);for m=-N:N ft = ft + Fn(m+N+1)*exp(j*2*pi*m*fs*t);end plot(t,ft)例 Error! No text of specified style in document.4利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。function f,sf= T2F(t,st)%This is a function using the FFT function to calculate a signal's Fourier%Translation%Input is the time and the signal vectors,the length of time must greater%than 2%Output is the frequency and the signal spectrumdt = 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 t st=F2T(f,sf)%This function calculate the time signal using ifft function for the input%signal's spectrum df = 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.mclear all;close all;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(0 1 -2 2);xlabel('t'); ylabel('s(t)');subplot(212);f sf=T2F(t,st); %方波频谱plot(f,abs(sf); hold on;axis(-10 10 0 1);xlabel('f');ylabel('|S(f)|'); %根据傅氏变换计算得到的信号频谱相应位置的抽样值sff= T2*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-')例 Error! No text of specified style in document.5%信号的能量计算或功率计算,sig_pow.mclear all;close all;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)的信号功率sf1 s1f= T2F(t,s1);f2 s2f= 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)'); 例 Error! No text of specified style in document.6%方波的傅氏变换,sig_band.mclear all;close all;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= T2*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(-10 10 0 1);hold on;sf_max = max(abs(sff);line(f(1) f(end),sf_max sf_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; %信号的等效带宽例 Error! No text of specified style in document.7%带通信号经过带通系统的等效基带表示,sig_bandpass.mclear all;close all;dt = 0.01;t = 0:dt:5; s1 = exp(-t).*cos(20*pi*t); %输入信号f1 s1f= T2F(t,s1); %输入信号的频谱s1_lowpass = hilbert(s1).*exp(-j*2*pi*10*t); %输入信号的等效基带信号f2 s2f=T2F(t,s1_lowpass); %输入等效基带信号的频谱 h2f = zeros(1,length(s2f);a b=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); %加入线性相位, t1 h1 = 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('Res_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)f3 hlf=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('等效基带与等效基带系统响应的卷积×中心频率载波')例 36%例:窄带高斯过程,文件 zdpw.mclear all; close all;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); %高斯信号的幅频特性 tt gt=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)%This function filter an input at frequency domain by an ideal bandpass filter%Inputs:% f: frequency samples% sf: input data spectrum samples% B1: bandpass's lower frequency% B2: bandpass's higher frequency %Outputs:% t: frequency samples% st: output data's time samplesdf = 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)/2 ) - bf;hf(bf1)=1/sqrt(2*(B2-B1);hf(bf2)=1/sqrt(2*(B2-B1); yf=hf.*sf.*exp(-j*2*pi*f*0.1*T);t,st=F2T(f,yf);例 41%显示模拟调制的波形及解调方法DSB,文件mdsb.m%信源close all;clear all;dt = 0.001; %时间采样间隔 fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T; mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度%DSB modulations_dsb = mt.*cos(2*pi*fc*t);B=2*fm;%noise = noise_nb(fc,B,N0,t);%s_dsb=s_dsb+noise;figure(1)subplot(311)plot(t,s_dsb);hold on; %画出DSB信号波形plot(t,mt,'r-'); %标示mt的波形title('DSB调制信号');xlabel('t');%DSB demodulationrt = s_dsb.*cos(2*pi*fc*t);rt = rt-mean(rt);f,rf = T2F(t,rt);t,rt = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r-');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)f,sf=T2F(t,s_dsb);psf = (abs(sf).2)/T;plot(f,psf);axis(-2*fc 2*fc 0 max(psf);title('DSB信号功率谱');xlabel('f');function t st=lpf(f,sf,B)%This function filter an input data using a lowpass filter%Inputs: f: frequency samples% sf: input data spectrum samples% B: lowpass's bandwidth with a rectangle lowpass%Outputs: t: time samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f);bf = -floor( B/df ): floor( B/df ) + floor( length(f)/2 );hf(bf)=1;yf=hf.*sf;t,st=F2T(f,yf);st = real(st);例 42%显示模拟调制的波形及解调方法AM,文件mam.m%信源close all;clear all;dt = 0.001; %时间采样间隔 fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T; mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度 %AM modulationA=2;s_am = (A+mt).*cos(2*pi*fc*t);B = 2*fm; %带通滤波器带宽%noise = noise_nb(fc,B,N0,t); %窄带高斯噪声产生%s_am = s_am + noise; figure(1)subplot(311)plot(t,s_am);hold on; %画出AM信号波形plot(t,A+mt,'r-'); %标示AM的包络title('AM调制信号及其包络');xlabel('t');%AM demodulationrt = s_am.*cos(2*pi*fc*t); %相干解调rt = rt-mean(rt);f,rf = T2F(t,rt);t,rt = lpf(f,rf,2*fm); %低通滤波subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r-');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)f,sf=T2F(t,s_am);psf = (abs(sf).2)/T;plot(f,psf);axis(-2*fc 2*fc 0 max(psf);title('AM信号功率谱');xlabel('f');例 43%显示模拟调制的波形及解调方法SSB,文件mssb.m%信源close all;clear all;dt = 0.001; %时间采样间隔 fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T; mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度 %SSB modulations_ssb = real( hilbert(mt).*exp(j*2*pi*fc*t) );B=fm;%noise = noise_nb(fc,B,N0,t);%s_ssb=s_ssb+noise;figure(1)subplot(311)plot(t,s_ssb);hold on; %画出SSB信号波形plot(t,mt,'r-'); %标示mt的波形title('SSB调制信号');xlabel('t'); %SSB demodulationrt = s_ssb.*cos(2*pi*fc*t);rt = rt-mean(rt);f,rf = T2F(t,rt);t,rt = lpf(f,rf,2*fm); subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r-');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)f,sf=T2F(t,s_ssb);psf = (abs(sf).2)/T;plot(f,psf);axis(-2*fc 2*fc 0 max(psf);title('SSB信号功率谱');xlabel('f');例 44%显示模拟调制的波形及解调方法VSB,文件mvsb.m%信源close all;clear all;dt = 0.001; %时间采样间隔 fm=5; %信源最高频率fc=20; %载波中心频率T=5; %信号时长t = 0:dt:T; mt = sqrt(2)*( cos(2*pi*fm*t)+sin(2*pi*0.5*fm*t) ); %信源%VSB modulations_vsb = mt.*cos(2*pi*fc*t);B=1.2*fm;f,sf = T2F(t,s_vsb);t,s_vsb = vsbpf(f,sf,0.2*fm,1.2*fm,fc);figure(1)subplot(311)plot(t,s_vsb);hold on; %画出VSB信号波形plot(t,mt,'r-'); %标示mt的波形title('VSB调制信号');xlabel('t');%VSB demodulationrt = s_vsb.*cos(2*pi*fc*t); f,rf = T2F(t,rt);t,rt = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r-');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)f,sf=T2F(t,s_vsb);psf = (abs(sf).2)/T;plot(f,psf);axis(-2*fc 2*fc 0 max(psf);title('VSB信号功率谱');xlabel('f');function t,st=vsbpf(f,sf,B1,B2,fc)%This function filter an input by an residual bandpass filter%Inputs: f: frequency samples% sf: input data spectrum samples% B1: residual bandwidth% B2: highest freq of the basedband signal %Outputs: t: frequency samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f);bf1 = floor( (fc-B1)/df ): floor( (fc+B1)/df ) ;bf2 = floor( (fc+B1)/df )+1: floor( (fc+B2)/df );f1 = bf1 + floor( length(f)/2 ) ;f2 = bf2 + floor( length(f)/2 ) ;stepf = 1/length(f1);hf(f1)=0:stepf:1-stepf;hf(f2)=1;f3 = -bf1 + floor( length(f)/2 ) ;f4 = -bf2 + floor( length(f)/2) ;hf(f3)=0:stepf:(1-stepf);hf(f4)=1; yf=hf.*sf;t,st=F2T(f,yf);st = real(st);例 45%显示模拟调制的波形及解调方法AM、DSB、SSB, %信源close all;clear all;dt = 0.001;fm=1;fc=10;t = 0:dt:5;mt = sqrt(2)*cos(2*pi*fm*t);N0 = 0.1; %AM modulationA=2;s_am = (A+mt).*cos(2*pi*fc*t);B = 2*fm;noise = noise_nb(fc,B,N0,t);s_am = s_am + noise; figure(1)subplot(321)plot(t,s_am);hold on;plot(t,A+mt,'r-');%AM demodulationrt = s_am.*cos(2*pi*fc*t);rt = rt-mean(rt);f,rf = T2F(t,rt);t,rt = lpf(f,rf,2*fm);title('AM信号');xlabel('t');subplot(322)plot(t,rt); hold on;plot(t,mt/2,'r-');title('AM解调信号');xlabel('t'); %DSB modulations_dsb = mt.*cos(2*pi*fc*t);B=2*fm;noise = noise_nb(fc,B,N0,t);s_dsb=s_dsb+noise; subplot(323)plot(t,s_dsb);hold on;plot(t,mt,'r-');title('DSB信号');xlabel('t');%DSB demodulationrt = s_dsb.*cos(2*pi*fc*t);rt = rt-mean(rt);f,rf = T2F(t,rt);t,rt = lpf(f,rf,2*fm);subplot(324)plot(t,rt); hold on;plot(t,mt/2,'r-');title('DSB解调信号');xlabel('t');%SSB modulations_ssb = real( hilbert(mt).*exp(j*2*pi*fc*t) );B=fm;noise = noise_nb(fc,B,N0,t);s_ssb=s_ssb+noise;subplot(325)plot(t,s_ssb);title('SSB信号');xlabel('t');%SSB demodulationrt = s_ssb.*cos(2*pi*fc*t);rt = rt-mean(rt);f,rf = T2F(t,rt);t,rt = lpf(f,rf,2*fm);subplot(326)plot(t,rt); hold on;plot(t,mt/2,'r-');title('SSB解调信号');xlabel('t');function out = noise_nb(fc,B,N0,t)%output the narrow band gaussian noise sample with single-sided power spectrum N0%at carrier frequency equals fc and bandwidth euqals Bdt = t(2)-t(1);Fmx = 1/dt; n_len = length(t);p = N0*Fmx;rn = sqrt(p)*randn(1,n_len);f,rf = T2F(t,rn); t,out = bpf(f,rf,fc-B/2,fc+B/2);例 46%FM modulation and demodulation,mfm.mclear all;close all; Kf = 5;fc = 10;T=5;dt=0.001;t = 0:dt:T; %信源fm= 1;%mt = cos(2*pi*fm*t) + 1.5*sin(2*pi*0.3*fm*t); %信源信号mt = cos(2*pi*fm*t); %信源信号%FM 调制A = sqrt(2);%mti = 1/2/pi/fm*sin(2*pi*fm*t) -3/4/pi/0.3/fm*cos(2*pi*0.3*fm*t); %mt的积分函数mti = 1/2/pi/fm*sin(2*pi*fm*t) ; %mt的积分函数st = A*cos(2*pi*fc*t + 2*pi*Kf*mti);figure(1)subplot(311);plot(t,st); hold on;plot(t,mt,'r-');xlabel('t');ylabel('调频信号') subplot(312)f sf = T2F(t,st);plot(f, abs(sf);axis(-25 25 0 3)xlabel('f');ylabel('调频信号幅度谱') %FM 解调for k=1:length(st)-1 rt(k) = (st(k+1)-st(k)/dt;endrt(length(st)=0;subplot(313)plot(t,rt); hold on;plot(t,A*2*pi*Kf*mt+A*2*pi*fc,'r-');xlabel('t');ylabel('调频信号微分后包络')例 51%数字基带信号的功率谱密度 digit_baseband.mclear all; close all;Ts=1;N_sample = 8; %每个码元的抽样点数dt = Ts/N_sample; %抽样时间间隔N = 1000; %码元数t = 0:dt:(N*N_sample-1)*dt; gt1 = ones(1,N_sample); %NRZ非归零波形gt2 = ones(1,N_sample/2); %RZ归零波形gt2 = gt2 zeros(1,N_sample/2);mt3 = sinc(t-5)/Ts); % sin(pi*t/Ts)/(pi*t/Ts)波形,截段取10个码元gt3 = mt3(1:10*N_sample);d = ( sign( randn(1,N) ) +1 )/2;data = sigexpand(d,N_sample); %对序列间隔插入N_sample-1个0st1 = conv(data,gt1); %Matlab自带卷积函数st2 = conv(data,gt2);d = 2*d-1; %变成双极性序列data= sigexpand(d,N_sample); st3 = conv(data,gt3); f,st1f = T2F(t,st1(1:length(t);f,st2f = T2F(t,st2(1:length(t);f,st3f = T2F(t,st3(1:length(t); figure(1)subplot(321)plot(t,st1(1:length(t) );gridaxis(0 20 -1.5 1.5);ylabel('单极性NRZ波形');subplot(322);plot(f,10*log10(abs(st1f).2/T) );gridaxis(-5 5 -40 10); ylabel('单极性NRZ功率谱密度(dB/Hz)'); subplot(323)plot(t,st2(1:length(t) );axis(0 20 -1.5 1.5);gridylabel('单极性RZ波形');subplot(324)plot(f,10*log10(abs(st2f).2/T);axis(-5 5 -40 10);gridylabel('单极性RZ功率谱密度(dB/Hz)'); subplot(325)plot(t-5,st3(1:length(t) );a

    注意事项

    本文(通信原理基于matlab的计算机仿真-源代码(共34页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开