通信系统仿真实验报告.docx
- 文档编号:15436731
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:35
- 大小:466.71KB
通信系统仿真实验报告.docx
《通信系统仿真实验报告.docx》由会员分享,可在线阅读,更多相关《通信系统仿真实验报告.docx(35页珍藏版)》请在冰点文库上搜索。
通信系统仿真实验报告
中国地质大学(武汉)
通信系统仿真实验报告
姓名:
陈勇
班级:
075131
学号:
20131001768
院系:
机电学院
专业:
通信工程
指导老师:
王瑾
通信系统仿真实验第一次上机
一、上机完成布置的作业
1.设圆柱半径r=1.5,高h=3,求圆柱表面积和体积
程序:
r=1.5;
h=3;
S=2*pi*r^2+2*pi*r*h
V=pi*r^2*h
运行结果:
2.求某自然数内的全部素数
程序:
n=input('请输入一个自然数:
');
j=1;
fori=1:
n
ifisprime(i)
x(j)=i;
j=j+1;
end
fprintf('自然数%d内的素数为:
\n',n);
fprintf('%d\n',x(j));
end
运行结果:
3.输入3个数a、b、c,要求按由小到大的顺序输出。
程序:
a=input('a=');
b=input('b=');
c=input('c=');
ifa>b
max=a;
min=b;
else
max=b;
min=a;
end
ifmin>c
mid=min;
min=c;
elseifmax mid=max; max=c; else mid=c; end fprintf('a=%d,b=%d,c=%d从小到大依次为: %d,%d,%d\n',a,b,c,min,mid,max); 运行结果: 4.计算多项式y=x5-3x4-8x3+7x2+3x-5在[-4,5]区间的微分,并作图. 程序: x=[-4: 0.5: 5]; dy=(5*x.^4-12*x.^3-24*x.^2+14*x+3)*0.01; plot(x,dy); 运行结果: 5.已知y=1-1/2+1/3-1/4+……-1/100,求y的值。 程序: y=0; forx=1: 1: 100 y=y+(-1)^(x+1)*(1/x); end y 运行结果: 二.例题 例2-13建立一个字符串向量,然后对该向量做如下处理: (1)取第1~5个字符组成的子字符串。 (2)将字符串倒过来重新排列。 (3)将字符串中的小写字母变成相应的大写字母,其余字符不变。 (4)统计字符串中小写字母的个数。 程序: str='ABc123d4e56Fg9' A=str(1: 5) B=length(str) C=str(B: -1: 1) E=0; fori=1: B ifstr(i)>=97&&str(i)<=122 E=E+1; str(i)=str(i)-32; end end D=str E 运行结果: 例5-1在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx) 程序: x=0: pi/100: 2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y) 运行结果: 例5-5采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。 程序: x=0: pi/100: 2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); plot(x,y1) holdon y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y2); holdoff 运行结果: 例5-6在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),标记两曲线交叉点。 程序: x=linspace(0,2*pi,1000);%建立矩阵 y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); k=find(abs(y1-y2)<1e-2);%查找相等点 x1=x(k); y3=0.2*exp(-0.5*x1).*cos(4*pi*x1); plot(x,y1,x,y2,'k: ',x1,y3,'bp'); 运行结果: 例5-13分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 程序: x=0: pi/10: 2*pi; y=2*sin(x); subplot(2,2,1);bar(x,y,'g');%条形 title('bar(x,y,"g")'); subplot(2,2,2);stairs(x,y,'b');%阶梯 title('stairs(x,y,"b")'); subplot(2,2,3);stem(x,y,'k');%杆图 title('stem(x,y,"k")'); subplot(2,2,4);fill(x,y,'r');%填充图 title('fill(x,y,"r")'); 运行结果: 三、课后习题 2.2设一个线性时不变系统的系统传递函数为 ,通过Matlab画出如下输入信号经过该系统时的输出信号波形及频谱。 (1) (2) (3) 程序: clear;clc; T=1; N_sample=100;%采样点 dt=T/N_sample; t=0: dt: 10*T-dt; f=5; y1=10*sin(2*pi*f*t); y2=10*(sin(2*pi*f*t)+sin(20*pi*f*t)+sin(40*pi*f*t)); y3=[ones(1,N_sample),zeros(1,9*N_sample)]; [f1,sf1]=T2F(t,y1);%傅里叶变换 [f2,sf2]=T2F(t,y2); [f3,sf3]=T2F(t,y3); H1=1j*2*pi*f1./(1+1j*2*pi*f1); H2=1j*2*pi*f2./(1+1j*2*pi*f2); H3=1j*2*pi*f3./(1+1j*2*pi*f3); sf1=sf1.*H1; sf2=sf2.*H2; sf3=sf3.*H3; [t1,y10]=F2T(f1,sf1);%反傅里叶变换 [t2,y20]=F2T(f2,sf2); [t3,y30]=F2T(f3,sf3); figure (1) subplot(311) plot(t,y1); title('原始波形'); subplot(312) plot(f1,sf1); title('频谱图'); subplot(313) plot(t1,y10); title('输出波形'); figure (2) subplot(311) plot(t,y2); title('原始波形'); subplot(312) plot(f2,sf2); title('频谱图'); subplot(313) plot(t2,y20); title('输出波形'); figure(3) subplot(311) plot(t,y3); title('原始波形'); subplot(312) plot(f3,sf3); title('频谱图'); subplot(313) plot(t3,y30); title('输出波形'); 函数定义: function[f,sf]=T2F(t,st) dt=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); function[t,st]=F2T(f,sf) df=f (2)-f (1); Fmx=(f(end)-f (1)+df); dt=1/Fmx; N=length(sf); T=dt*N; t=0: dt: T-dt; sff=fftshift(sf); st=Fmx*ifft(sff); 运行结果: 2.3设输入信号为 ,其中 ,带通系统响应幅度谱 ,其相位为线性相位 ,即 通过Matlab画出信号波形。 (1)用等效基带方式。 (2)用直接卷积方式。 (3)用频域相乘方式,再取傅立叶反变换方式。 (4)画出输出信号的幅度谱。 (5)求输出信号的功率(理论值与Matlab计算对比)。 (6)改变带通系统的宽带,观察输出信号波形的变化。 程序: clearall; clc; dt=0.01; t=0: dt: 5-dt; gt=[ones(1,1/dt),zeros(1,4/dt)]; s1=gt.*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-15: 201+15)=1; h2f(301-15: 301+15)=1; h2f=h2f.*exp(-1j*4*pi*f2);%加入线性相位, [t1h1]=F2T(f2,h2f);%带通系统的冲激响应 h1_lowpass=hilbert(h1).*exp(-j*2*pi*10*t);%等效基带系统的冲激响应 figure (1) subplot(321); plot(t,s1); xlabel('t');ylabel('s1(t)'); title('带通信号'); subplot(323); plot(f1,abs(s1f)); xlabel('f');ylabel('|S1(f)|'); title('带通信号幅度谱'); subplot(322) plot(t,real(s1_lowpass)); xlabel('t');ylabel('Re[s_l(t)]'); title('等效基带信号的实部'); subplot(324) plot(f2,abs(s2f)); xlabel('f');ylabel('|S_l(f)|'); title('等效基带信号的幅度谱');%画带通系统及其等效基带的图 subplot(325) plot(f2,abs(h2f)); xlabel('f');ylabel('|H(f)|'); title('带通系统的传输响应幅度谱'); figure (2) subplot(322) plot(t1,h1); xlabel('t');ylabel('h(t)'); title('带通系统的冲激响应'); subplot(323) [f3hlf]=T2F(t1,h1_lowpass); plot(f3,abs(hlf)); xlabel('f');ylabel('|H_l(f)|'); title('带通系统的等效基带幅度谱'); subplot(324) plot(t1,h1_lowpass); xlabel('t');ylabel('h_l(t)'); title('带通系统的等效基带冲激响应');%画出带通信号经过带通系统的响应及等效基带信号经过等效基带系统的响应 tt=0: dt: t1(end)+t(end)+dt; yt=conv(s1,h1); subplot(325) plot(tt,yt); xlabel('t');ylabel('y(t)'); title('带通信号与带通系统响应的卷积') ytl=conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt); subplot(3,2,6) plot(tt,real(yt)); xlabel('t');ylabel('y_l(t)cos(20*pi*t'); title('等效基带与等效基带系统响应的卷积×中心频率载波') subplot(3,2,1) sff=s1f.*h2f; [t,st]=F2T(f1,sff); plot(t,st); title('取傅立叶反变换方式') df=f1 (2)-f1 (1); E=sum(abs(sff).^2)*df 运行结果: 2.4信号x(t)定义为 通过Matlab画出该信号的幅度和相位谱。 程序: clearall; clc; T=1; N_sample=100; dt=T/N_sample; t=-2: dt: 5; x=[ones(1,N_sample),abs(t(N_sample: 3*N_sample)),ones(1,N_sample),zeros(1,3*N_sample)]; [f,sf]=T2F(t,x); subplot(311) plot(t,x); title('原始波形'); subplot(312) plot(f,angle(sf)); title('相位谱'); subplot(313) plot(f,abs(sf)); title('幅度谱'); 运行结果: 通信系统仿真实验第二次上机 实验内容: 用matlab产生一个频率为10Hz、功率为2w的余弦信源 m(t),设载波频率为1KHz,试画出: (1)AM信号(直流0.5V),DSB-SC,SSB,VSB调制信号; (2)该调制信号的功率谱密度; (3)相干解调后的信号波形。 程序: closeall; clearall; dt=0.001;%时间采样间隔 fm=10;%信源最高频率 fc=1000;%载波中心频率 T=0.5;%信号时长 t1=0: dt: T-dt; mt=sqrt(4)*cos(2*pi*fm*t1);%信源 %N0=0.01;%白噪单边功率谱密度 A=0.5; s_am=(A+mt).*cos(2*pi*fc*t1); B=2*fm;%带通滤波器带宽窄带高斯噪声产生 figure (1) subplot(311) plot(t1,s_am); holdon; plot(t1,A+mt,'r--');%标示AM的包络 title('AM调制信号及其包络'); xlabel('t'); figure (1) rt1=s_am.*cos(2*pi*fc*t1);%相干解调 rt1=rt1-mean(rt1); [f1,rf1]=T2F(t1,rt1); [t1,rt1]=lpf(f1,rf1,2*fm);%低通滤波 subplot(312) plot(t1,rt1); holdon; plot(t1,mt/2,'r--'); title('相干解调后的信号波形与输入信号的比较'); xlabel('t') subplot(313) [f1,sf]=T2F(t1,s_am); psf=(abs(sf).^2)/T; plot(f1,psf); axis([-2*fc2*fc0max(psf)]); title('AM信号功率谱'); xlabel('f'); %%DSB figure (2) s_dsb=mt.*cos(2*pi*fc*t1); subplot(311) plot(t1,s_dsb); holdon; plot(t1,mt,'r--');%标示AM的包络 title('DSB调制信号及其包络'); xlabel('t'); rt2=s_dsb.*cos(2*pi*fc*t1); rt2=rt2-mean(rt2); [f2,rf2]=T2F(t1,rt2); [t2,rt2]=lpf(f2,rf2,2*fm); subplot(312) plot(t2,rt2); holdon; plot(t2,mt/2,'r--'); title('相干解调后的信号波形与输入信号的比较'); xlabel('t') subplot(313) [f2,sf]=T2F(t2,s_dsb); psf=(abs(sf).^2)/T; plot(f2,psf); axis([-2*fc2*fc0max(psf)]); title('DSB信号功率谱'); xlabel('f'); figure(3) s_ssb=real(hilbert(mt).*exp(j*2*pi*fc*t1)); B=fm; subplot(311) plot(t1,s_ssb); holdon;%画出SSB信号波形 plot(t1,mt,'r--');%标示mt的波形 title('SSB调制信号'); xlabel('t'); rt=s_ssb.*cos(2*pi*fc*t1); rt=rt-mean(rt); [f,rf]=T2F(t1,rt); [t,rt]=lpf(f,rf,2*fm); subplot(312) plot(t,rt); holdon; 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*fc2*fc0max(psf)]); title('SSB信号功率谱'); xlabel('f'); s_vsb=mt.*cos(2*pi*fc*t1); B=1.2*fm; [f,sf]=T2F(t1,s_vsb); [t,s_vsb]=vsbpf(f,sf,0.2*fm,1.2*fm,fc);%VSB信号 figure(4) subplot(311) plot(t,s_vsb); holdon;%画出VSB信号波形 plot(t,mt/4,'r--');%标示mt的波形 title('VSB调制信号'); xlabel('t'); rt=s_vsb.*cos(2*pi*fc*t1); [f,rf]=T2F(t1,rt); [t,rt]=lpf(f,rf,2*fm); subplot(312) plot(t,rt); holdon; plot(t,mt/8,'r--'); title('相干解调后的信号波形与输入信号的比较'); xlabel('t') subplot(313) [f,sf]=T2F(t,s_vsb); psf=(abs(sf).^2)/T; plot(f,psf); axis([-2*fc2*fc0max(psf)]); title('VSB信号功率谱'); xlabel('f'); 函数定义: function[tst]=lpf(f,sf,B) df=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); function[t,st]=vsbpf(f,sf,B1,B2,fc) df=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.*st; [t,st]=F2T(f,yf); st=real(st); 运行结果: 通信系统仿真实验第三次上机 6-1 程序: clc clearall; closeall; M=4;Ts=2;fc=20;N_sample=16;N_num=50; dt=1/fc/N_sample;%波形采样间隔 t=0: dt: N_num*Ts-dt; d1=sign(randn(1,N_num*2)); d2=sign(randn(1,N_num*2)); gt=ones(1,fc*N_sample);%NRZ波形 %QPSK调制 s1=sigexpand(d1,fc*N_sample); s2=sigexpand(d2,fc*N_sample); b1=conv(s1,gt); b2=conv(s2,gt); s1=b1(1: length(s1)); s2=b2(1: length(s2)); st_qpsk=s1.*cos(2*pi*fc*t)-s2.*sin(2*pi*fc*t); [fy1f]=T2F(t,st_qpsk); [ty1]=bpf(f,y1f,fc-1/Ts,fc+1/Ts);%4HZ代通 y=hilbert(y1);am=abs(y); subplot(211);plot(t,st_qpsk);xlabel('t'); axis([515-1.61.6]);title('QPSK波形'); subplot(212);plot(t,y1,t,am);xlabel('t'); axis([515-1.61.6]);title('经过带宽为4HZ的带通系统后的包络波形'); 函数定义: function[out]=sigexpand(d,M) %将输入的序列扩展成间隔为N-1个0的序列? N=length(d); out=zeros(M,N); out(1,: )=d; out=reshape(out,1,M*N); function[t,st]=bpf(f,sf,B1,B2) df=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); 运行结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 系统 仿真 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)