文档

匹配的过滤

使用匹配过滤的原因

You can see from the results inReceiver Operating Characteristics检测概率随着SNR的增加而增加。对于白色高斯噪声中的确定性信号,您可以使用与信号匹配的过滤器最大化接收器的SNR。匹配的过滤器是信号的时期和共轭版本。匹配的过滤器移动为因果。

金宝app支持匹配的过滤

Use分阶段to implement a matched filter.

当您使用时分阶段,您可以自定义匹配过滤器的特性,例如匹配的过滤器系数和窗口以进行光谱加权。如果使用频谱加权,则可以指定覆盖区域和系数样品率;Taylor,Chebyshev和Kaiser Windows拥有您可以指定的其他属性。

线性FM波形的匹配过滤

此示例比较有和没有频谱加权的匹配过滤的结果。光谱加权通常与线性FM波形一起使用,以减少时域中的旁观。

笔记:This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent句法。例如,替换myObject(x)步(myObject,x)

Create a linear FM waveform with a duration of 0.1 milliseconds, a sweep bandwidth of 100 kHz, and a pulse repetition frequency of 5 kHz. Add noise to the linear FM pulse and filter the noisy signal using a matched filter. This example applies a matched filter with and without spectrum weighting.

Specify the waveform.

waveform = phase.linearfmwaveform(“脉冲宽”,1E-4,'prf',,,,5e3,...'采样率',1E6,'输出格式',,,,“脉冲”,,,,'NumPulses',,,,1,...“扫带宽度”,1E5);wav = getMatchedFilter(波形);

Create a matched filter with no spectrum weighting, and a matched filter that uses a Taylor window for spectrum weighting.

filter =分阶段。“系数”,wav);taylorfilter =分阶段。“系数”,wav,...“ Spectrumwindow”,,,,'泰勒');

创建信号并添加噪音。

sig = waveform(); rng(17) x = sig + 0.5*(randn(length(sig),1) + 1j*randn(length(sig),1));

用每个过滤器分别过滤嘈杂的信号。

y =过滤器(x);y_taylor = taylorfilter(x);

Plot the real parts of the waveform and noisy signal.

t = linspace(0,numel(sig)/waveform.SampleRate,...waveform.SampleRate/waveform.PRF); subplot(2,1,1) plot(t,real(sig)) title('Input Signal')xlim([0 max(t)])网格onylabel('Amplitude')子图(2,1,2)图(t,real(x))标题(“输入信号 +噪声”)xlim([0 max(t)])网格onxlabel('Time (sec)')ylabel('Amplitude'

Plot the magnitudes of the two matched filter outputs.

情节(t,abs(y),,'b--')title(“匹配过滤器输出”)xlim([0 max(t)])网格on抓住onplot(t,abs(y_taylor),'r-')ylabel('震级')xlabel(“秒”) 传奇(“无光谱加权”,,,,'Taylor Window')抓住off

匹配的过滤to Improve SNR for Target Detection

This example shows how to improve the SNR by performing matched filtering.

笔记:This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent句法。例如,替换myObject(x)步(myObject,x)

Place an isotropic antenna element at the global origin(0; 0; 0)。Then, place a target with a nonfluctuating RCS of 1 square meter approximately 7 km from the transmitter at(5000; 5000; 10)。将操作(载体)频率设置为10 GHz。要模拟单静力雷达,请设置InuseOutputportproperty on the transmitter totrue。计算范围和角度从transmitter to the target.

antenna = phased.IsotropicAntennaElement('FrequencyRange',[5E9 15E9]);发射机= phased.Transmitter('获得',20,“ InuseOutputport”,真的);FC = 10E9;target = phase.radartarget('Model',,,,“非推翻”,,,,...“平均值”,,,,1,'OperatingFrequency',fc);txloc = [0; 0; 0];tgtloc = [5000; 5000; 10];transmitterplatform = phase.platform('InitialPosition',txloc);targetPlatform = phase.platform('InitialPosition',,,,tgtloc); [tgtrng,tgtang] = rangeangle(targetplatform.InitialPosition,...transmitterPlatform.InitialPosition);

在PRF为10 kHz的持续时间内创建矩形脉冲波形25μs。在此示例中使用单个脉冲。确定给定PRF的最大明确范围。使用RADAREQPOWfunction to determine the peak power required to detect a target. This target has an RCS of 1 square meter at the maximum unambiguous range for the transmitter operating frequency and gain. The SNR is based on a desired false-alarm rate of 1e-6 for a noncoherent detector.

波形= phased.RectangularWaveForm(“脉冲宽”,25e-6,...'输出格式',,,,“脉冲”,,,,'prf',,,,10e3,'NumPulses',,,,1); c = physconst('LightSpeed');maxrange = c/(2*waveform.PRF); SNR = npwgnthresh(1e-6,1,“非合法者”);pt = radareqpow(c/fc,maxrange,snr,...waveform.pulsewidth,'rcs',target.meanrcs,'获得',,,,transmitter.Gain);

将峰值传输功率设置为输出值RADAREQPOW

transmitter.PeakPower = Pt;

Create radiator and collector objects that operate at 10 GHz. Create a free space path for the propagation of the pulse to and from the target. Then, create a receiver and a matched filter for the rectangular waveform.

radiator = phased.Radiator('PropagationSpeed',,,,c,...'OperatingFrequency',,,,fc,'传感器',天线);channel = phased.FreeSpace('PropagationSpeed',,,,c,...'OperatingFrequency',,,,fc,'TwoWayPropagation',,,,false); collector = phased.Collector('PropagationSpeed',,,,c,...'OperatingFrequency',,,,fc,'传感器',天线);接收者= phase.receiverpreamp(“噪音”,0,...'EnableInputPort',真的,'SeedSource',,,,'财产',,,,'种子',2e3);filter =分阶段。...“系数”,,,,getMatchedFilter(waveform),...“ gainoutputport”,真的);

After you create all the objects that define your model, you can propagate the pulse to and from the target. Collect the echo at the receiver, and implement the matched filter to improve the SNR.

Generate waveform.

wf = waveform();

传输波形。

[wf,txstatus] = transmitter(wf);

向目标辐射脉冲。

wf = radiator(wf,tgtang);

向目标传播脉冲。

wf =通道(wf,txloc,tgtloc,[0; 0; 0],[0; 0; 0; 0]);

Reflect it off the target.

wf = target(wf);

Propagate the pulse back to transmitter.

wf =通道(wf,tgtloc,txloc,[0; 0; 0],[0; 0; 0; 0]);

收集回声。

wf = collector(wf,tgtang);

Receive target echo.

rx_puls =接收器(wf,〜txstatus);[mf_puls,mfgain] = filter(rx_puls);

获取匹配过滤器的组延迟。

gd =长度(filter.cefficients)-1;

组延迟是恒定的。

移动匹配的过滤器输出。

mf_puls=[mf_puls(Gd+1:end); mf_puls(1:Gd)]; subplot(2,1,1) t = unigrid(0,1e-6,1e-4,'[)');rangegates = c.*t; rangegates = rangegates/2; plot(rangegates,abs(rx_puls)) title('Received Pulse')ylabel('Amplitude')抓住onplot([tgtrng, tgtrng], [0 max(abs(rx_puls))],'r')子图(2,1,2)图(rangegates,abs(mf_puls))标题(“使用匹配的过滤”)xlabel(“米”)ylabel('Amplitude')抓住on图([TGTRNG,TGTRNG],[0 max(abs(mf_puls))],'r')抓住off