通信原理MATLAB仿真

合集下载

通信原理基于matlab的计算机仿真

通信原理基于matlab的计算机仿真

通信原理基于matlab的计算机仿真通信原理基于matlab的计算机仿真已经成为通信领域中一项重要的研究工具。

此类仿真软件通过模拟现实情形,能够极大地加快通信设备的开发进程,并且可以帮助工程师进行实验,发现并解决通讯中可能存在的问题。

同时,matlab的通信仿真功能也成为了相关教材和教学实验的首选,许多大学,尤其是通信工程专业的学生要通过matlab的仿真来更好地理解通信原理和通信设备的工作原理。

由于matlab的专业性,无论是对于传输介质的模型计算,还是信号的传输过程的计算仿真,都非常适合。

通信原理的matlab仿真可以有效地帮助工程师分析各种信号,包括模拟信号、数字信号及混合信号。

这种仿真可用于计算机网络、通信系统设计以及无线通信和移动通信等领域。

在matlab中,通信原理的仿真重点是信号的传输与接收。

目前,通信设备主要采用数字信号的传输方式,而matlab中也能够实现该方式的仿真。

通过模拟数字信号的传输过程,可以帮助工程师分析此类信号在不同媒介下的传输效果。

所以,在进行数字信号的仿真时,matlab会考虑到以下几个因素:1.噪声在数字通信中,噪声是一个常见的问题。

因此,在matlab 的仿真中也要考虑到噪声的影响因素。

matlab能够对噪声进行建模,模拟各种环境下的噪声对数字信号的影响程度。

2.数据传输速率数据传输速率也会影响数字信号的仿真结果。

matlab可以模拟数字信号传输的速率以及不同速率下的传输效果。

3.差错率差错率也是数字信号传输中的一个显著因素,matlab在通信原理仿真中也会进行模拟。

除数字信号外,模拟信号的仿真也是通信原理仿真领域的一项重要工作。

在matlab的仿真中,通常对模拟信号的传输和接收会更加复杂。

通信原理的matlab仿真的一个重要应用就是误码率和比特误差率测试。

误码率和比特误差率都是评估数字信号传输质量的指标。

通信系统的设计旨在在受到最小干扰时保持误差率的最小化。

使用MATLAB进行通信系统设计和仿真

使用MATLAB进行通信系统设计和仿真

使用MATLAB进行通信系统设计和仿真引言:通信系统在现代社会中扮演着至关重要的角色,使人们能够传递信息和数据。

为了确保通信系统的可靠性和效率,使用计算工具进行系统设计和仿真是至关重要的。

在本篇文章中,我们将讨论使用MATLAB这一强大的工具来进行通信系统的设计和仿真。

一、通信系统的基本原理通信系统由多个组件组成,包括发射机、传输媒介和接收机。

发射机负责将输入信号转换为适合传输的信号,并将其发送到传输媒介上。

传输媒介将信号传输到接收机,接收机负责还原信号以供使用。

二、MATLAB在设计通信系统中的应用1. 信号生成与调制使用MATLAB,可以轻松生成各种信号,包括正弦波、方波、脉冲信号等。

此外,还可以进行调制,例如将低频信号调制到高频载波上,以实现更高的传输效率。

2. 信号传输与路径损耗建模MATLAB提供了各种工具和函数,可以模拟信号在传输媒介上的传播过程。

通过加入路径损耗模型和噪声模型,可以更准确地模拟实际通信环境中的传输过程。

这些模拟结果可以帮助我们评估和优化通信系统的性能。

3. 调制解调与信道编码MATLAB提供了用于调制解调和信道编码的函数和工具箱。

通过选择适当的调制方式和编码方案,可以提高信号传输的可靠性和容错能力。

通过使用MATLAB进行仿真,我们可以评估不同方案的性能,从而选择出最优的设计。

4. 多天线技术与信道建模多天线技术可显著提高通信系统的容量和性能。

MATLAB提供了用于多天线系统仿真的工具箱,其中包括多天线信道建模、空分复用和波束成形等功能。

这些工具可以帮助我们评估多天线系统在不同场景下的性能,并优化系统设计。

5. 频谱分析与功率谱密度估计频谱分析是评估通信系统性能的重要方法之一。

MATLAB提供了各种频谱分析函数和工具,可以对信号进行频谱分析,并计算功率谱密度估计。

这些结果可以帮助我们了解系统的频率分布特性,并进行性能优化。

6. 误码率分析与性能评估对于数字通信系统而言,误码率是一个重要的性能指标。

通信原理matlab仿真

通信原理matlab仿真

通信原理matlab仿真通信原理是现代通讯技术的基础。

它研究的是信息的传递过程,包括信号的生成、传输、接收、处理和解调等多个环节。

MATLAB是一种强大的仿真工具,可以用于构建和分析各种通信系统。

本文将介绍如何使用MATLAB进行通信原理仿真。

1. 基本概念在开始MATLAB仿真之前,我们需要了解一些基本概念。

最基本的通信系统是由三个部分组成的:发送器、信道和接收器。

发送器将信息转换为一种可以传输的信号,信道将信号从发送器传输到接收器,接收器将信号转换回信息。

信号可以是模拟信号或数字信号。

模拟信号是连续的,数字信号是离散的。

在数字通信中,一般使用的是数字信号。

2. 发送器仿真在MATLAB中,我们可以使用生成函数来模拟发送器的行为。

常用的生成函数包括sine、cosine、sawtooth等。

例如,如果我们要发送一个正弦波信号,可以使用以下代码:t = 0:0.001:1; % 生成时间序列f = 10; % 正弦波频率A = 1; % 正弦波幅值s = A*sin(2*pi*f*t); % 生成正弦波信号上述代码中,t表示时间序列,f表示正弦波频率,A表示幅值,s表示生成的正弦波信号。

在实际系统中,发送器一般会对信号进行一定的调制,例如调频调幅等。

这些调制方式也可以使用MATLAB进行仿真。

3. 信道仿真信道是一个复杂的环节,其影响因素很多。

常见的信道包括添加噪声信道、多径信道等。

在MATLAB中,常用的信道模型包括AWGN信道和瑞利信道。

AWGN信道是指添加高斯白噪声的信道,可以使用以下代码模拟:s_noise = awgn(s,SNR,'measured');其中,s_noise是添加高斯白噪声后的信号,SNR是信噪比,可以修改为不同的值进行仿真。

瑞利信道是一种多径衰落信道,可以使用以下代码模拟:h = rayleighchan(1/1000,60); % 生成瑞利信道对象s_r = filter(h,s_noise);其中,h是瑞利信道对象,1/1000表示信噪比,60表示长度。

通信原理及matlab simulink 仿真

通信原理及matlab simulink 仿真

通信原理及matlab simulink 仿真好的,以下是关于通信原理及MATLAB Simulink仿真的一篇3000-6000字的文章:【通信原理及MATLAB Simulink仿真】引言:通信原理是指人们在信息传递过程中所使用的原理和方法。

随着科技的发展,通信技术被广泛应用于人类生活的各个领域,比如无线通信、互联网通信等。

通信原理的研究对于实现高效、稳定的信息传递非常重要。

MATLAB是一个强大的数值计算与仿真环境,可以用于通信原理的建模和仿真。

本文将一步一步介绍通信原理及MATLAB Simulink仿真的相关知识。

第一部分:通信原理的基础知识1. 通信系统的基本组成通信系统由发送端、信道和接收端组成。

发送端将信息转换成电磁波等信号,通过信道传输到接收端,接收端再将信号转换成信息。

2. 信号与频谱信号是信息的表现形式,可以是模拟信号或数字信号。

频谱指的是信号在频率域上的表示,用于分析信号的频率分布特性。

3. 调制技术调制技术将低频信息信号转换成高频载波信号,以便在信道中传输。

常见的调制技术有调幅、调频和调相等。

第二部分:MATLAB Simulink的基础知识1. MATLAB Simulink的简介MATLAB Simulink是MATLAB的一个功能模块,提供了强大的系统建模和仿真工具。

它可以在图形化界面下搭建信号处理系统的模型,并通过仿真验证系统的性能。

2. Simulink中的基本组件Simulink提供了多种基本组件,用于构建系统模型。

常见的组件有源信号、传输线、滤波器等。

3. Simulink的建模过程利用Simulink建模通信系统,通常需要以下步骤:a. 设计系统的基本结构,确定模型所需的模块和组件。

b. 定义模型中各个组件的数学模型或算法。

c. 搭建模型,将组件按照系统结构进行连接。

d. 设置仿真参数,例如仿真时间、采样时间等。

e. 运行仿真,观察系统的输出结果。

第三部分:MATLAB Simulink仿真实例1. 建立通信系统模型以FM调制为例,建立一个基本的模拟调制解调系统模型。

MATLAB仿真实例

MATLAB仿真实例

MATLAB仿真实例通信原理是指传输信息的原理和方法。

MATLAB可以用于实现各种通信原理的仿真,包括信号的调制、发送、接收、解调等过程。

下面我将介绍一个基于MATLAB的通信原理仿真实例。

本实例以频率调制通信原理为基础,以调频调制(FM)为例进行仿真。

1.首先定义模拟信号源,生成一个基带信号。

例如,我们可以选择一个正弦波信号作为基带信号,其频率为$f_m$。

2.接下来,我们需要将基带信号进行调频调制。

在调频调制过程中,我们将基带信号的频率进行调制,生成载频为$f_c$的调制信号。

3. 在MATLAB中,我们可以使用freqmod函数来进行调频调制。

该函数接受基带信号、载频和调制指数作为输入参数,并返回调制信号。

4.在得到调制信号后,我们可以进行发送模拟。

发送模拟是指将调制信号通过信道传输,可以简单地将信号存储为一个信道矩阵。

5. 在接收端,我们需要对接收到的信号进行解调,以恢复基带信号。

在调频调制中,我们可以使用freqdemod函数进行解调。

该函数接受解调信号、载频和调制指数作为输入参数,并返回解调后的信号。

6.最后,我们可以将解调信号与原始信号进行比较,计算它们之间的误差。

可以使用均方根误差(RMSE)作为误差度量指标。

通过以上过程,我们可以完成一个简单的基于MATLAB的调频调制仿真。

为了使仿真更贴近实际通信场景,我们还可以添加信道噪声等因素。

例如,我们可以在发送模拟过程中,向信道矩阵中添加高斯白噪声。

这样可以更真实地模拟信号在传输过程中受到干扰和噪声的情况。

通过以上步骤,我们可以利用MATLAB进行通信原理的仿真实践。

这个实例不仅可以帮助我们加深理解通信原理的基本概念和过程,还可以通过实际操作和仿真结果进行验证和验证。

总之,MATLAB是一个非常强大的工具,可以用于各种通信原理的仿真。

通过利用MATLAB进行仿真实践,我们可以更深入地理解通信原理的基本原理和过程,提高我们的理论水平和实践能力。

通信原理基于matlab的计算机仿真

通信原理基于matlab的计算机仿真

例1-1%周期信号(方波)的展开,fb_jinshi.mclose all;clear all;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));for m=-N:Nft = ft + Fn(m+N+1)*exp(j*2*pi*m*fs*t);endplot(t,ft)例 1-2利用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 spectrumdf = 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= 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-')例1-3%信号的能量计算或功率计算,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)的信号功率s[f1 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)');例1-4%方波的傅氏变换,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= 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([-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; %信号的等效带宽例 1-5%带通信号经过带通系统的等效基带表示,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('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)[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('等效基带与等效基带系统响应的卷积×中心频率载波')例 1-6%例:窄带高斯过程,文件 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);例 1-7%显示模拟调制的波形及解调方法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);例1-8%显示模拟调制的波形及解调方法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');例 1-9%显示模拟调制的波形及解调方法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');例 2-0%显示模拟调制的波形及解调方法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 demodulation[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);例 2-1%显示模拟调制的波形及解调方法AM、DSB、SSB,%信源close all;clear all;dt = 0.001;fm=1;fc=10;t = 0:dt:5;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);。

通信原理OOK信号MATLAB仿真

通信原理OOK信号MATLAB仿真

%%%%%%% 通信原理OOK信号仿真、功率谱和相干解调分析演示clcclose allclear allcodn=60; % 仿真的码元个数fc=6e+3; % 载波频率fs=fc*6; % 数据采样率bode=1000; % 信号波特率code=round(rand(1,codn)); % 产生随机信码(round:最近整数四舍五入)code_len=round(1/bode/(1/fs)); % 得到一个码元周期的数据长度for i=1:codn % 产生数字基带信号x((i-1)*code_len+1:code_len*i)=code(i);endcar=cos(2*pi*fc/fs*(0:length(x)-1)); % 产生载波y=x.*car; % ook信号等于单极性数字基带信号乘以载波figuresubplot(211)plot(x)axis([0 length(x) -0.5 1.5])grid onzoom ontitle('原始基带信号')subplot(212)plot(y)zoom ongrid ontitle('OOK信号')ay=abs(fft(y)); % 进行幅频特性分析f=0:fs/length(y):fs/2;ay=ay(1:length(f));figureplot(f,ay)zoom ongrid ontitle('OOK的频谱')z=y.*car; % 相干解调fl=fir1(64,fc/fs*2); % 低通滤波z=2*filter(fl,1,z);figuresubplot(211)plot(x)axis([0 length(x) -0.5 1.5])grid ontitle('原始基带信号')subplot(212)plot(z)axis([0 length(x) -0.5 1.5])grid ontitle('解调得到的基带信号')zoom on。

通信原理Matlab仿真实验报告

通信原理Matlab仿真实验报告

通信原理Matlab仿真实验报告学号:姓名:实验一1、利用Matlab实现矩形信号串信号分解与合成⑴ Matlab程序代码:①矩形信号串信号分解与合成函数rectexpd():function rectexpd(T1,T0,m)%矩形信号串信号分解与合成%T1:矩信号区间为(-T1/2,T1/2)%T0:矩形矩信信号串周期%m:傅里叶级数展开项次数t1=-T1/2:0.01:T1/2;t2=T1/2:0.01:(T0-T1/2); t=[(t1-T0)';(t2-T0)';t1';t2';(t1+T0)'];n1=length(t1);n2=length(t2); %根据周期矩形信号函数周期,计算点数f=[ones(n1,1);zeros(n2,1);ones(n1,1);zeros(n2 ,1);ones(n1,1)]; %构造周期矩形信号串y=zeros(m+1,length(t));y(m+1,:)=f';figure(1);plot(t,y(m+1,:)); %绘制周期矩形信号串axis([-(T0+T1/2)-0.5,(T0+T1/2)+0.5,0,1.2]); set(gca,'XTick',[-T0,-T1/2,T1/2,T0]);set(gca,'XTickLabel',{'-T0','-T1/2','T1/2','T0'}) ;title('矩形信号串');grid on; a=T1/T0;pause; %绘制离散幅度谱freq=[-20:1:20];mag=abs(a*sinc(a*freq)); stem(freq,mag);x=a*ones(size(t));for k=1:m %循环显示谐波叠加图形pause;x=x+2*a*sinc(a*k)*cos(2*pi*t*k/T0);y(k,:)=x;plot(t,y(m+1,:));hold on;plot(t,y(k,:));hold off;grid on;axis([-(T0+T1/2)-0.5,[T0+T1/2]+0.5,-0.5,1.5]) ;title(strcat(num2str(k),'次谐波叠加')); xlabel('t');endpause;plot(t,y(1:m+1,:));grid on;axis([-T0/2,T0/2,-0.5,1.5]);title('各次谐波叠加');xlabel('t');②在命令窗口调用rectexpd()函数:T1=5;T0=10;m=5;rectexpd(T1,T0,m)⑵Matlab仿真结果:1次谐波叠加t3次谐波叠加tt2次谐波叠加t4次谐波叠加tt2、利用Matlab实现连续信号卷积运算⑴ Matlab程序代码:①连续信号卷积运算的通用函数sconv():function [f,k]=sconv(f1,f2,k1,k2,p) f=conv(f1,f2);f=f*p;k0=k1(1)+k2(1);k3=length(f1)+length(f2)-2;k=k0:p:k3*p; subplot(2,2,1); plot(k1,f1); title('f1(t)'); xlabel('t'); ylabel('f1(t)');subplot(2,2,2);plot(k2,f2);title('f2(t)'); xlabel('t'); ylabel('f2(t)'); subplot(2,2,3); plot(k,f); title('f(t)=f1(t)*f2(t)'); xlabel('t'); ylabel('f(t)');h=get(gca,'position'); h(3)=2.5*h(3);set(gca,'position',h);②在命令窗口调用sconv ()函数: p=0.01; k1=0:p:2; f1=exp(-k1); k2=0:p:3;f2=ones(1,length(k2)); [f,k]=sconv(f1,f2,k1,k2,p)⑵Matlab 仿真结果:0.511.5200.51f1(t)tf 1(t )01230.511.52f2(t)tf 2(t )00.51 1.522.533.544.550.51f(t)=f1(t)*f2(t)tf (t )实验二1、用Matlab模拟图形A律解码⑴Matlab程序代码:①建立函数ADecode()function y=ADecode(code,n) codesize=size(code);cr_len=codesize(1);cl_len=codesize(2);ca=zeros(1,cl_len-1);for i=1:cr_lenca=code(i,2:n);s=0;for j=1:n-1s=s+ca(j)*2^(n-1-j);enda=code(i,1);y(i)=s*((-1)^(a+1)); endy=y/(2^(n-1));A=87.6;A1=1+log(A); for j=1:length(y)if(y(j)>=0)if(y(i)<=1/A1)y(j)=y(j)*A1/A;elsey(j)=exp(y(j)*A1-1/A);endelsetemp=-y(j);if(temp<=1/A1)y(j)=-temp*A1/A;elsey(j)=-exp(temp*A1-1)/A;endendend②建立函数APCM()function code=APCM(x,n)xmax=max(abs(x));x=x/xmax;xlen=length(x);y=zeros(1,xlen);A=87.6;A1=1+log(A);for i=1:xlenif x(i)>=0if x(i)<=1/Ay(i)=(A*x(i))/A1;elsey(i)=(1+log(A*x(i)))/A1;endelsex1=-x(i);if x1<=1/Ay(i)=-(A*x1)/A1;elsey(i)=-(1+log(A*x1))/A1;endendendy1=y*(2^(n-1)-1);y1=round(y1);code=zeros(length(y1),n); c2=zeros(1,n-1);for i=1:length(y1)if(y1(i)>0)c1=1;elsec1=0;y1(i)=-y1(i);endfor j=1:n-1r=rem(y1(i),2);y1(i)=(y1(i)-r)/2;c2(j)=r;endc2=fliplr(c2);code(i,:)=[c1 c2];end③在新函数中调用前两个函数 t=0:0.01:1; x=sin(2*pi*t); code=APCM(x,7); y=ADecode(code,7); subplot(2,1,1) plot(t,x);title('原函数的图形'); subplot(2,1,2) plot(t,y);title('解码后函数的图形');⑵Matlab 仿真结果:00.10.20.30.40.50.60.70.80.91-1-0.500.51原函数的图形00.10.20.30.40.50.60.70.80.91-1-0.50.5解码后函数的图形2、用Matlab 模拟DSB 调制及解调过程 ⑴Matlab 程序代码: close all; clear all;dt=0.001;%采样时间间隔 fm=1; %信源最高频率 fc=10; %载波中心频率 N=4096;T=N*dt; t=0:dt:T-dt;mt=sqrt(2)*cos(2*pi*fm*t);%信源s_dsb=mt.*cos(2*pi*fc*t); %DSB-SC 双边带抑制载波调幅B=2*fm;figure(1); subplot(311) plot(t,s_dsb,'b-');hold on; %画出DSB 信号波形plot(t,mt,'r--');%画出m(t)信号波形 title('DSB 调制信号'); xlabel('t'); grid on;%DSB demodulation rt=s_dsb.*cos(2*pi*fc*t); rt=rt-mean(rt); [f,rf]=T2F(t,rt); [t,rt]=lpf(f,rf,B); subplot(312) plot(t,rt,'k-'); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较'); xlabel('t'); grid on; 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'); grid on;⑵Matlab 仿真结果:00.51 1.52 2.53 3.54 4.5-22DSB 调制信号t0.511.522.533.544.5-101相干解调后的信号波形与输入信号的比较t-20-15-10-5051015200.5DSB 信号功率谱f实验三1、用Matlab模拟双极性归零码⑴ Matlab程序代码:function y=drz(x)t0=300;x=[1 0 0 1 1 0 0 0 0 1 0 1];t=0:1/t0:length(x);for i=1:length(x);if(x(i)==1)for j=1:t0/2y(t0/2*(2*i-2)+j)=1;y(t0/2*(2*i-1)+j)=0;endelsefor j=1:t0/2y(t0/2*(2*i-2)+j)=-1;y(t0/2*(2*i-1)+j)=0;endendendy=[y,x(i)];M=max(y);m=min(y); subplot(211)plot(t,y);grid on;axis([0,i,m-0.1,M+0.1]);title('1 0 0 1 1 0 0 0 0 1 0 1 ');⑵Matlab仿真结果:2、用Matlab产生2FSK信号⑴ Matlab程序代码:①建立函数fskdigital()function fskdigital(s,f1,f2) t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];for n=1:length(s)if s(n)==0;m=ones(1,100);c=sin(f2*t);b=zeros(1,100) else s(n)==1;m=ones(1,100);c=sin(f1*t);b=ones(1,100)endm1=[m1 m]; c1=[c1 c]; b1=[b1 b]; endfsk=c1.*m1;subplot(211);plot(b1,'r')title('原始信号');axis([0 100*length(s) -0.1 1.1]);grid on;subplot(212);plot(fsk)title('2FSK信号');grid on;②在命令窗口调用函数fskdigital() >> s=[1 0 1 1 0 0 1 0]; f1=200; f2=100;fskdigital(s,f1,f2)⑵Matlab 仿真结果:10020030040050060070080000.20.40.60.81原始信号100200300400500600700800-1-0.500.512FSK 信号3、用Matlab 的simulink 模块模拟三角波的分解与还原 ⑴模块图⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小学期报告实习题目通信原理Matlab仿真专业通信与信息工程班级学号学生姓名实习成绩指导教师2010年通信原理Matlab仿真目录一、实验目的------------------------------------------------------------------------------------------------2二、实验题目------------------------------------------------------------------------------------------------2三、正弦信号波形及频谱仿真------------------------------------------------------------------------2 (一)通信原理知识--------------------------------------------------------------------------------------2 (二)仿真原理及思路--------------------------------------------------------------------------------------2 (三)程序流程图------------------------------------------------------------------------------------------- 3 (四)仿真程序及运行结果------------------------------------------------------------------------------3 (五)实验结果分析---------------------------------------------------------------------------------------5四、单极性归零波形及其功率谱密度仿真--------------------------------------------------------5 (一)通信原理知识--------------------------------------------------------------------------------------6 (二)仿真原理及思路------------------------------------------------------------------------------ -------6 (三)程序流程图-------------------------------------------------------------------------------------------6 (四)仿真程序及运行结果--------------------------------------------------------------------------------6 (五)实验结果分析-------------------------------------------------------------------------------- -------6五、升余弦滚降波形的眼图及功率谱密度仿真-------------------------------------------------8 (一)通信原理知识--------------------------------------------------------------------------------------8 (二)仿真原理及思路------------------------------------------------------------------------------ -------9 (三)程序流程图------------------------------------------------------------------------------- -----------9 (四)仿真程序及运行结果------------------------------------------------------------------------------10 (五)实验结果分析---------------------------------------------------------------------------------------11六、PCM编码及解码仿真-----------------------------------------------------------------------------12 (一)通信原理知识---------------------------------------------------------------------------------- ---12 (二)仿真原理及思路------------------------------------------------------------------------------ ------ 13 (三)程序流程图------------------------------------------------------------------------------- -----------14 (四)仿真程序及运行结果------------------------------------------------------------------------------15 (五)实验结果分析---------------------------------------------------------------------------------------18七、实验心得---------------------------------------------------------------------------- -------------------18一、实验目的1、学会MATLAB 软件的最基本运用。

MATLAB 是一种很实用的数学软件,它易学易用。

MATLAB 对于许多的通信仿真类问题来说是很合适的。

2、了解计算机仿真的基本原理及方法,知道怎样通过仿真的方法去研究通信问题。

3、加深对通信原理课有关内容的理解。

二.实验要求1. 正弦信号波形及频谱的仿真;2. 单极性归零(RZ )波形及其功率谱,占空比为50%的仿真;3. 升余弦滚降波形的眼图及其功率谱的仿真。

滚降系数为0.5。

发送码取值为0、2;4. PCM 编码及解码的仿真。

三.正弦信号波形及频谱仿真(一)通信原理知识()()f t F ω⇔傅里叶变换表达式: ()()j t F f t e dt ωω∞--∞=⎰傅里叶变换:1()()2j t f t F e d ωωωπ∞-∞=⎰傅里叶逆变换:()()000Sin(2)2jf t f f f f πδδ⇔+--⎡⎤⎣⎦正弦信号傅里叶变换: (二)仿真原理及思路MATLAB 中关于傅里叶变换的有关函数,利用MATLAB 提供的函数编写两个函数t2f 及f2t 。

t2f 的功能是作傅氏变换,f2t 的功能是作傅氏反变换,它们的引用格式分别为X=t2f(x)及x=f2t(X),其中x 是时域信号x t ()截短并采样所得的取样值矢量,X 是对x t ()的傅氏变换X f ()截短并采样所得的取样值矢量。

(三)程序流程图(四)仿真程序及运行结果主程序:sinx.mglobal dt df N t f T %全局变量 close allk=input('取样点数=2^k,k=[10]'); if k==[],k=10;endN=2^k; %采样点数 dt=0.01; %时域采样间隔 df=1/(N*dt);%频域采样间隔 T=N*dt; %截短时间 Bs=N*df/2; %系统带宽 t=linspace(-T/2,T/2,N); f=linspace(-Bs,Bs,N); f0=1;s=cos(2/3*pi*f0*t); S=t2f(s); a=f2t(S); figure(1)set(1,'position',[10,50,500,200])%设定窗口位置及大小 figure(2)set(2,'position',[350,50,500,200]);%设定窗口位置及大小 figure(1)as=abs(S); %求模 plot(f,as,'r-') grid;axis([-2*f0,+2*f0,min(as),max(as)]);孔xlabel('f(kHZ)');ylabel('S(f)(V/kHZ)'); figure(2)plot(t,a,'b-') gridaxis([-4,+4,-1.5,1.5']); xlabel(('t(ms)')); ylabel('s(t)(V)');傅式变换程序:t2f.mfunction X=t2f(x)global dt df N t f T %X=t2f(x)%x 为时域的取样值矢量 %X 为x 的傅氏变换%X 与x 长度相同,并为2的整幂。

%本函数需要一个全局变量dt(时域取样间隔) H=fft(x);X=[H(N/2+1:N),H(1:N/2)].*dt; End傅式反变换程序:f2t.mfunction x=f2t(X)global dt df t f T N %x=f2t(X)%x 为时域的取样值矢量 %X 为x 的傅氏变换%X 与x 长度相同并为2的整幂%本函数需要一个全局变量dt(时域取样间隔) X=[X(N/2+1:N),X(1:N/2)]; x=ifft(X)/dt;%x=[tmp(N/2+1:N),tmp(1:N/2)]; End运行结果:-4-3-2-101234-1.5-1-0.500.511.5t(ms)s (t )(V )-2-1.5-1-0.500.51 1.521234f(kHZ)S (f )(V /k H Z )(五)实验结果分析打开MATLAB 运行程序sinx.m 后窗口出现:取样点数=2^k,k=[10]。

相关文档
最新文档