fd=24000;
dt=1/fd;
t=(0:dt:2); %массив времен
d=0.1;% шаг между приемниками АР
c=1500;

n=512; % число точек БПФ
M=30; %кол во элементов АР (линейная)
jk=sqrt(-1); %мнимая еденица
df=fd/n; %частотное разрешение системы
fk=df*(0:n-1); %массив частот после преобр фурье

f=input ('введите частоту сигнала (1-2.5)kHz-I чд,(2-5)kHz-II чд,(4-8)kHz-III чд =');
fk0=floor(f/df+0.5);
nd=input('Введите номер диапазона=');
k1=[21 42 85];%Начальные номера диапазонов
k2=[53 107 171];%Конечные номера длиапазона
k0_=[7 10 7];
kl_=[10 8 6];
kH=k1(nd);
kB=k2(nd);
kl=kl_(nd);
k0=k0_(nd);
fm=5;
am=0.0;
al=-pi/4; % угол прихода сигнала
s=cos(2*pi*f*t); % сигнал в поле в точке значения
s=cos(2*pi*f*t).*(1+am*cos(2*pi*fm*t));
tau0=d/c*sin(al); %Задержка сигнала между соседними приемными элементами
tau=(0:M-1)'*tau0;% массив задержек

Ttau=repmat(tau,1,size(t,2)); %формируем массив задержек размножаем на все моменты времени на 1 сек
%sound (s,fd)
T=repmat(t,M,1);% размножили время на M приемных элементов
x=cos(2*pi*f*(T-Ttau)).*(1+am*cos(2*pi*fm*(T-Ttau))); %сигнал на элементах АР приходящий с направления альфа
%figure,image(x(:,1:200)*70), shading interp;
fk1=[fk(1:n/2+1) fk(n/2+2:n)-fd];
kolf=exp(jk*2*pi*tau*fk1);
fo=zeros(1,n);
fo(kH-kl:kB+kl)= hann (kB-kH+2*kl+1); % вырезание полосы
Ro=repmat(fo,M,1); %Размножение матрицы
Per=1*n/2;%144%перекрытие
n_per=n-Per;
K=Per/2+1;

for i=1:100;
In=(i-1)*n_per+1;
Ik=In+n-1;
Y0=fft(x(:,In:Ik),n,2);
Y=Y0.*Ro;%вырезание полосы частот
z=sum(Y.*kolf,1); %Процедура формирования канала наблюдения
% сдвиг полосы частот
V=zeros(1,n);
V(k0:k0+kB-kH+2*kl)=z(kH-kl:kB+kl);
%Восстановление сигнала
U=ifft(z,n);
Ik1=i*n_per; In1=(i-1)*n_per+1; % изменить
w(In1:Ik1)=real(U(K:K+n_per-1));
U=ifft(V,n);
w1(In1:Ik1)=real(U(K:K+n_per-1));
end


nBCE=size(w,2); % число отсчетов в реализации
figure,plot(fd/nBCE*(0:nBCE-1),20*log10(abs(fft(w))));
xlabel('Гц')
ylabel('дБ')
figure, plot (w)
xlabel('T/dt')
sound (w,fd);
figure,plot(fd/nBCE*(0:nBCE-1),20*log10(abs(fft(w1))));
xlabel('Гц')
ylabel('дБ')
figure, plot (w1)
xlabel('T/dt')
sound (w1,fd);

figure,plot(abs(ifft(fo,512))),grid on;
figure,plot (fo);





Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.