《MATLAB与通信仿真》实验1

更新时间:2023-07-24 12:28:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB仿真,常规幅度调制方式,画出波形和功率谱密度,非相干解调,高斯噪声

《MATLAB与通信仿真》实验1

一、目的和要求:

要求学生在熟练掌握MATLAB仿真使用的基础上,学会通信仿真系统的基本设计与调试。并结合通信原理的知识,对通信仿真系统进行性能分析。 二、实验环境

PC机、Matlab

三、具体内容及要求

信号m(t)定义为: t0 A0 t 3 t2t m(t) 2A0 t 0,m(t) m(t t0) 33 2t0 0 t t0 3

其中A的取值为学生学号的末两位乘以0.1。t0的取值为学生学号的末位乘以0.05(s)。

该信号以常规幅度调制方式调制,其中调制指数为0.8,载波c(t) cos(2 fct),其中fc取值为学生学号的末三位(Hz),所得已调信号为u(t)。

试用Matlab编程实现:画出m(t)、c(t)和u(t)的波形和功率谱密度 并给出常规幅度调制信号的非相干解调。

若将一个高斯噪声加到已调信号上,所得的SNR是10dB,求噪声功率。分别画出该高斯噪声的波形和功率谱密度,高斯噪声加已调信号的波形和功率谱密度。

(计算一个周期的波形即可)

1.

function y=cmccc(t) % M函数定义

t=0:0.0001:0.5;

f=130;

nfft=1024;

Fs=10000;

leng=length(t); % 计算向量x的长度

for m=1:leng % 计算函数值

if t(m)<=1/6 % 判断x取值所在范围

y(m)=3; % 计算分段函数值

MATLAB仿真,常规幅度调制方式,画出波形和功率谱密度,非相干解调,高斯噪声

else if t(m)<=1/3

y(m)=-6;

else y(m)=0;

end

end

end

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

u=c.*(2*1/0.8+y);

y1=xcorr(y,'unbiased'); % 计算序列的自相关函数

y2=abs(fft(y1,nfft));

index=0:round(nfft/2-1);

k=index*Fs/nfft;

y3=10*log10(y2(index+1));

c1=xcorr(c,'unbiased');

c2=abs(fft(c1,nfft));

index2=0:round(nfft/2-1);

k2=index2*Fs/nfft;

c3=10*log10(c2(index2+1));

u1=xcorr(u,'unbiased');

u2=abs(fft(u1,nfft));

index3=0:round(nfft/2-1);

k3=index*Fs/nfft;

u3=10*log10(u2(index3+1));

subplot(3,2,1),plot(t,y),grid; % 画图显示结果

subplot(3,2,2),plot(t,c),grid;

subplot(3,2,3),plot(t,u),grid;

subplot(3,2,4),plot(k,y3),grid;

subplot(3,2,5),plot(k2,c3),grid;

subplot(3,2,6),plot(k3,u3),grid;

2.

function y=fxgjt(t) % M函数定义

t=0:0.0001:0.5;

f=130;

leng=length(t); % 计算向量x的长度

for m=1:leng % 计算函数值

if t(m)<=1/6 % 判断x取值所在范围

MATLAB仿真,常规幅度调制方式,画出波形和功率谱密度,非相干解调,高斯噪声

y(m)=3; % 计算分段函数值

else if t(m)<=1/3

y(m)=-6;

else y(m)=0;

end

end

end

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

u=c.*(2*1/0.8+y);

bl=abs(hilbert(u)); % 利用函数计算包络检波后的信号

% 画图显示各信号

subplot(3,1,1),plot(t,u),title('已调信号');

subplot(3,1,2),plot(t,bl),title('非相干解调后的信号');

subplot(3,1,3),plot(t,y),title('原始信号');

3.

function y=gszs(t) % M函数定义

t=0:0.0001:0.5;

f=130;

nfft=1024;

SNR=10;

Fs=10000;

leng=length(t); % 计算向量x的长度

for m=1:leng % 计算函数值

if t(m)<=1/6 % 判断x取值所在范围

y(m)=3; % 计算分段函数值

else if t(m)<=1/3

y(m)=-6;

else y(m)=0;

end

end

end

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

u=c.*(2*1/0.8+y);

sn=awgn(u,SNR);

noise=sn-u;

A=xcorr(noise,'unbiased'); % 计算噪声的自相关函数

A1=abs(fft(A,nfft)); % 计算噪声的功率谱密度

MATLAB仿真,常规幅度调制方式,画出波形和功率谱密度,非相干解调,高斯噪声

index=0:round(nfft/2-1);

k=index*Fs/nfft;

A2=10*log10(A1(index+1));

B=xcorr(sn,'unbiased'); % 计算加噪声的已调信号的自相关函数 B1=abs(fft(B,nfft)); % 计算加噪声的已调信号的功率谱密度 index2=0:round(nfft/2-1);

k2=index2*Fs/nfft;

B2=10*log10(B1(index2+1));

subplot(2,2,1),plot(t,noise),title('高斯白噪声'); % 画图显示结果

subplot(2,2,2),plot(k,A2),title('高斯白噪声的功率谱密度');

subplot(2,2,3),plot(t,sn),title('加噪声的已调信号');

subplot(2,2,4),plot(k2,B2),title('加噪声的已调信号的功率谱密度');

本文来源:https://www.bwwdw.com/article/fqnm.html

Top