Этот пример показывает эффекты импульсного сжатия, где переданный импульс модулируется и коррелирует с принятым сигналом. Импульсное сжатие используется в радиолокационных и гидроакустических системах, чтобы улучшить отношение сигнал/шум (ОСШ) и разрешение области значений путем сокращения длительности эхо-сигналов.
Во-первых, визуализируйте импульсное сжатие с помощью прямоугольного импульса. Создайте импульс длиной в одну секунду с частотой f0
от 10
Гц и частота дискретизации fs
от 1
кГц.
fs = 1e3; tmax = 15; tt = 0:1/fs:tmax-1/fs; f0 = 10; T = 1; t = 0:1/fs:T-1/fs; pls = cos(2*pi*f0*t);
Создайте принятый сигнал, начиная с 5
секунды, основанные на исходном импульсе без какого-либо шума. Сигнал представляет все более отдаленные цели, отраженные сигналы которых разделены 2
секунд. Термин отражательной способности ref
определяет, какую долю передаваемой степени имеет принятый импульс. Коэффициент затухания att
определяет, насколько уменьшается сила сигнала с течением времени.
t0 = 5; dt = 2*T; lgs = t0:dt:tmax; att = 1.1; ref = 0.2; rpls = pulstran(tt,[lgs;ref*att.^-(lgs-t0)]',pls,fs);
Добавьте Гауссов белый шум. Задайте ОСШ 15
дБ.
SNR = 15; r = randn(size(tt))*std(pls)/db2mag(SNR); rplsnoise = r+rpls;
Перекрестная корреляция принимаемого сигнала с переданным импульсом и построение графика обработанного сигнала. Переданный импульс, принятый импульс без шума и шумный принятый сигнал построены в верхнем графике для удобства.
[m,lg] = xcorr(rplsnoise,pls); m = m(lg>=0); tm = lg(lg>=0)/fs; subplot(2,1,1) plot(tt,rplsnoise,t,pls,tt,rpls) xticks(lgs) legend('Noisy Received','Initial Pulse','Noiseless Received') title('Transmitted/Received Signals') ylabel('Magnitude (L.U.)') subplot(2,1,2) plot(tm,abs(m)) xticks(lgs) title('Matched Filter Output') xlabel('Time (s)') ylabel('Magnitude (L.U.)')
Если бы это были отголоски от нескольких целей, можно было бы получить общее представление о местоположениях целей, потому что отголоски распределены достаточно далеко друг от друга. Однако, если цели ближе друг к другу, их ответы смешиваются.
dt = 1.5*T; lgs = t0:dt:tmax; rpls = pulstran(tt,[lgs;ref*att.^-(lgs-t0)]',pls,fs); rplsnoise = r + rpls; [m,lg] = xcorr(rplsnoise,pls); m = m(lg>=0); tm = lg(lg>=0)/fs; subplot(2,1,1) plot(tt,r,t,pls,tt,rpls) xticks(lgs) legend('Noisy Received','Initial Pulse','Noiseless Received') title('Transmitted/Received Signals') ylabel('Magnitude (L.U.)') subplot(2,1,2) plot(tm,abs(m)) xticks(lgs) title('Matched Filter Output') xlabel('Time (s)') ylabel('Magnitude (L.U.)')
Чтобы улучшить разрешение области значений или способность обнаруживать близко расположенные цели, используйте линейный частотно-модулированный импульс для перекрестной корреляции.
Выполните ту же процедуру, но со сложным щебетом с частотой, которая начинается с 0 Гц и линейно увеличивается до 10 Гц. Радиолокационные системы реального мира часто используют комплексные линейные FM-сигналы, чтобы улучшить разрешение области значений, потому что согласованный фильтр реакция больше и уже. Поскольку существует воображаемый компонент щебета и согласованного фильтра, все графики должны быть сделаны с использованием действительной части формы волны.
pls = chirp(t,0,T,f0,'complex'); rpls = pulstran(tt,[lgs;ref*att.^-(lgs-t0)]',pls,fs); r = randn(size(tt))*std(pls)/db2mag(SNR); rplsnoise = r + rpls; [m,lg] = xcorr(rplsnoise,pls); m = m(lg>=0); tm = lg(lg>=0)/fs; subplot(2,1,1) plot(tt,real(r),t,real(pls),tt,real(rpls)) xticks(lgs) legend('Noisy Received','Initial Pulse','Noiseless Received') title('Transmitted/Received Signals') ylabel('Magnitude (L.U.)') subplot(2,1,2) plot(tm,abs(m)) xticks(lgs) title('Matched Filter Output') xlabel('Time (s)') ylabel('Magnitude (L.U.)')
Перекрестная корреляция с линейным FM щебетом обеспечивает гораздо более мелкое разрешение для целевого шума, несмотря на то, что целевые эхо-сигналы находятся ближе друг к другу. Боковые полоски эхо-сигналов также значительно уменьшены по сравнению с прямоугольной щебетом, что позволяет более точно обнаруживать цель.
Несмотря на то, что перекрестная корреляция действительно улучшает разрешение области значений, алгоритм лучше поддается аналоговой аппаратной реализации. Чаще всего радиолокационные системы используют аналогичный процесс в цифровой области, называемый согласованной фильтрацией, где принятый сигнал свернут с измененной во времени версией переданного импульса. Согласованная фильтрация часто выполняется в частотном диапазоне, потому что свертка во временном интервале эквивалентна умножению в частотном диапазоне, что ускоряет процесс. Поскольку начальный импульс обращен во времени, отфильтрованный выход задерживается на ширину импульса T
, что составляет 1 секунду.
Чтобы показать это, измените время на противоположное исходному линейному FM импульсу и дополните импульс нулями, чтобы импульс и передаваемый сигнал имели одинаковую длину. Вычислите и постройте график преобразования Фурье комплексного сопряженного реверсивного импульса и сигнала с шумом. Умножите два импульса в частотный диапазон и постройте график продукта
pls_rev = [fliplr(pls) zeros(1, length(r) - length(pls))]; PLS = fft(conj(pls_rev)); R = fft(rplsnoise); fft_conv = PLS.*R; faxis = linspace(-fs/2,fs/2,length(PLS)); clf subplot(3,1,1) plot(faxis,abs(fftshift(PLS))) title('FFT of Time-Reversed Transmitted Pulse') xlim([-100 100]) ylabel('Magnitude (L.U)') subplot(3,1,2) plot(faxis,abs(fftshift(R))) title('FFT of Noisy Signal') xlim([-100 100]) ylabel('Magnitude (L.U)') subplot(3,1,3) plot(faxis,abs(fftshift(fft_conv))) title("FFT of Multiplied Signals") xlabel('Frequency (Hz)') xlim([-100 100]) ylabel('Magnitude (L.U)')
Преобразуйте полученный сигнал назад во временной интервал и постройте его график.
pls_prod = ifft(fft_conv); clf plot((0:length(pls_prod)-1)/fs,abs(pls_prod)) xticks(lgs+T) xlabel('Time (s)') ylabel('Magnitude (L.U.)') title('Matched Filter Output')
Чтобы сглаживать боковые элементы после согласованной фильтрации, примените окно к переданному импульсу перед реверсивным временем. Шаги в предыдущем разделе были показаны, чтобы лучше визуализировать процесс согласованной фильтрации в частотный диапазон. Функция fftfilt
может быстро применить согласованную фильтрацию к функции.
n = fftfilt(fliplr(conj(pls)),rplsnoise); n_win = fftfilt(fliplr(conj(pls).*taylorwin(length(pls), 30)'),rplsnoise); clf plot(tt,abs(n),tt,abs(n_win)) xticks(lgs+T) xlabel('Time (s)') ylabel('Magnitude (L.U.)') legend('No Window', 'Hamming Window') title('Matched Filter Output')
Когда радиолокационный импульс отражается от стационарной цели, импульс не модулируется и, таким образом, имеет большую характеристику, когда переданная форма волны используется для согласованной фильтрации. Однако движущиеся цели отражают доплеровские сдвинутые импульсы, делая ответ от согласованной фильтрации менее сильным. Одним из решений является использование банка согласованных фильтров с доплеровскими сдвинутыми формами волны, которые могут использоваться для определения доплеровского сдвига отраженного импульса. Радиолокационная система может оценить целевую скорость, так как доплеровский сдвиг пропорционален скорости.
Чтобы показать обработку Доплера с помощью банка согласованных фильтров, создайте ответ, который Доплер сдвинут на 5
Гц.
pls = chirp(t,0,T,f0, 'complex'); shift = 5; pls_shift = chirp(t,shift,T,f0+shift,'complex'); rpls_shift = pulstran(tt,[lgs;ref*att.^-(lgs-t0)]',pls_shift,fs); r = (randn(size(tt)) + 1j*randn(size(tt)))*std(pls)/db2mag(SNR); rplsnoise_shift = r + rpls_shift;
Создайте банк доплеровских сдвинутых импульсов и наблюдайте различие в отклике для каждого согласованного фильтра.
filters = []; for foffset = 0:4:10 filters = [filters; chirp(t,0+foffset,T,f0+foffset,'complex')]; end
Построение графика частотного диапазона исходного импульса и нового импульса показывает, что новый импульс смещен на 5
Гц.
clf pspectrum([pls; pls_shift].',fs) xlim([-100 100])
Примените каждый согласованный фильтр к импульсу со сдвигом частоты и постройте график выхода.
matched_pls = fftfilt(fliplr(conj(pls_shift)),rplsnoise_shift); filt_bank_pulses = fftfilt(fliplr(filters)',rplsnoise_shift); clf subplot(2,1,1) plot(tt,abs(matched_pls),'Color',[0.6350, 0.0780, 0.1840]) title('Matched Filter (5 Hz)') ylabel('Magnitude (L.U.)') xticks(lgs+T) subplot(2,1,2) plot(tt, abs(filt_bank_pulses)) legend("0 Hz", "4 Hz", "8 Hz") title('Matched Filter Bank') xlabel('Time (s)') ylabel('Magnitude (L.U.)')
График со всеми тремя выходами показывает, что согласованный фильтр, сдвинутый на 4 Гц, имеет наибольшую характеристику, поэтому радиолокационная система аппроксимирует доплеровский сдвиг около 4 Гц. Использование большего количества Допплеровских фильтров с меньшими интервалами сдвига частоты может помочь улучшить разрешение Доплера.
Этот метод Доплеровской обработки часто не используется из-за более медленного характера применения многих фильтров. Большая часть обработки сигналов при возвратах радара выполняется кубом данных, где тремя размерностями являются быстрые временные выборки (реакция области значений в импульсе), количество элементов массива и медленные временные выборки (количество импульсов). После того, как система определяет диапазон объекта, преобразование Фурье выполняется в медленной временной размерности, чтобы определить Допплер цели. Для этой настройки метод куба данных не был бы идеальным для Доплеровской обработки, поскольку система передает только один импульс. Метод куба данных работает лучше всего, когда у вас есть многочисленные импульсы, из-за чего многие радиолокационные системы используют последовательность импульсов или серию импульсов, а не один импульс для доплеровской обработки диапазона.