实验报告(4)

2020-03-29 14:06

noise12=sqrt(snr/2)*(randn(1,len12)); noise13=sqrt(snr/2)*(randn(1,len13)); noise14=sqrt(snr/2)*(randn(1,len14)); Y_11=Y11+noise11; %%加噪声 Y_12=Y12+noise12; Y_13=Y13+noise13; Y_14=Y14+noise14;

YY1=[Y_11 zeros(1,length(Y_13)-length(Y_11))]; YY2=[Y_12 zeros(1,length(Y_13)-length(Y_12))]; YY4=[Y_14 zeros(1,length(Y_13)-length(Y_14))]; YY3=Y_13;

receive1=YY1+YY2+YY3+YY4; %%接收机1接收的信号 figure;

plot(abs(receive1));

title('接收机1收到的信号'); %%%%接收机2接收的信号

Y21=[zeros(1,fs*shiyan2(1)) Y1];len21=length(Y21); %加时延 Y22=[zeros(1,fs*shiyan2(2)) Y2];len22=length(Y22); Y23=[zeros(1,fs*shiyan2(3)) Y3];len23=length(Y23); Y24=[zeros(1,fs*shiyan2(4)) Y4];len24=length(Y24); % noise21=awgn(Y21,noise); % noise22=awgn(Y22,noise); % noise23=awgn(Y23,noise); % noise24=awgn(Y24,noise);

noise21=sqrt(snr/2)*(randn(1,len21)); noise22=sqrt(snr/2)*(randn(1,len22)); noise23=sqrt(snr/2)*(randn(1,len23)); noise24=sqrt(snr/2)*(randn(1,len24)); Y_21=Y21+noise21;

Y_22=Y22+noise22; %加噪声 Y_23=Y23+noise23; Y_24=Y24+noise24;

YYY1=[Y_21 zeros(1,length(Y_23)-length(Y_21))]; YYY2=[Y_22 zeros(1,length(Y_23)-length(Y_22))]; YYY4=[Y_24 zeros(1,length(Y_23)-length(Y_24))]; YYY3=Y_23;

receive2=YYY1+YYY2+YYY3+YYY4; %%接收机2接收的信号 figure;

plot(abs(receive2));

title('接收机2收到的信号');

fid = fopen('C:\\Documents and Settings\\Administrator\\桌面\\信号分析\\receive1.dat','w'); fwrite(fid,receive1,'double');

fid = fopen('C:\\Documents and Settings\\Administrator\\桌面\\信号分析\\receive2.dat','w'); fwrite(fid,receive2,'double');

%% 信号分析

clc;closeall;clear all;

fid=fopen('C:\\Documents and Settings\\Administrator\\桌面\\信号分析\\receive1.dat'); s=fread(fid,'double'); s=abs(s'); plot(s);

% noise=s(1:10000);

% noisemean=mean(noise); % noisevar=var(noise);

T=0.3; %%%设定门限 fs=10e7;

% b=zeros(length(s),2); %%脉宽

m=1;n=1;q=0;summ=0;count=0;%定义参数初值 %% 将信号二值化 as=zeros(1,length(s)); for i=1:length(s)

if s(i)>=T %%如果信号幅度大于等于门限,则判为1 as(i)=1; else

as(i)=0;%否则判为0 end end

%% 求脉冲的起始位置和结束位置 for i=2:length(s)-300 summ=sum(as(i:i+300)); if as(i)==1&&count==0 ifsumm>=220

b(m,1)=i; % b矩阵的第一列存放脉冲起始位置 m=m+1; count=1; end end

if count==1&&summ<40

b(n,2)=i; % b矩阵的第二列存放脉冲结束位置 n=n+1; count=0; end end

%% 求脉宽

a=b(:,2)-b(:,1); %a矩阵存放脉宽

figure; stem(a);

axis([0,200,0,4000]); title('脉宽'); %% 载频 N=10000;

for i=1:length(b)

maichong=[s(b(i,1):b(i,2))];

maichong_FFT=abs(fft(maichong,N)); maichong_FFT(1:60)=0;

maichong_FFT(9940:10000)=0; [Fcmax,k]=max(maichong_FFT); Fc(i)=k/(2*N)*fs; ü矩阵存放载频 end figure; stem(Fc);

title('载频');

%% K均值聚类法对脉冲进行分类 % %选择聚类中心 maizu=[a';Fc/10000];

jlzx=[maizu(:,1),maizu(:,2),maizu(:,102),maizu(:,128)]; %聚类中心 jlzl(1,1)=1; jlzl(2,1)=2; jlzl(3,1)=102;

jlzl(4,1)=128; %聚类种类 %%

%设置判决条件 panjue=20; panjue_js=25;

whilepanjue_js>panjue

%对每个脉冲进行分类 jljl=zeros(1,4); %聚类距离 m1=2;m2=2;m3=2;m4=2; M=length(a); jljl_min=zeros(1,M); for n=1:M

jljl(:)=sqrt((jlzx(1,:)-maizu(1,n)).^2+(jlzx(2,:)-maizu(2,n)).^2); jljl_min(n)=min(jljl); ifjljl_min(n)>500 continue; end

ifjljl(1)==jljl_min(n) jlzl(1,m1)=n;

m1=m1+1;

elseifjljl(2)==jljl_min(n) jlzl(2,m2)=n;

m2=m2+1; elseifjljl(3)==jljl_min(n) jlzl(3,m3)=n;

m3=m3+1; else

jlzl(4,m4)=n;

m4=m4+1; end end

Mjl(1)=m1-1;Mjl(2)=m2-1;Mjl(3)=m3-1;Mjl(4)=m4-1; %对每类求出新的聚类中心 jlzx_n=zeros(2,4); for n=1:4

sum1=0;sum2=0; fornn=1:Mjl(n)

sum1=sum1+maizu(1,jlzl(n,nn)); sum2=sum2+maizu(2,jlzl(n,nn)); jlzx_n(1,n)=sum1/Mjl(n); jlzx_n(2,n)=sum2/Mjl(n); end end

%判决条件(新旧两个聚类中心)距离较小 panjue_js=sqrt(sum(sum((jlzx-jlzx_n).^2))); %设置新的判决中心 jlzx=jlzx_n; end

%聚类种类每类个数


实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑大师名言

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: