资源简介
直接运行Demo文件即可,本算法案例是两源信号卷积混合,基于同一信号相邻频点能量相关的方法对频域盲源分离信号进行排序
代码片段和文件信息
%连续波信号用基于影响因子的频域盲源分离排序算法,效果较好
clear;
clc;
%源信号,50000点采样,连续信号同时到达
Fs=100e6;%采样率
N=50000;%总共仿真500us,采样点数50000
t=[0:1/(100e6):500e-6-0.01e-6];
%s1(t)产生LFM信号,中心频率0.5M
s1=chirp(t0500e-6-0.01e-61e6‘linear‘);%产生脉冲周期序列的基础
%s2(t)BPSK信号,10位,1110010101,中心频率为0.1M,每个码元持续50us
% b1=[1 1 1 0 0 1 0 1 0 1];
% b=(b1-1)*(-pi);
% tt2=[0:1/(100e6):50e-6-0.01e-6;
% 50e-6:1/(100e6):100e-6-0.01e-6;
% 100e-6:1/(100e6):150e-6-0.01e-6;
% 150e-6:1/(100e6):200e-6-0.01e-6;
% 200e-6:1/(100e6):250e-6-0.01e-6;
% 250e-6:1/(100e6):300e-6-0.01e-6;
% 300e-6:1/(100e6):350e-6-0.01e-6;
% 350e-6:1/(100e6):400e-6-0.01e-6;
% 400e-6:1/(100e6):450e-6-0.01e-6;
% 450e-6:1/(100e6):500e-6-0.01e-6];
% %10*5000点
% ss2=zeros(105000);
% for i=1:10
% ss2(i:)=cos(2*pi*0.1e6*tt2(i:)+b(i));
% end
% s2=zeros(150000);
% for i=1:10
% s2(5000*(i-1)+1:5000*i)=ss2(i:);
% end
%
%s3产生2FSK信号,10位1110010101,1频率0.5M,0频率0.1M
c1=[1 0 1 0 1 0 0 1 0 0];
tt3=[0:1/(100e6):50e-6-0.01e-6;
50e-6:1/(100e6):100e-6-0.01e-6;
100e-6:1/(100e6):150e-6-0.01e-6;
150e-6:1/(100e6):200e-6-0.01e-6;
200e-6:1/(100e6):250e-6-0.01e-6;
250e-6:1/(100e6):300e-6-0.01e-6;
300e-6:1/(100e6):350e-6-0.01e-6;
350e-6:1/(100e6):400e-6-0.01e-6;
400e-6:1/(100e6):450e-6-0.01e-6;
450e-6:1/(100e6):500e-6-0.01e-6];
%10*5000点
ss3=zeros(105000);
for i=1:10
if c1(i)==1
ss3(i:)=cos(2*pi*0.5e6*tt3(i:));
else
ss3(i:)=cos(2*pi*0.1e6*tt3(i:));
end
end
s3=zeros(150000);
for i=1:10
s3(5000*(i-1)+1:5000*i)=ss3(i:);
end
originalsig2=[s1;s3];
figure(1);
subplot(‘211‘);plot(ts1);axis([0500e-6-22]);title(‘s1(t)LFM信号‘);xlabel(‘t(单位s)‘);
% subplot(‘312‘);plot(ts2);axis([0500e-6-22]);title(‘s2(t)BPSK信号‘);xlabel(‘t(单位s)‘);
subplot(‘212‘);plot(ts3);axis([0500e-6-22]);title(‘s3(t)2FSK信号‘);xlabel(‘t(单位s)‘);
%混合过程,要求混合滤波器可逆,怎么做到?
Nobserv=size(originalsig21);%求行数
Nsource=Nobserv;
FilterLength=10;%10阶滤波器
H = rand(NobservFilterLengthNsource); %random generation of the mixing filter
%卷积混合信号
mixedsig2=zeros(Nsourcesize(originalsig22));%2行采样点数
for j=1:size(originalsig21)%H行数
for i=1:size(originalsig21)
mixedsig2(j:)=mixedsig2(j:)+filter(H(j:i)1originalsig2(i:));
end
end
figure(2);
subplot(‘211‘);plot(tmixedsig2(1:));axis([0500e-6-2020]);title(‘观测信号1‘);xlabel(‘t(单位s)‘);
subplot(‘212‘);plot(tmixedsig2(2:));axis([0500e-6-2020]);title(‘观测信号2‘);xlabel(‘t(单位s)‘);
% subplot(‘313‘);plot(tmixedsig2(3:));axis([0500e-6-2020]);title(‘观测信号3‘);xlabel(‘t(单位s)‘);
%STFT变换
%window=hamming(512);
nfft=512;%nfft是做FFT变换的点数,这里取nfft=窗长
%noverlap=256;%滑动步长默认是帧长的一半
%[S1F1T1]=spectrogram(mixedsig2(1:)windownoverlapnfftFs);
%[tfr1tTF1] = tfrstft(mixedsig2(1:)‘tNhamming(127)0);
%[tfr1tTF1] = tfrstft(mixedsig2(1:)‘tNhamming(127));
% X_w1=specgram(x1N_frequencyFswindowoverlap)
[S1 F1 T1] = s
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-04-12 18:58 卷积盲源分离(2 source 基于能量相关排序)\
文件 5763 2016-06-30 15:38 卷积盲源分离(2 source 基于能量相关排序)\demo_2source.m
文件 1886 2016-06-15 20:57 卷积盲源分离(2 source 基于能量相关排序)\istft.m
文件 9218 2016-06-15 20:57 卷积盲源分离(2 source 基于能量相关排序)\jade.m
文件 370 2016-09-13 23:07 卷积盲源分离(2 source 基于能量相关排序)\Rxiang.m
文件 58 2016-06-29 10:19 卷积盲源分离(2 source 基于能量相关排序)\S.m
文件 1625 2016-06-15 20:57 卷积盲源分离(2 source 基于能量相关排序)\stft.m
文件 344 2016-09-11 21:25 卷积盲源分离(2 source 基于能量相关排序)\W.m
文件 290 2016-06-15 20:57 卷积盲源分离(2 source 基于能量相关排序)\xiangsi.m
- 上一篇:原生js input表单城市选择器代码
- 下一篇:F5负载均衡命令 手册
评论
共有 条评论