pulseCompressionLibrary
创建一个脉冲压缩规范库
描述
的pulseCompressionLibrary
System object™创建一个脉冲压缩库。该库包含描述对接收信号执行脉冲压缩操作以产生其范围响应的参数集。您可以使用此库来执行匹配的过滤或拉伸处理。对象创建的波形pulseWaveformLibrary
对象。
制作一个脉冲压缩库
创建
pulseCompressionLibrary
对象并设置其属性。调用带参数的对象,就像调用函数一样。
要了解有关System对象如何工作的更多信息,请参见什么是系统对象?
创建
描述
System对象创建一个脉冲压缩库,complib
= pulseCompressionLibrary ()complib
,具有默认属性值。
使用每个属性创建脉冲压缩库complib
= pulseCompressionLibrary (名字
,价值
)名字
设置为指定的价值
。您可以以任意顺序指定附加的名称-值对参数,如(Name1
,Value1
、……以
,家
).将每个属性名称用单引号括起来。
例子:complib = pulseccompressionlibrary ('SampleRate',1e9,'WaveformSpecification',{{' rectangle ','PRF',1e4,'PulseWidth',100e-6},{'SteppedFM','PRF',1e4}},'ProcessingSpecification',{{'MatchedFilter','SpectrumWindow','Hann'},{'MatchedFilter','SpectrumWindow','Taylor'})
创建具有两个匹配筛选器的库。一个与矩形波形相匹配,另一个与阶跃调频波形相匹配。匹配的过滤器分别使用Hann窗口和Taylor窗口。
属性
除非另有说明,否则属性是nontunable,这意味着在调用对象之后不能更改它们的值。对象在调用时被锁定,而释放
函数将它们解锁。
如果一个属性可调,您可以随时更改其值。
有关更改属性值的详细信息,请参见利用系统对象在MATLAB中进行系统设计。
SampleRate
- - - - - -波形采样率
1 e6
(默认)|积极的标量
波形采样率,指定为正标量。所有波形都具有相同的采样率。单位是赫兹。
例子:100年e3
数据类型:双
PropagationSpeed
- - - - - -信号传播速度
physconst(“光速”)
(默认)|积极的标量
WaveformSpecification
- - - - - -脉冲波形
{{“矩形”,“脉冲”,10 e3,“脉冲宽度”,100年e-6}, {LinearFM,脉冲重复频率,1 e4,“脉冲宽度”,50 e-6 SweepBandwidth, 1 e5,‘SweepDirection’,‘了’,‘SweepInterval’,‘积极’}}
(默认)|单元阵列
脉冲波形,指定为单元阵列。数组的每个单元格包含一个波形的规格。
{{波形1规格},{波形2规格},{波形3规格},…}
{PulseIdentifier、Name1 Value1, Name2, Value2,…}
这个System对象支持四种内置波形,金宝app也允许您指定自定义波形。对于内置波形,波形说明符由波形标识符和几个设置波形属性的名称-值对组成。对于自定义波形,波形说明符由用户定义波形函数的句柄和函数的输入参数组成。
波形类型
例子:{{“矩形”,“脉冲”,10 e3,“脉冲宽度”,100年e-6},{“矩形”,“脉冲”,100年e3,“脉冲宽度”,20 e-6}}
数据类型:细胞
ProcessingSpecification
- - - - - -脉冲压缩描述
{{‘MatchedFilter’,‘SpectrumWindow’,‘没有’},{200年‘StretchProcessor’,‘RangeSpan’,‘ReferenceRange’,5 e3,‘RangeWindow’,‘没有’}}
(默认)|单元阵列
脉冲压缩描述,指定为单元阵列的处理规范。每个单元定义了不同的处理规范。每个处理规范本身都是包含处理类型和处理参数的单元格数组。
{{加工1规格},{加工2规格},{加工3规格},…}
{ProcessType,名称、价值…}
ProcessType
要么是“MatchedFilter”
或“StretchProcessor”
。
“MatchedFilter”
—名称-值对参数为“系数”
,多项式系数
-指定匹配的过滤系数,多项式系数
,作为列向量。当未指定时,系数从WaveformSpecification
财产。对于包含多个脉冲的阶跃调频波形,多项式系数
对应于每个脉冲,直到脉冲指数,idx
的变化。“SpectrumWindow”
,西南
-指定频谱加权窗口,西南
,应用于波形。窗口值是其中之一“没有”
,“汉明”
,“切比雪夫”
,“损害”
,“皇帝”
,“泰勒”
。默认值为“没有”
。“SidelobeAttenuation”
,slb
-指定旁瓣衰减窗口,slb
切比雪夫或泰勒窗口的正标量。缺省值为30。设置时应用此参数“SpectrumWindow”
来“切比雪夫”
或“泰勒”
。“β”
,β
-指定参数,β
,它决定凯撒窗旁瓣衰减为非负标量。默认值为0.5。设置时应用此参数“SpectrumWindow”
来“皇帝”
。“Nbar”
,nbar
-指定几乎恒定的电平副瓣的数量,nbar
,在泰勒窗口中主瓣旁边的一个正整数。默认值为4。设置时应用此参数“SpectrumWindow”
来“泰勒”
。“SpectrumRange”
,老
-指定频谱区域,老
,在其上将频谱窗作为具有如下形式的1 × 2矢量施加[StartFrequency EndFrequency]
。默认值为[0 1.0e5]。此参数适用于设置“SpectrumWindow”
为'None'以外的任何值。单位为Hz。这两个
StartFrequency
和EndFrequency
在基带区域测量[- ?Fs/ 2Fs/ 2)。Fs抽样率是否由SampleRate
财产。StartFrequency
不能大于EndFrequency
。
“StretchProcessor”
—名称-值对参数为“ReferenceRange”
,refrng
-指定感兴趣范围的中心,refrng
,表示为正标量。的refrng
必须在一个脉冲的明确范围内。缺省值是5000。单位是米。“RangeSpan”
,rngspan
-指定感兴趣的范围的范围。rngspan
,表示为正标量。中指定的范围值为范围范围的中心“ReferenceRange”
参数。缺省值是500。单位是米。“RangeFFTLength”
,len
-指定FFT在range域中的长度。len
,表示为正整数。如果不指定,则默认值与输入数据长度相同。“RangeWindow”
,rw
指定用于范围处理的窗口。rw
作为…之一“没有”
,“汉明”
,“切比雪夫”
,“损害”
,“皇帝”
,“泰勒”
。默认值为“没有”
。
例子:“StretchProcessor”
数据类型:字符串
|结构体
线性调频波形参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:{“LinearFM”、“脉冲”,1 e4,“脉冲宽度”,50 e-6 SweepBandwidth, 1 e5,…‘SweepDirection’,‘了’,‘SweepInterval’,‘积极’}
脉冲重复频率
- - - - - -脉冲重复频率
1 e4
(默认)|积极的标量
脉冲宽度
- - - - - -脉冲持续时间
5 e-5
(默认)|积极的标量
脉冲持续时间,指定为正标量。单位是秒。不能同时指定脉冲宽度
和DutyCycle
。
例子:100年e-6
数据类型:双
DutyCycle
- - - - - -脉冲占空比
0.5
|积极的标量
脉冲占空比,表示为大于零且小于等于1的正标量。不能同时指定脉冲宽度
和DutyCycle
。
例子:0.7
数据类型:双
SweepBandwidth
- - - - - -调频扫描的带宽
1 e5
(默认)|积极的标量
FM扫描的带宽,指定为正标量。单位是赫兹。
例子:100年e3
数据类型:双
SweepDirection
- - - - - -调频扫描的带宽
“了”
(默认)|“下来”
调频扫描的方向,指定为“了”
或“下来”
。“了”
对应于增加的频率。“下来”
对应于递减的频率。
数据类型:字符
SweepInterval
- - - - - -调频扫描间隔
“积极”
(默认)|“对称”
FM扫描间隔,指定为“积极”
或“对称”
。如果将此属性值设置为“积极”
,波形扫过0和之间的间隔B,在那里B是SweepBandwidth
参数值。如果将此属性值设置为“对称”
,波形扫过-之间的间隔B/ 2和B/2.
例子:“对称”
数据类型:字符
信封
- - - - - -包络函数
“矩形”
(默认)|“高斯”
信封函数,指定为“矩形”
或“高斯”
。
例子:“高斯”
数据类型:字符
FrequencyOffset
- - - - - -脉冲频率偏移
0
(默认)|标量
脉冲的频率偏移,指定为标量。频率偏移使所产生的脉冲波形的频率发生偏移。单位是赫兹。
例子:100年e3
数据类型:双
相位编码波形参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:{“PhaseCoded”、“脉冲”,1 e4,“代码”,“Zadoff-Chu”,“SequenceIndex”,3,‘ChipWidth’,5 e-6 NumChips, 8}
脉冲重复频率
- - - - - -脉冲重复频率
1 e4
(默认)|积极的标量
代码
- - - - - -相位调制码的类型
“弗兰克”
(默认)|“P1”
|“P2”
“像素”
|“Zadoff-Chu”
|“P3”
|“P4”
|“巴克”
相位调制码的类型,指定为“弗兰克”
,“P1”
,“P2”
,“像素”
,“Zadoff-Chu”
,“P3”
,“P4”
,或“巴克”
。
例子:“P1”
数据类型:字符
SequenceIndex
- - - - - -Zadoff-Chu
指数序列
1
(默认)|正整数
的序列索引Zadoff-Chu
代码,指定为正整数。的价值SequenceIndex
一定是相对质数的值NumChips
。
例子:3.
依赖关系
要启用此名称-值对,请设置代码
财产“Zadoff-Chu”
。
数据类型:双
ChipWidth
- - - - - -芯片持续时间
1 e-5
(默认)|积极的标量
NumChips
- - - - - -波形中的芯片数
4
(默认)|正整数
FrequencyOffset
- - - - - -脉冲频率偏移
0
(默认)|标量
脉冲的频率偏移,指定为标量。频率偏移使所产生的脉冲波形的频率发生偏移。单位是赫兹。
例子:100年e3
数据类型:双
矩形波形参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:{“矩形”,“脉冲”,10 e3,“脉冲宽度”,100年e-6}
脉冲重复频率
- - - - - -脉冲重复频率
1 e4
(默认)|积极的标量
脉冲宽度
- - - - - -脉冲持续时间
5 e-5
(默认)|积极的标量
脉冲持续时间,指定为正标量。单位是秒。不能同时指定脉冲宽度
和DutyCycle
。
例子:100年e-6
数据类型:双
DutyCycle
- - - - - -脉冲占空比
0.5
|积极的标量
脉冲占空比,表示为大于零且小于等于1的正标量。不能同时指定脉冲宽度
和DutyCycle
。
例子:0.7
数据类型:双
FrequencyOffset
- - - - - -脉冲频率偏移
0
(默认)|标量
脉冲的频率偏移,指定为标量。频率偏移使所产生的脉冲波形的频率发生偏移。单位是赫兹。
例子:100年e3
数据类型:双
步进调频波形参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:{“SteppedFM”、“脉冲”,10}的军医
脉冲重复频率
- - - - - -脉冲重复频率
1 e4
(默认)|积极的标量
脉冲宽度
- - - - - -脉冲持续时间
5 e-5
(默认)|积极的标量
脉冲持续时间,指定为正标量。单位是秒。不能同时指定脉冲宽度
和DutyCycle
。
例子:100年e-6
数据类型:双
DutyCycle
- - - - - -脉冲占空比
0.5
|积极的标量
脉冲占空比,表示为大于零且小于等于1的正标量。不能同时指定脉冲宽度
和DutyCycle
。
例子:0.7
数据类型:双
NumSteps
- - - - - -波形中的频率步进数
5
(默认)|正整数
波形中的频率步长数,指定为正整数。
例子:3.
数据类型:双
FrequencyStep
- - - - - -线性频率步长
20 e3
(默认)|积极的标量
线性频率步长,指定为正标量。
例子:100.0
数据类型:双
FrequencyOffset
- - - - - -脉冲频率偏移
0
(默认)|标量
脉冲的频率偏移,指定为标量。频率偏移使所产生的脉冲波形的频率发生偏移。单位是赫兹。
例子:100年e3
数据类型:双
自定义波形参数
您可以从用户定义的函数创建自定义波形。函数的第一个输入参数必须是采样率。例如,指定一个双曲波形函数,
函数wav = HyperbolicFM(fs,prf,pw, frequency,bw,fcent),
fs
抽样率是和吗脉冲重复频率
,pw
,频率
,bw
,fcent
是其他波形参数。函数必须至少有一个输出参数,wav
,以返回每个脉冲的样本。这个输出必须是一个列向量。波形采样后可以返回其他输出。
然后,使用函数句柄而不是波形标识符创建波形规范。波形规范中的第一个单元必须是函数句柄。剩下的单元格包含除了采样率以外的所有函数输入参数。按照传入函数的顺序指定所有输入参数。
waveformspec = {@HyperbolicFM,prf,pw,freq,bw,fcent}
使用
输入参数
X
- - - - - -输入信号
复数的K——- - - - - -l矩阵|复数的K——- - - - - -N矩阵|复数的K——- - - - - -N——- - - - - -l数组
输入信号,指定为复值K——- - - - - -l矩阵,复数K——- - - - - -N矩阵,或者一个复值K——- - - - - -N——- - - - - -l数组中。K表示快速时间样本的个数,l脉冲数,和N是通道数。信道可以是阵列元素或波束。
数据类型:双
复数支持:金宝app是的
idx
- - - - - -脉冲压缩库中处理规范索引
正整数
脉冲压缩库中处理规范的索引,指定为正整数。
数据类型:双
输出参数
Y
-输出信号
复数的K——- - - - - -l矩阵|复值K——- - - - - -N矩阵|复值K——- - - - - -N——- - - - - -l数组
输出信号,作为复值返回米——- - - - - -l矩阵,复数米——- - - - - -N矩阵,或者一个复值米——- - - - - -N——- - - - - -l数组中。米表示快速时间样本的个数,l脉冲数,和N是通道数。信道可以是阵列元素或波束。的维数Y
的维度数匹配X
。
当执行匹配过滤时,米等于里面的行数X
。当执行拉伸处理并且为属性指定值时RangeFFTLength
名称-值对,米设置为的值RangeFFTLength
。当你不指定时RangeFFTLength
,米等于里面的行数X
。
数据类型:双
复数支持:金宝app是的
rng
-样本范围
实值的长度,米向量
样本范围,作为实值长度-返回米向量,米行数是Y
。这个向量的元素表示行对应的范围Y
。
数据类型:双
对象的功能
要使用对象函数,请指定System对象作为第一个输入参数。例如,释放system对象的系统资源obj
,使用以下语法:
发行版(obj)
特定于pulseccompressionlibrary
plotResponse |
从脉冲压缩库绘制范围响应 |
例子
两种波形的范围处理
创建一个矩形波形和线性调频波形。使用脉冲压缩库中的处理方法对波形进行范围处理。对矩形波形使用匹配滤波,对线性调频波形使用拉伸处理。
创建两个波形pulseWaveformLibrary
系统对象™。采样频率为1mhz,两种波形的脉冲重复频率为1khz。脉冲宽度也相同,为50微秒。
Fs = 1.0e6;PRF = 1e3;Pw = 50e-6;Waveform1 = {“矩形”,脉冲重复频率的脉冲重复频率,“脉冲宽度”pw};Waveform2 = {“LinearFM”,脉冲重复频率的脉冲重复频率,“脉冲宽度”pw,…“SweepBandwidth”1 e5,“SweepDirection”,“了”,…“SweepInterval”,“积极”};pulselib = pulseWaveformLibrary(“WaveformSpecification”,…{waveform1, waveform2},“SampleRate”fs);
检索波形以供脉冲压缩库处理。
Rectwav = pulselib(1);Lfmwav = pulselib(2);
创建压缩处理库ulseCompressionLibrary
具有两个处理规范的系统对象™。第一处理规范为匹配滤波,第二处理规范为拉伸处理。
mf = getMatchedFilter(脉冲,1);Procspec1 = {“MatchedFilter”,“系数”mf};Procspec2 = {“StretchProcessor”,“ReferenceRange”, 5000,…“RangeSpan”, 200,“RangeWindow”,“汉明”};compprlib = pulseccompressionlibrary (…,“WaveformSpecification”{waveform1, waveform2},…“ProcessingSpecification”{procspec1, procspec2},…“SampleRate”fs,“PropagationSpeed”physconst (“光速”));
处理两种波形。
Rect_out = comprlib(rectwav,1);Lfm_out = comprlib(lfmwav,2);Nsamp = fs/prf;T = [0:(nsample -1)]/fs;情节(t * 1000,实际(rect_out))在情节(t * 1000,实际(lfm_out))从标题(“脉冲压缩输出”)包含(“时间(millsec)”) ylabel (“振幅”)
三个目标的距离响应
绘制LFM信号在2000米、4000米和5500米的距离上击中三个目标的距离响应图。假设雷达的最大距离为10公里,从最大距离确定脉冲重复间隔。
%创建脉冲波形。Rmax = 10.0e3;C = physconst(“光速”);2*rmax/c;Fs = 1e6;Pri = ceil(Pri *fs)/fs;PRF = 1/pri;Nsamp = pri*fs;Rxdata = 0 (nsamp,1);T1 = 2*2000/c;T2 = 2*4000/c;T3 = 2*5500/c; idx1 = floor(t1*fs); idx2 = floor(t2*fs); idx3 = floor(t3*fs); lfm = phased.LinearFMWaveform(“脉冲宽度”10 / fs,脉冲重复频率的脉冲重复频率,…“SweepBandwidth”(30 * fs) / 40);W = lfm();% %将脉冲的波形部分嵌入到接收到的信号中。X = w(1:11);Rxdata (idx1:idx1+10) = x;Rxdata (idx2:idx2+10) = x;Rxdata (idx3:idx3+10) = x;% %创建脉冲波形库。W1 = {“LinearFM”,“脉冲宽度”10 / fs,脉冲重复频率的脉冲重复频率,…“SweepBandwidth”(30 * fs) / 40};wavlib = pulseWaveformLibrary(“SampleRate”fs,“WaveformSpecification”, {w1});Wav = wavlib(1);% %%产生距离响应信号。P1 = {“MatchedFilter”,“系数”getMatchedFilter (wavlib 1),“SpectrumWindow”,“没有”};Idx = 1;complib = pulseccompressionlibrary ()…“WaveformSpecification”{w1},…“ProcessingSpecification”{p1},…“SampleRate”fs,…“PropagationSpeed”c);Y = complib(rxdata,1);% %%处理后数据的标绘范围响应plotResponse (complib rxdata idx,“单位”,“杂志”);
更多关于
脉冲重复频率限制
的脉冲重复频率
属性必须满足这些限制:
的乘积
脉冲重复频率
和脉冲宽度
必须小于或等于1。这个条件表示脉冲宽度小于一个脉冲重复间隔的要求。的比率
SampleRate
来脉冲重复频率
必须是整数。该条件表示在一个脉冲重复间隔内的采样数为整数的要求。
芯片的限制
的值ChipWidth
和NumChips
属性必须满足以下约束:
的乘积
脉冲重复频率
,ChipWidth
,NumChips
必须小于或等于1。这个条件表达了所有芯片持续时间的总和小于一个脉冲重复间隔的要求。的乘积
SampleRate
和ChipWidth
必须是整数。这个条件表达了芯片中采样数必须为整数的要求。
该表显示了针对不同代码类型的芯片数量的附加约束。
如果代码 财产是…… |
然后NumChips 财产必须是…… |
---|---|
“弗兰克” ,“P1” ,或“像素” |
一个完全平方。 |
“P2” |
一个完全平方数的偶数。 |
“巴克” |
2 ,3. ,4 ,5 ,7 ,11 ,或13 |
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
版本历史
在R2021a中引入
MATLAB命令
您点击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。