通信系统仿真实验报告

通信系统仿真实验报告

姓名:郑智

班号:075131

学号:[1**********] 指导老师:王瑾

1. 设圆柱半径r=1.5,高h=3,求圆柱表面积和体积

程序:

r=1.5;

h=3;

s=pi*r*r*2+2*pi*r*h

a=pi*r*r*h

2. 求某自然数内的全部素数

程序:

n=input('enter n:');

j=1;

for i=1:n

if isprime(i)

x(j)=i;

j=j+1;

end

end

x

3. 输入3个数a 、b 、c ,要求按由小到大的顺序输出。

程序:

a=input('enter a:');

b=input('enter b:');

c=input('enter c:');

y = sort([a b c]);

disp(y);

4. 计算多项式y=x5-3x 4-8x 3+7x2+3x-5在[-4,5]区间的微分, 并作图.

程序:

x=linspace(-4,5,100);

p=[1 -3 -8 7 3 -5];

f=polyval(p,x);

differential=diff(f)./diff(x);

dx=x(2:length(x))

plot(dx,differential);

title(' 多项式方程的微分图'

);

5. 已知y=1-1/2+1/3-1/4+……-1/100,求y 的值。

程序:

n=1:100;

y=(-1).^(n-1)./n;

sum(y)

2-8 产生5阶随机方阵A ,其元素为[10,90]区间的随机整数,然后判断A 的元素是否能被3整除。

程序: %生成5阶随机方阵A 。

A=randi([10,90],5,5) % 判断A 的元素是否可以被3整除。

P=rem(A,3)==0%其中,rem(A,3)是矩阵A 的每个元素除以3的余数矩阵。此时,0被扩展为与A 同维数的零矩阵,P 是进行等于(==)比较的结果矩阵。

2-9 建立矩阵A ,然后找出大于4的元素的位置。

(1) 建立矩阵A 。

A=[4,-65,-54,0,6;56,0,67,-45,0]

(2) 找出大于4的元素的位置。

find(A>4)

% 建立矩阵A 。

A=[4,-65,-54,0,6;56,0,67,-45,0]

% 找出大于4的元素的位置。

find(A>4)

2-13 建立一个字符串向量,然后对该向量做如下处理:

(1) 取第1~5个字符组成的子字符串。

(2) 将字符串倒过来重新排列。

(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。

(4) 统计字符串中小写字母的个数。

a = 'TuRuJie'

a(1:5)

a(end:-1:1)

upper(a)

sum(a='a' )

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)

hold on

y2=2*exp(-0.5*x).*cos(pi*x);

plot(x,y2);

hold off

5-6 在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。

clear all ; %在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx) ,标记两曲线交叉点。

clc;

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)

x1=x(k);

y3=0.2*exp(-0.5.*x1).*cos(4*pi*x1);

plot(x,y1,x,y2,'r:',x1,y3, 'k.' );

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'')');axis([0,7,-2,2]);

subplot(2,2,2);stairs(x,y,'b' );

title('stairs(x,y,''b'')');axis([0,7,-2,2]);

subplot(2,2,3);stem(x,y,'k' );

title('stem(x,y,''k'')');axis([0,7,-2,2]);

subplot(2,2,4);fill(x,y,'y' );

title('fill(x,y,''y'')');axis([0,7,-2,2]);

2.2设一个线性时不变系统的系统传递函数为H (f ) =j 2πf /(1+j 2πf ) ,通过Matlab 画出如下输入信号经过该系统时的输出信号波形及频谱。 (1)x (t ) =10sin 2πft

(2)x (t ) =10(sin2πft +sin 20πft +sin 40πft ) (3)x (t ) =⎨

clear;clc; T=1;

N_sample=128; dt=T/N_sample; t=0:dt:10*T-dt; f=5;

⎧10≤t

0其他⎩

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(' 输出波形' );

T2F 函数:

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);

F2T 函数:

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);

原始波形

100

-1020

-2-80100

-10

012345频谱

678910

-60-40-200输出波形

20406080

[1**********]0

原始波形

500

-5020

-2-80500

-50

012345频谱

678910

-60-40-200输出波形

20406080

[1**********]0

原始波形

10.5

010

-1-8010

-1

012345频谱

678910

-60-40-200输出波形

20406080

[1**********]0

2.3设输入信号为s (t ) =g (t ) cos 20πt ,其中g (t ) =⎨

⎧10≤t

,带通系统响应幅度谱

0其他⎩

⎧-1

H (f ) =⎨1

⎪0⎩

f +≤5f -10≤5其他

,其相位为线性相位φ(f ) =4πf ,即

H (f ) =H (f ) e -j φ(f ) 通过Matlab 画出信号波形。 (1)用等效基带方式。 (2)用直接卷积方式。

(3)用频域相乘方式,再取傅立叶反变换方式。 (4)画出输出信号的幅度谱。

(5)求输出信号的功率(理论值与Matlab 计算对比)。 改变带通系统的宽带,观察输出信号波形的变化。

clear all ; clc; dt=0.01;

t=0:dt:5-dt;

gt=[ones(1,1/dt),zeros(1,4/dt)]; s1=gt.*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-15:201+15)=1; h2f(301-15:301+15)=1;

h2f=h2f.*exp(-1j*4*pi*f2); %加入线性相位,

[t1 h1] = F2T(f2,h2f); %带通系统的冲激响应

h1_lowpass = hilbert(h1).*exp(-j*2*pi*10*t); %等效基带系统的冲激响应

figure(1) subplot(621); plot(t,s1);

xlabel('t' ); ylabel('s1(t)'); title(' 带通信号' );

subplot(623); plot(f1,abs(s1f));

xlabel('f' ); ylabel('|S1(f)|'); title(' 带通信号幅度谱' );

subplot(622)

plot(t,real(s1_lowpass)); xlabel('t' );ylabel('Re[s_l(t)]'); title(' 等效基带信号的实部' );

subplot(624) plot(f2,abs(s2f));

xlabel('f' );ylabel('|S_l(f)|');

title(' 等效基带信号的幅度谱' ); %画带通系统及其等效基带的图

subplot(625) plot(f2,abs(h2f));

xlabel('f' );ylabel('|H(f)|'); title(' 带通系统的传输响应幅度谱' );

subplot(627) plot(t1,h1);

xlabel('t' );ylabel('h(t)'); title(' 带通系统的冲激响应' );

subplot(626)

[f3 hlf]=T2F(t1,h1_lowpass); plot(f3,abs(hlf));

xlabel('f' );ylabel('|H_l(f)|'); title(' 带通系统的等效基带幅度谱' );

subplot(628)

plot(t1,h1_lowpass); xlabel('t' );ylabel('h_l(t)');

title(' 带通系统的等效基带冲激响应' ); %画出带通信号经过带通系统的响应 及 等效基带信号经过等效基带系统的响应

tt = 0:dt:t1(end)+t(end)+dt; yt = conv(s1,h1);

subplot(629) plot(tt,yt);

xlabel('t' );ylabel('y(t)');

title(' 带通信号与带通系统响应的卷积' )

ytl = conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt);

subplot(6,2,10) plot(tt,real(yt));

xlabel('t' );ylabel('y_l(t)cos(20*pi*t'); title(' 等效基带与等效基带系统响应的卷积×中心频率载波' )

subplot(6,2,11) sff=s1f.*h2f; [t,st]=F2T(f1,sff); plot(t,st);

title(' 取傅立叶反变换方式' ) df=f1(2)-f1(1); E=sum(abs(sff).^2)*df

F2T 函数:

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);

通信号

R e [s l (t ) ]

s 1(t )

等效基带信号的实

t

带通信号幅度谱

t

等效基带信号的幅度

|S 1(f ) |

f

带通系统的传输响应幅度谱

|S l (f ) |

f

带通系统的等效基带幅度谱

f

带通系统的冲激响

|H l (f ) |

|H (f ) |

f

带通系统的等效基带冲激响应

y l (t ) c o s (20*p i *t

t

带通信号与带通系统响应的卷积

h l (t )

h (t )

t

等效基带与等效基带系统响应的卷积×中心频率载波

0123

56t

取傅立叶反变换方式

478910

y (t )

01234

5t

678910

00.511.522.533.544.55

2.4信号x(t)定义为

⎧1-2≤t

x (t ) =⎨

1≤t

通过Matlab 画出该信号的幅度和相位谱。

clear all ; clc; T=1;

N_sample=128; dt=T/N_sample; t=-2:dt:5;

x=[ones(1,N_sample),abs(t(N_sample:3*N_sample)),ones(1,N_sample),zero

s(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(' 幅度谱' );

T2F 函数:

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);

原始波形

1.5

1

0.5

0-2

5

-5-100

4

2

0-100-1012345相位谱-80-60-40-200幅度谱[1**********]-80-60-40-[1**********]100

3. 用matlab 产生一个频率为10Hz 、功率为2w 的余弦信源

m (t ),设载波频率为1KHz ,试画出:

(1)AM 信号(直流0.5V ),DSB-SC,SSB,VSB 调制信号;

(2)该调制信号的功率谱密度;

(3)相干解调后的信号波形。

%信源

close all ;

clear all ;

dt = 0.0001; %时间采样间隔

fm=10; %信源最高频率

fc=1000; %载波中心频率

T=0.5; %信号时长

t1 = 0:dt:T-dt;

mt = sqrt(4)*cos(2*pi*fm*t1); %信源

%N0 = 0.01; %白噪单边功率谱密度

%AM modulation

A=0.5;

s_am = (A+mt).*cos(2*pi*fc*t1);

B = 2*fm; %带通滤波器带宽

%noise = noise_nb(fc,B,N0,t); %窄带高斯噪声产生

%s_am = s_am + noise;

%%AM demodulation

figure(1)

subplot(311)

plot(t1,s_am);

hold on ;

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);

hold on ;

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*fc 2*fc 0 max(psf)]);

title('AM 信号功率谱' );

xlabel('f' );

%%DSB demodulation

figure(2)

s_dsb=mt.*cos(2*pi*fc*t1);

subplot(311)

plot(t1,s_dsb);

hold on ;

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);

hold on ;

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*fc 2*fc 0 max(psf)]);

title('DSB 信号功率谱' );

xlabel('f' );

%%SSB demodulation

figure(3)

s_ssb = real( hilbert(mt).*exp(j*2*pi*fc*t1) );

B=fm;

subplot(311)

plot(t1,s_ssb);

hold on ; %画出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);

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' );

%%VSB modulation

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);

figure(4)

subplot(311)

plot(t,s_vsb);

hold on ; %画出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);

hold on ;

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*fc 2*fc 0 max(psf)]);

title('VSB 信号功率谱' );

xlabel('f' );

AM 调制信号及其包络

5

-500.050.250.30.350.4

t

相干解调后的信号波形与输入信号的比较0.10.150.20.450.5

2

-200.050.10.150.20.250.3

t

AM 信号功率谱0.350.40.450.5

0.1

0.05

0-2000-1500-1000-5000

f [**************]

DSB 调制信号及其包络

2

-200.050.250.30.350.4

t

相干解调后的信号波形与输入信号的比较0.10.150.20.450.5

2

-200.050.10.150.250.3

t

DSB 信号功率谱0.20.350.40.450.5

0.1

0.05

0-2000-1500-1000-5000

f [**************]

SSB 调制信号

2

-200.050.250.30.350.4

t

相干解调后的信号波形与输入信号的比较0.10.150.20.450.5

2

-200.050.10.150.250.3

t

SSB 信号功率谱0.20.350.40.450.5

0.4

0.2

0-2000-1500-1000-5000

f [**************]

6.1设载波频率为20Hz ,信息速率为2 Baud,用Matlab 画出:

(1)QPSK 信号的波形

(2)QPSK 信号经过带宽为4Hz 的带通系统后的包络波形

%设载波频率为20Hz ,信息速率为2 Baud,用Matlab 画出:

%QPSK

close all ;

clear all ;

M=4;

Ts=2;

fc=20;%载波频率为20Hz

N_sample=16;

N_num=100;

dt=1/fc/N_sample;

t=0:dt:N_num*Ts/2-dt;

T=dt*length(t);

for PL=1:100%输入100段N_num个码字的波形,为了使功率谱密度看起来更加平滑 %可以取这100段信号功率谱密度的平均

d1=sign(randn(1,N_num));

d2=sign(randn(1,N_num));

gt=ones(1,fc*N_sample);

%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);

%经过带通后

[f y1f]=T2F(t,st_qpsk);

[t y1]=bpf(f,y1f,fc-1/Ts,fc+1/Ts);

subplot(211)

plot(t,st_qpsk);xlabel('t' );ylabel('QPSK 波形' );

axis([5 15 -1.6 1.6]);

title('QPSK 波形' );

subplot(212)

plot(t,y1);xlabel('t' );ylabel('QPSK 波形' );

axis([5 15 -1.6 1.6]);

title(' 经过带通后的波形' );

end

QPSK 波形

1

Q P S K 波形0

-1

56781011

t

经过带通后的波形912131415

1

Q P S K 波形0

-1

5678910

t 1112131415

6.2写一个Matlab 程序实现一个二进制DPSK 通信系统的Monte Carlo仿真。设传输信号相位是θ=0°和θ=180°,θ=0°的相位变化对应于传输“0”,而θ=180°的相位变化对应于传输“1”。在不同的SNR 参数εb/N0值下,传输N=10000个比特作仿真。为了方便可将εb归一化为1,然后用σ^2=N0/2,SNR就是εb/N0=1/(2σ^2),这里σ^2是加信噪声分量的方差。所以SNR 可以通过给加信噪声分量的方差加权予以控制。画出测出的二进制DPSK 的误码率,并将它与理论差错概率作比较。

clear all ;

EsN0dB=3:0.5:10;

EsN0=10.^(EsN0dB/10);

Es=1;

N0=10.^(-EsN0dB/10);

sigma=sqrt(N0/2);

N_num=10000;

error=zeros(1,length(EsN0dB));

s_data=zeros(1,length(EsN0dB));

for k=1:length(EsN0dB)

error(k)=0;

s_data(k)=0;

while error(k)

d=(sign(randn(1,N_num))+1)/2; %随即产生10000个单极性码元 %绝对码转换为差分码(传号差分码) dpsk信号

for i=1:N_num

if i==1

b(1)=d(1);

else

b(i)=xor(d(i),b(i-1));

end

end

%DPSK信号 相位变化0用0表示,变化pi 用1表示 s_dpsk=sqrt(Es)*exp(j*pi*b);

%加入信道噪声的信号

r=s_dpsk+sigma(k)*(randn(1,length(d))+j*randn(1,length(d))); %判决

for m=1:2 %计算距离 m =1: 0;m=2 :pi

rd(m,:)=abs(r-sqrt(Es)*exp(j*pi*(m-1)));

end

for n=1:length(s_dpsk)

if rd(1,n)

dd(n)=0;

else

dd(n)=1;

end

end

% 差分码转换为绝对码

r(1)=dd(1);

for i=2:N_num

r(i)=xor(dd(i),dd(i-1)); end

%接收到的信号与原信号比较得到误码率 for p=1:N_num

if r(p)~=d(p)

error(k)=error(k)+1; end

end

s_data(k)=s_data(k)+N_num; end

end

%实际误码率

Pe=error./s_data;

%理论误码率

Pb=erfc(sqrt(EsN0));

figure

semilogy(EsN0dB,Pb); hold on ; semilogy(EsN0dB,Pe,'rd-' );

legend(' 理论计算值' , ' 仿真结果' );

xlabel('(Es/N0)/dB'),ylabel(' 误码率' ), title('DPSK 系统的误码率' )

通信系统仿真实验报告

姓名:郑智

班号:075131

学号:[1**********] 指导老师:王瑾

1. 设圆柱半径r=1.5,高h=3,求圆柱表面积和体积

程序:

r=1.5;

h=3;

s=pi*r*r*2+2*pi*r*h

a=pi*r*r*h

2. 求某自然数内的全部素数

程序:

n=input('enter n:');

j=1;

for i=1:n

if isprime(i)

x(j)=i;

j=j+1;

end

end

x

3. 输入3个数a 、b 、c ,要求按由小到大的顺序输出。

程序:

a=input('enter a:');

b=input('enter b:');

c=input('enter c:');

y = sort([a b c]);

disp(y);

4. 计算多项式y=x5-3x 4-8x 3+7x2+3x-5在[-4,5]区间的微分, 并作图.

程序:

x=linspace(-4,5,100);

p=[1 -3 -8 7 3 -5];

f=polyval(p,x);

differential=diff(f)./diff(x);

dx=x(2:length(x))

plot(dx,differential);

title(' 多项式方程的微分图'

);

5. 已知y=1-1/2+1/3-1/4+……-1/100,求y 的值。

程序:

n=1:100;

y=(-1).^(n-1)./n;

sum(y)

2-8 产生5阶随机方阵A ,其元素为[10,90]区间的随机整数,然后判断A 的元素是否能被3整除。

程序: %生成5阶随机方阵A 。

A=randi([10,90],5,5) % 判断A 的元素是否可以被3整除。

P=rem(A,3)==0%其中,rem(A,3)是矩阵A 的每个元素除以3的余数矩阵。此时,0被扩展为与A 同维数的零矩阵,P 是进行等于(==)比较的结果矩阵。

2-9 建立矩阵A ,然后找出大于4的元素的位置。

(1) 建立矩阵A 。

A=[4,-65,-54,0,6;56,0,67,-45,0]

(2) 找出大于4的元素的位置。

find(A>4)

% 建立矩阵A 。

A=[4,-65,-54,0,6;56,0,67,-45,0]

% 找出大于4的元素的位置。

find(A>4)

2-13 建立一个字符串向量,然后对该向量做如下处理:

(1) 取第1~5个字符组成的子字符串。

(2) 将字符串倒过来重新排列。

(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。

(4) 统计字符串中小写字母的个数。

a = 'TuRuJie'

a(1:5)

a(end:-1:1)

upper(a)

sum(a='a' )

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)

hold on

y2=2*exp(-0.5*x).*cos(pi*x);

plot(x,y2);

hold off

5-6 在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。

clear all ; %在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx) ,标记两曲线交叉点。

clc;

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)

x1=x(k);

y3=0.2*exp(-0.5.*x1).*cos(4*pi*x1);

plot(x,y1,x,y2,'r:',x1,y3, 'k.' );

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'')');axis([0,7,-2,2]);

subplot(2,2,2);stairs(x,y,'b' );

title('stairs(x,y,''b'')');axis([0,7,-2,2]);

subplot(2,2,3);stem(x,y,'k' );

title('stem(x,y,''k'')');axis([0,7,-2,2]);

subplot(2,2,4);fill(x,y,'y' );

title('fill(x,y,''y'')');axis([0,7,-2,2]);

2.2设一个线性时不变系统的系统传递函数为H (f ) =j 2πf /(1+j 2πf ) ,通过Matlab 画出如下输入信号经过该系统时的输出信号波形及频谱。 (1)x (t ) =10sin 2πft

(2)x (t ) =10(sin2πft +sin 20πft +sin 40πft ) (3)x (t ) =⎨

clear;clc; T=1;

N_sample=128; dt=T/N_sample; t=0:dt:10*T-dt; f=5;

⎧10≤t

0其他⎩

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(' 输出波形' );

T2F 函数:

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);

F2T 函数:

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);

原始波形

100

-1020

-2-80100

-10

012345频谱

678910

-60-40-200输出波形

20406080

[1**********]0

原始波形

500

-5020

-2-80500

-50

012345频谱

678910

-60-40-200输出波形

20406080

[1**********]0

原始波形

10.5

010

-1-8010

-1

012345频谱

678910

-60-40-200输出波形

20406080

[1**********]0

2.3设输入信号为s (t ) =g (t ) cos 20πt ,其中g (t ) =⎨

⎧10≤t

,带通系统响应幅度谱

0其他⎩

⎧-1

H (f ) =⎨1

⎪0⎩

f +≤5f -10≤5其他

,其相位为线性相位φ(f ) =4πf ,即

H (f ) =H (f ) e -j φ(f ) 通过Matlab 画出信号波形。 (1)用等效基带方式。 (2)用直接卷积方式。

(3)用频域相乘方式,再取傅立叶反变换方式。 (4)画出输出信号的幅度谱。

(5)求输出信号的功率(理论值与Matlab 计算对比)。 改变带通系统的宽带,观察输出信号波形的变化。

clear all ; clc; dt=0.01;

t=0:dt:5-dt;

gt=[ones(1,1/dt),zeros(1,4/dt)]; s1=gt.*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-15:201+15)=1; h2f(301-15:301+15)=1;

h2f=h2f.*exp(-1j*4*pi*f2); %加入线性相位,

[t1 h1] = F2T(f2,h2f); %带通系统的冲激响应

h1_lowpass = hilbert(h1).*exp(-j*2*pi*10*t); %等效基带系统的冲激响应

figure(1) subplot(621); plot(t,s1);

xlabel('t' ); ylabel('s1(t)'); title(' 带通信号' );

subplot(623); plot(f1,abs(s1f));

xlabel('f' ); ylabel('|S1(f)|'); title(' 带通信号幅度谱' );

subplot(622)

plot(t,real(s1_lowpass)); xlabel('t' );ylabel('Re[s_l(t)]'); title(' 等效基带信号的实部' );

subplot(624) plot(f2,abs(s2f));

xlabel('f' );ylabel('|S_l(f)|');

title(' 等效基带信号的幅度谱' ); %画带通系统及其等效基带的图

subplot(625) plot(f2,abs(h2f));

xlabel('f' );ylabel('|H(f)|'); title(' 带通系统的传输响应幅度谱' );

subplot(627) plot(t1,h1);

xlabel('t' );ylabel('h(t)'); title(' 带通系统的冲激响应' );

subplot(626)

[f3 hlf]=T2F(t1,h1_lowpass); plot(f3,abs(hlf));

xlabel('f' );ylabel('|H_l(f)|'); title(' 带通系统的等效基带幅度谱' );

subplot(628)

plot(t1,h1_lowpass); xlabel('t' );ylabel('h_l(t)');

title(' 带通系统的等效基带冲激响应' ); %画出带通信号经过带通系统的响应 及 等效基带信号经过等效基带系统的响应

tt = 0:dt:t1(end)+t(end)+dt; yt = conv(s1,h1);

subplot(629) plot(tt,yt);

xlabel('t' );ylabel('y(t)');

title(' 带通信号与带通系统响应的卷积' )

ytl = conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt);

subplot(6,2,10) plot(tt,real(yt));

xlabel('t' );ylabel('y_l(t)cos(20*pi*t'); title(' 等效基带与等效基带系统响应的卷积×中心频率载波' )

subplot(6,2,11) sff=s1f.*h2f; [t,st]=F2T(f1,sff); plot(t,st);

title(' 取傅立叶反变换方式' ) df=f1(2)-f1(1); E=sum(abs(sff).^2)*df

F2T 函数:

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);

通信号

R e [s l (t ) ]

s 1(t )

等效基带信号的实

t

带通信号幅度谱

t

等效基带信号的幅度

|S 1(f ) |

f

带通系统的传输响应幅度谱

|S l (f ) |

f

带通系统的等效基带幅度谱

f

带通系统的冲激响

|H l (f ) |

|H (f ) |

f

带通系统的等效基带冲激响应

y l (t ) c o s (20*p i *t

t

带通信号与带通系统响应的卷积

h l (t )

h (t )

t

等效基带与等效基带系统响应的卷积×中心频率载波

0123

56t

取傅立叶反变换方式

478910

y (t )

01234

5t

678910

00.511.522.533.544.55

2.4信号x(t)定义为

⎧1-2≤t

x (t ) =⎨

1≤t

通过Matlab 画出该信号的幅度和相位谱。

clear all ; clc; T=1;

N_sample=128; dt=T/N_sample; t=-2:dt:5;

x=[ones(1,N_sample),abs(t(N_sample:3*N_sample)),ones(1,N_sample),zero

s(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(' 幅度谱' );

T2F 函数:

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);

原始波形

1.5

1

0.5

0-2

5

-5-100

4

2

0-100-1012345相位谱-80-60-40-200幅度谱[1**********]-80-60-40-[1**********]100

3. 用matlab 产生一个频率为10Hz 、功率为2w 的余弦信源

m (t ),设载波频率为1KHz ,试画出:

(1)AM 信号(直流0.5V ),DSB-SC,SSB,VSB 调制信号;

(2)该调制信号的功率谱密度;

(3)相干解调后的信号波形。

%信源

close all ;

clear all ;

dt = 0.0001; %时间采样间隔

fm=10; %信源最高频率

fc=1000; %载波中心频率

T=0.5; %信号时长

t1 = 0:dt:T-dt;

mt = sqrt(4)*cos(2*pi*fm*t1); %信源

%N0 = 0.01; %白噪单边功率谱密度

%AM modulation

A=0.5;

s_am = (A+mt).*cos(2*pi*fc*t1);

B = 2*fm; %带通滤波器带宽

%noise = noise_nb(fc,B,N0,t); %窄带高斯噪声产生

%s_am = s_am + noise;

%%AM demodulation

figure(1)

subplot(311)

plot(t1,s_am);

hold on ;

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);

hold on ;

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*fc 2*fc 0 max(psf)]);

title('AM 信号功率谱' );

xlabel('f' );

%%DSB demodulation

figure(2)

s_dsb=mt.*cos(2*pi*fc*t1);

subplot(311)

plot(t1,s_dsb);

hold on ;

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);

hold on ;

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*fc 2*fc 0 max(psf)]);

title('DSB 信号功率谱' );

xlabel('f' );

%%SSB demodulation

figure(3)

s_ssb = real( hilbert(mt).*exp(j*2*pi*fc*t1) );

B=fm;

subplot(311)

plot(t1,s_ssb);

hold on ; %画出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);

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' );

%%VSB modulation

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);

figure(4)

subplot(311)

plot(t,s_vsb);

hold on ; %画出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);

hold on ;

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*fc 2*fc 0 max(psf)]);

title('VSB 信号功率谱' );

xlabel('f' );

AM 调制信号及其包络

5

-500.050.250.30.350.4

t

相干解调后的信号波形与输入信号的比较0.10.150.20.450.5

2

-200.050.10.150.20.250.3

t

AM 信号功率谱0.350.40.450.5

0.1

0.05

0-2000-1500-1000-5000

f [**************]

DSB 调制信号及其包络

2

-200.050.250.30.350.4

t

相干解调后的信号波形与输入信号的比较0.10.150.20.450.5

2

-200.050.10.150.250.3

t

DSB 信号功率谱0.20.350.40.450.5

0.1

0.05

0-2000-1500-1000-5000

f [**************]

SSB 调制信号

2

-200.050.250.30.350.4

t

相干解调后的信号波形与输入信号的比较0.10.150.20.450.5

2

-200.050.10.150.250.3

t

SSB 信号功率谱0.20.350.40.450.5

0.4

0.2

0-2000-1500-1000-5000

f [**************]

6.1设载波频率为20Hz ,信息速率为2 Baud,用Matlab 画出:

(1)QPSK 信号的波形

(2)QPSK 信号经过带宽为4Hz 的带通系统后的包络波形

%设载波频率为20Hz ,信息速率为2 Baud,用Matlab 画出:

%QPSK

close all ;

clear all ;

M=4;

Ts=2;

fc=20;%载波频率为20Hz

N_sample=16;

N_num=100;

dt=1/fc/N_sample;

t=0:dt:N_num*Ts/2-dt;

T=dt*length(t);

for PL=1:100%输入100段N_num个码字的波形,为了使功率谱密度看起来更加平滑 %可以取这100段信号功率谱密度的平均

d1=sign(randn(1,N_num));

d2=sign(randn(1,N_num));

gt=ones(1,fc*N_sample);

%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);

%经过带通后

[f y1f]=T2F(t,st_qpsk);

[t y1]=bpf(f,y1f,fc-1/Ts,fc+1/Ts);

subplot(211)

plot(t,st_qpsk);xlabel('t' );ylabel('QPSK 波形' );

axis([5 15 -1.6 1.6]);

title('QPSK 波形' );

subplot(212)

plot(t,y1);xlabel('t' );ylabel('QPSK 波形' );

axis([5 15 -1.6 1.6]);

title(' 经过带通后的波形' );

end

QPSK 波形

1

Q P S K 波形0

-1

56781011

t

经过带通后的波形912131415

1

Q P S K 波形0

-1

5678910

t 1112131415

6.2写一个Matlab 程序实现一个二进制DPSK 通信系统的Monte Carlo仿真。设传输信号相位是θ=0°和θ=180°,θ=0°的相位变化对应于传输“0”,而θ=180°的相位变化对应于传输“1”。在不同的SNR 参数εb/N0值下,传输N=10000个比特作仿真。为了方便可将εb归一化为1,然后用σ^2=N0/2,SNR就是εb/N0=1/(2σ^2),这里σ^2是加信噪声分量的方差。所以SNR 可以通过给加信噪声分量的方差加权予以控制。画出测出的二进制DPSK 的误码率,并将它与理论差错概率作比较。

clear all ;

EsN0dB=3:0.5:10;

EsN0=10.^(EsN0dB/10);

Es=1;

N0=10.^(-EsN0dB/10);

sigma=sqrt(N0/2);

N_num=10000;

error=zeros(1,length(EsN0dB));

s_data=zeros(1,length(EsN0dB));

for k=1:length(EsN0dB)

error(k)=0;

s_data(k)=0;

while error(k)

d=(sign(randn(1,N_num))+1)/2; %随即产生10000个单极性码元 %绝对码转换为差分码(传号差分码) dpsk信号

for i=1:N_num

if i==1

b(1)=d(1);

else

b(i)=xor(d(i),b(i-1));

end

end

%DPSK信号 相位变化0用0表示,变化pi 用1表示 s_dpsk=sqrt(Es)*exp(j*pi*b);

%加入信道噪声的信号

r=s_dpsk+sigma(k)*(randn(1,length(d))+j*randn(1,length(d))); %判决

for m=1:2 %计算距离 m =1: 0;m=2 :pi

rd(m,:)=abs(r-sqrt(Es)*exp(j*pi*(m-1)));

end

for n=1:length(s_dpsk)

if rd(1,n)

dd(n)=0;

else

dd(n)=1;

end

end

% 差分码转换为绝对码

r(1)=dd(1);

for i=2:N_num

r(i)=xor(dd(i),dd(i-1)); end

%接收到的信号与原信号比较得到误码率 for p=1:N_num

if r(p)~=d(p)

error(k)=error(k)+1; end

end

s_data(k)=s_data(k)+N_num; end

end

%实际误码率

Pe=error./s_data;

%理论误码率

Pb=erfc(sqrt(EsN0));

figure

semilogy(EsN0dB,Pb); hold on ; semilogy(EsN0dB,Pe,'rd-' );

legend(' 理论计算值' , ' 仿真结果' );

xlabel('(Es/N0)/dB'),ylabel(' 误码率' ), title('DPSK 系统的误码率' )


相关文章

  • 基带传输系统实验报告
  • 基于System view 的基带传输系统 学生姓名:林芳 指导老师:蔡春娥 摘要:本课程设计主要是为了进一步理解数字基带传输系统的构成及其工作原理,并能通过System View软件来实现对数字基带传输系统的仿真,且通过对各个元件的参数进 ...查看


  • 虚拟实验室建设方案
  • 电子信息技术虚拟实验室建设实施方案 虚拟实验室是一种基于Web技术.VR虚拟现实技术构建的开放式网络化的虚拟实验教学系统,是现有各种教学实验室的数字化和虚拟化.虚拟实验室由虚拟仿真平台.虚拟实验平台.虚拟仪器和开放式实验室管理系统组成.虚拟 ...查看


  • 东北大学全日制工程硕士研究生培养方案
  • 全日制工程硕士研究生培养方案 研究生院 二OO 九年七月 前言 为更好地适应国家经济建设和社会发展对高层次应用型人才的迫切需要,积极发展具有中国特色的专业学位教育,教育部自2009年起,扩大招收以应届本科毕业生为主的全日制硕士专业学位范围, ...查看


  • 通信原理课程设计题目
  • 样题: 题目一: (每组3人) 1.结合通信系统原理框图,利用实验设备完成数字基带信号传输系统.数字频带信号传输系统(FSK.PSK等)的硬件设计. 2.将计算机作为信源和信宿,通过编程,利用PC机串口实现信号的发送和接收. 3.要求学生画 ...查看


  • 项目可行性研究报告(
  • 宁德师范学院服务海西建设重大(点)项目 可行性研究报告 项目名称: 项目类型: 承担单位: 项目负责人: 合作单位: 宁德师范学院 二○一○年九月 目 录 项 目 摘 要 据统计,到2010年底,宁德市渔业经济总量达到108.3亿元,水产品 ...查看


  • 锁相技术实验报告
  • <锁相技术> 课程结业论文 题 目: 一阶PLL 实现FM 解调器 院系名称: 信息科学与工程学院 专业班级: 电子信息工程12级03班 学生姓名: 刘海峰 学 号: [1**********]7 授课教师: 朱春华 2015 ...查看


  • 通信原理实验报告
  • 现代通信原理课程 设计报告 设计题目: 题目 2 专业班级: 学 号: 2010101026 姓 名:刘敬亚 任课教师: 设计时间: 题目2 一.设计任务与要求 1.设计目的 使用. (2)根据设计要求,查阅相关资料,掌握模拟信号的调频与解 ...查看


  • 第四章 通信技术创新平台建设方案20090909
  • 第四章 通信技术创新平台建设方案 一. 通信技术创新平台建设目标 山东省通信技术创新服务平台的总体目标:力争用三-五年左右的时间,建立一个高起点的通信技术创新服务平台,服务科研与产业应用,对目前的实用通信技术和设备进行高水平的集中研发,并对 ...查看


  • 电子与信息技术1
  • 中等职业学校 电子与信息技术专业课程设置 一.招生对象与学制 本专业招收初中毕业生或具有同等学力者,学制3-4年. 二.培养目标与业务范围 (一) 培养目标 本专业培养与我国社会主义现代化建设要求相适应,在德.智.体.美等方面全面发展,具有 ...查看


  • 通信原理中的MATLAB仿真设计
  • 毕业设计(论文) 题 目: 通信原理中的MATLAB 仿真设计 学生姓名: 学 号: 所在学院: 专业班级: 届 别: 指导教师: 2010013609 信息工程学院 通信1004 2014届 本科毕业设计(论文)创作诚信承诺书 1. 本人 ...查看


热门内容