文档库 最新最全的文档下载
当前位置:文档库 › 实验二连续波MATLAB实现实验报告

实验二连续波MATLAB实现实验报告

实验二(1小班)连续波MATLAB 实现

姓名:买提阿布都拉·奥布力喀斯木

学号:PB12210174

一、实验目的

掌握线性模拟调制信号的波形及产生方法

掌握线性模拟调制信号的频谱特点

掌握线性模拟调制信号的解调方法

掌握线性模拟调制系统的MATLAB 仿真实现

二、实验原理

1.AM 调制

AM 信号的时域表示式:

频谱:

调制器模型如图1所示:图1AM 调制器模型

AM 的时域波形和频谱如图2

所示:

时域

频域

图2AM 调制时、频域波形

2.DSB-SC 调制00()[()]cos cos ()cos AM c c c s t A m t t A t m t t ωωω=+=+0

1()[()()][()()]2

AM c c c c S A M M ωπδωωδωωωωωω=++-+++-

DSB 信号的时域表示式

频谱:DSB 的时域波形和频谱如图3所示:

时域

频域

图3DSB 调制时、频域波形

DSB 的相干解调模型如图4所示:

:图4DSB 调制器模型

3.SSB 调制

SSB 信号的时域表示式

频谱:分为上边带和下边带,均为双边带的一半。

三、实验内容(任选一)

1.用matlab 产生一个频率为1Hz ,振幅为1的余弦信源,设载波频率为10Hz ,A=2。

①AM 系统中,当相干解调器输入信噪比为15dB 时,系统各点的波形及其频谱,并对调制信号和解调信号进行比较分析。

主程序:

clc;clear all ;close all ;t

t m t s c DSB ωcos )()(=)]()([

21)(c c DSB M M S ωωωωω-++=11()cos cos sin sin 22

SSB m m c m m c s t A t t A t t ωωωω=

A=2;

fc=10;

t0=1;

snr=input('input snr');

dt=0.002;

fs=1/dt;

df=0.02;

t=0:dt:t0;

Lt=length(t);

snr_lin=10^(snr/10);

m=cos(2*pi*t);

L=2*min(m);

R=2*max(abs(m))+A;

pause

clf

figure(1);

subplot(321);

plot(t,m(1:length(t)));

axis([0t0-R/2R/2]);

xlabel('t');

ylabel('调制信号');

subplot(322);

[M,m,df1,f]=T2F(m,dt,df,fs); [Bw_eq]=signalband(M,df,t0);

f_start=fc-Bw_eq;

f_cutoff=fc+Bw_eq;

plot(f,fftshift(abs(M)));

axis([-3301.2]);

xlabel('f');ylabel('调制信号频谱'); pause

subplot(323);

c=cos(2*pi*fc*t);

plot(t,c);

axis([0t0-1.21.2]);

xlabel('t');ylabel('载波信号'); subplot(324)

[C,c,df1,f]=T2F(c,dt,df,fs); plot(f,fftshift(abs(C)));

axis([-202001.2]);

xlabel('f');ylabel('载波信号频谱'); pause

subplot(325)

u=(A+m(1:Lt)).*c(1:Lt);

plot(t,u);

axis([0t0-R R]);

xlabel('t');ylabel('已调信号');

subplot(326);

[U,u,df1,f]=T2F(u,dt,df,fs);

plot(f,fftshift(abs(U)));

axis([-202001]);

xlabel('f');ylabel('已调信号频谱');

signal_power=power_x(u(1:Lt));

noise_power=(signal_power*fs)/(snr_lin*4*Bw_eq); noise_std=sqrt(noise_power);

noise=noise_std*randn(1,Lt);

pause

figure(2);

subplot(321);

plot(t,noise);

axis([0t0-R R]);

xlabel('t');ylabel('噪声信号');

subplot(322);

[noisef,noise,df1,f]=T2F(noise,dt,df,fs);

plot(f,fftshift(abs(noisef)));

axis([-151501.2]);

xlabel('f');ylabel('噪声信号频谱');

pause

sam=u(1:Lt)+noise(1:Lt);

subplot(323);

plot(t,sam);

axis([0t0-R R]);

xlabel('t');

ylabel('信道中的信号');

subplot(324);

[samf,sam,df1,f]=T2F(sam,dt,df,fs);

plot(f,fftshift(abs(samf)));

axis([-202001.2]);

xlabel('f');

ylabel('信道中的信号频谱');

[H,f]=bp_f(length(sam),f_start,f_cutoff,df1,fs,1); subplot(326);

plot(f,fftshift(abs(H)));

xlabel('f');ylabel('带通滤波器’); pause

DEM=H.*samf;

[dem]=F2T(DEM,fs);

figure(3)

subplot(321)

plot(t,dem(1:Lt))

axis([0t0-R R]);

xlabel('t');

ylabel('理想BPF输出信号');

[demf,dem,df1,f]=T2F(dem(1:Lt),dt,df,fs); subplot(322)

plot(f,fftshift(abs(demf)));

xlabel('f');

axis([-202001.2]);

ylabel('理想BPF输出频谱');

pause

subplot(323)

plot(t,c(1:Lt));

axis([0t0-1.21.2]);

xlabel('t');

ylabel('本地载波');

subplot(324)

[C,c,df1,f]=T2F(c(1:Lt),dt,df,fs);

plot(f,fftshift(abs(C)));

axis([-202001.2]);

xlabel('f');

ylabel('本地载波频谱');

pause

der=dem(1:Lt).*c(1:Lt);

subplot(325)

plot(t,der);

axis([0t0-R R]);

xlabel('t');

ylabel('混频后的信号');

subplot(326)

[derf,der,df1,f]=T2F(der,dt,df,fs);

plot(f,fftshift(abs(derf)));

xlabel('f');

ylabel('混频后的信号频谱');

pause

figure(4)

[LPF,f]=lp_f(length(der),Bw_eq,df1,fs,2); subplot(322)

plot(f,fftshift(abs(LPF)));

xlabel('f');

axis([-151502]);

ylabel('理想LPF');

pause

DM=LPF.*derf;

[dm]=F2T(DM,fs);

subplot(323)

plot(t,dm(1:Lt));

axis([0t0-R R]);

xlabel('t');

ylabel('LPF输出信号');

[dmf,dm,df1,f]=T2F(dm(1:Lt),dt,df,fs); subplot(324)

plot(f,fftshift(dmf));

axis([-3302]);

xlabel('f');

ylabel('LPF输出信号频谱');

pause

dmd=dm(1:Lt)-mean(dm(1:Lt));

subplot(325)

plot(t,dmd);

axis([0t0-R/2R/2]);

xlabel('t');

ylabel('恢复信号');

[dmdf,dmd,df1,f]=T2F(dmd,dt,df,fs); subplot(326)

plot(f,fftshift(dmdf));

axis([-3301.2]);

xlabel('f');

ylabel('恢复信号频谱');

subplot(321);

plot(t,m(1:Lt));

axis([0t0-R/2R/2]);

xlabel('t');

ylabel('已调信号);

子程序:

序列的傅立叶变换

function[M,m,df]=fftseq(m,ts,df)

%各参数含义与子函数T2F中的完全相同,完成

fs=1/ts;

if nargin==2

n1=0;

else

n1=fs/df;

end

n2=length(m);

n=2^(max(nextpow2(n1),nextpow2(n2)));

M=fft(m,n);

m=[m,zeros(1,n-n2)];

df=fs/n;

计算信号功率

function p=power_x(x)

p=(norm(x).^2)./length(x);

信号从频域转换到时域

function[m]=F2T(M,fs)

m=real(ifft(M))*fs;

信号从时域转换到频域

function[M,m,df1,f]=T2F(m,ts,df,fs)

[M,m,df1]=fftseq(m,ts,df);

f=[0:df1:df1*(length(m)-1)]-fs/2;

M=M/fs;

带通滤波器

function[H,f]=bp_f(n,f_start,f_cutoff,df1,fs,p) n_cutoff=floor(f_cutoff/df1);

n_start=floor(f_start/df1);

f=[0:df1:df1*(n-1)]-fs/2;

H=zeros(size(f));

H(n_start+1:n_cutoff)=p*ones(1,n_cutoff-n_start);

H(length(f)-n_cutoff+1:length(f)-n_start)=p*ones(1,n_cutoff-n_start 低通滤波器

function[H,f]=lp_f(n,f_cutoff,df1,fs,p)

n_cutoff=floor(f_cutoff/df1);

f=[0:df1:df1*(n-1)]-fs/2;

H=zeros(size(f));

H(1:n_cutoff)=p*ones(1,n_cutoff);

H(length(f)-n_cutoff+1:length(f))=p*ones(1,n_cutoff);

计算信号有效带宽

function[Bw_eq]=signalband(sf,df,T)

sf_max=max(abs(sf));

Bw_eq=sum(abs(sf).^2)*df/T/sf_max.^2;

实验结果及分析:

运行主程序,输入信噪比15

得到如下结果:

恢复信号的失真比较大。

②分析比较不同信噪比下的解调信号输入信噪比为30得到如下结果

输入信噪比50,得到如下结果:

输入信噪比100,得到如下结果:

分析:理论上,信噪比越大信号的失真越小,解调信号更加接近原信号,而从这个实验结果看,解调信号没有明显变化,说明本实验的算法设计的不够好。

相关文档
相关文档 最新文档