📄 simwidebandkernel.m
字号:
function [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, timeFilter, carrierFreq, bandwidth, noTime, noTrials, propSpeed, srcType, srcSignals, srcPowers, srcDoas, srcRanges, srcCorr, notUsed, noiseType, noisePower, noiseCorr, orthSig, corrMethod, testParam)%SIMWIDEBANDKERNEL Simulates wide-band radio signals received by array antennas.%%--------%Synopsis:% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % timeFilter, carrierFreq, bandwidth, noTime, noTrials, propSpeed,% srcType, srcSignals, srcPowers, srcDoas, srcRanges, srcCorr, [], % noiseType, noisePower, noiseCorr, orthSig, corrMethod)%% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % timeFilter, carrierFreq, {lowOffFreq, highOffFreq}, noTime, noTrials, % propSpeed, srcType, srcSignals, srcPowers, srcDoas, srcRanges,% {srcCorrSrc, srcCorrTime}, [], noiseType, noisePower, % {noiseCorrChan, noiseCorrTime}, orthSig, corrMethod)%%Description:% Simulator for wide-band radio signals received by array antennas.%%Output and Input:% sigOut (RxRadarSigT): Simulated radio signal. As the sample time in% the waveform, sampleTime = 1/(freqHigh-freqLow) is chosen, which% is equal to the reciprocal of the absolute bandwidth.% As the wavelength, carrierWavelength = propSpeed / carrierFreq is % chosen.% sourceSigTime (CxMatrixT): Complex envelope of the simulated source% signals in the time domain in a (noSrc, noTime) complex matrix.% noiseSigTime (CxMatrixT): Complex envelope of the simulated noise% signals in the time domain in a (???, ???) complex matrix.%% antenna (AntDefT): Antenna definition for the receiver.% carrierFreq [D](RealScalarT): Carrier frequency fRF [Hz]. This can be% specified to zero for baseband signals.% bandwidth [D](RealScalarT): Absolute bandwidth B [Hz]. It will be% centered around the carrier frequency fRF. The frequency region will% be (fRF - B/2) <= f <= (fRF - B/2). The condition (B < 2*fRF) must be % satisfied. How does this correspond with "baseband signals" in the% help text of "carrierFreq"?% lowOffFreq [D](RealScalarT): Low frequency offset fBL [Hz]. The condition % (fRF - fBL) > 0 must be satisfied. How does this correspond with % "baseband signals" in the help text of "carrierFreq"?% highOffFreq [D](RealScalarT): High frequency offset fBH [Hz]. The frequency % region will be (fRF + fBL) <= f <= (fRF + fBH).% noTime [D](IntScalarT): Number of time samples to simulate of the signals.% noTrials [D](IntScalarT): Not implemented.% propSpeed [D](RealScalarT): Propagation speed of the waves [m/s].% Default = speed of light in free space.% srcType (StringT): Type of source signals. See below for sections about% each type.% = 'det': Deterministic Signals.% = 'randn': Normally distributed random amplitudes.% = 'rand': Uniformly distributed random amplitudes. Not implemented.% = 'nosrc': No source signals are simulated and added.% srcSignals [D](CxMatrixT): Complex envelope of the source time signals% in a (noTime, noSrc)-matrix. noSrc = number of sources.% srcPowers [D](RealVectorT): Source signal powers in a (noSrc x 1) vector.% Where are the powers measured?% srcDoas [D](Vector of DoaT): Source signal direction-of-arrival.% srcRanges [D](): Source signal ranges. Not implemented.% srcCorr [D](): Not implemented.% srcCorrSrc [D](CxMatrixT): Correlation matrix for the correlation between% different signalsources.% srcCorrTime [D](CxMatrixT): Not implemented.% noiseType [D](StringT): Type of noise signals. See below for sections% about each type.% = 'randn': Normally distributed random amplitudes.% = 'rand': Uniformly distributed random amplitudes. Not implemented.% = 'nonoise': No noise is simulated and added.% noisePower [D](RealVectorT):% noiseCorr [D](): Not implemented.% noiseCorrChan [D](CxMatrixT): Correlation matrix for the correlation of% the noise between different antenna channels. Not implemented.% noiseCorrTime [D](CxMatrixT): Not implemented.% orthSig [D](BoolT): 1= orthogonalization of the signals. 0 = no% orthogonalization (default). Implementation not finnished.% corrMethod [D](BoolT): Implementation not finnished.% testParam (): For debugging only.%%--------%Signal Source Simulation:%--------%Deterministic Signal Sources.%Synopsis:% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % [], carrierFreq, bandwidth, noTime, [], propSpeed,% 'det', srcSignals, srcPowers, srcDoas, srcRanges, [], [], % noiseType, noisePower, noiseCorr, orthSig, corrMethod)%% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % [], carrierFreq, {lowOffFreq, highOffFreq}, noTime, [], % propSpeed, 'det', srcSignals, srcPowers, srcDoas, srcRanges,% [], [], noiseType, noisePower, % {noiseCorrChan, noiseCorrTime}, orthSig, corrMethod)%%Output and Input:%%Description:% As the source signals is the contents of the input parameter "srcSignals" % used. These signals are considered to be deterministic. The number of% time samples to simulate is given by the length of the signals in the% input parameter "srcSignals".%%--------%Normally Distributed Random Signal Sources.%Synopsis:% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % [], carrierFreq, bandwidth, noTime, [], propSpeed,% 'randn', [], srcPowers, srcDoas, srcRanges, srcCorr, [], % noiseType, noisePower, noiseCorr, orthSig, corrMethod)%% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % [], carrierFreq, {lowOffFreq, highOffFreq}, noTime, [], % propSpeed, 'randn', srcSignals, srcPowers, srcDoas, srcRanges,% {srcCorrSrc, srcCorrTime}, [], noiseType, noisePower, % {noiseCorrChan, noiseCorrTime}, orthSig, corrMethod)%%Output and Input:%%Description:% The source signals are simulated as complex normally (gaussian)% distributed random signals.%%--------%No Source Signals.%Synopsis:% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % [], carrierFreq, bandwidth, noTime, [], propSpeed,% 'nosrc', [], [], [], [], [], [], % noiseType, noisePower, noiseCorr, orthSig, corrMethod)%% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(antenna, % [], carrierFreq, {lowOffFreq, highOffFreq}, noTime, [], % propSpeed, 'nosrc', [], [], [], [],% [], [], noiseType, noisePower, % {noiseCorrChan, noiseCorrTime}, orthSig, corrMethod)%%Output and Input:%%Description:% No source signals are simulated and added.%%--------%Noise Simulation:%--------%Normally Distributed Noise.%Synopsis:% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(...,% 'randn', noisePower, noiseCorr,...)%%Output and Input:%%Description:% The noise is simulated as a complex normally (gaussian)% distributed random signal.%%--------%No Noise.%Synopsis:% [sigOut, sourceSigTime, noiseSigTime] = simwidebandkernel(...,% 'nonoise', noisePower, noiseCorr,...)%%Output and Input:%%Description:% No noise is simulated and added.%%--------%Notations:% Data type names are shown in parentheses and they start with a capital% letter and end with a capital T. Data type definitions can be found in [1]% or by "help dbtdata".% [D] = This parameter can be omitted and then a default value is used.% When the [D]-input parameter is not the last used in the call, it must be% given the value [], i.e. an empty matrix.% ... = There can be more parameters. They are explained under respective% metod or choice.%%Data Types:% AntDefT: Antenna definition. See [1] and help text of function "defant".% BoolT: An integer scalar. False = 0, True = 1.% CxMatrixT: 2D complex matrix.% IntScalarT: Integer scalar. Complex integers are not allowed.% RealScalarT: Real scalar.% RealVectorT: Real vector. Vectors are (n x 1)-matrices.% RxRadarSigT: : Stores a radio or radar signal and related information.% See [1] and help text of function "RxRadarSigT".% StringT: String.%%Examples:% See the example programs "wideex1", "wideex2" and "wideex3".%%Software Quality:% (About what is done to ascertain software quality. What tests are done.)% This function is not tested yet.%%Known Bugs:% Should it be possible to also specify the distance to the signals sources?%%References:% [1]: Bj鰎klund S.: "DBT, A MATLAB Toolbox for Radar Signal Processing.% Reference Guide", FOA-D--9x-00xxx-408--SE, To be published.% [2]: Bj鰎klund S.: "A MATLAB implementation of a Simulator for Wideband% Radio Signals Received by Array Antennas", FOA-D--99-00435-504--SE,% March 1999.%%See Also:% compsim4, simradarsig, wideex1, wideex2, wideex3% * DBT, A Matlab Toolbox for Radar Signal Processing *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%% Start : 981211 Svante Bj鰎klund (svabj).% Latest change: $Date: 2000/10/16 15:39:35 $ $Author: svabj $.% $Revision: 1.13 $% *****************************************************************************% ----------------------------------------------------------------------- %% Handle input parameters% ----------------------------------------------------------------------- %% ****************** Add missing input parameters ******************% These staments can be removed without affecting the operation of this% function.arginNo=1;if (nargin < arginNo) error('DBT-Error: To few input parameters.')endarginNo = arginNo +1;if (nargin < arginNo) timeFilter = [];endarginNo = arginNo +1;if (nargin < arginNo) carrierFreq = [];endarginNo = arginNo +1;if (nargin < arginNo) bandwidth = [];endarginNo = arginNo +1;if (nargin < arginNo) noTime = [];endarginNo = arginNo +1;if (nargin < arginNo) noTrials = [];endarginNo = arginNo +1;if (nargin < arginNo) propSpeed = [];endarginNo = arginNo +1;if (nargin < arginNo) srcType = [];endarginNo = arginNo +1;if (nargin < arginNo) srcSignals = [];endarginNo = arginNo +1;if (nargin < arginNo) srcPowers = [];endarginNo = arginNo +1;if (nargin < arginNo) srcDoas = [];endarginNo = arginNo +1;if (nargin < arginNo) srcRanges = [];endarginNo = arginNo +1;if (nargin < arginNo) srcCorr = [];endarginNo = arginNo +1;if (nargin < arginNo) notUsed = [];endarginNo = arginNo +1;if (nargin < arginNo) noiseType = [];endarginNo = arginNo +1;if (nargin < arginNo) noisePower = [];endarginNo = arginNo +1;if (nargin < arginNo) noiseCorr = [];endarginNo = arginNo +1;if (nargin < arginNo) orthSig = [];endarginNo = arginNo +1;if (nargin < arginNo) corrMethod = [];endarginNo = arginNo +1;if (nargin < arginNo) testParam = [];endarginNo = arginNo +1;if (0)% *************** Evalute the list extraParam of keywords ***************% These the value of this keywords are assigned to the local variables with% the same name as the keywords. The use of keywords is to make calls to% this function simpler.if (nargin >= arginNo) lenExtra = length(extraParam); if (mod(lenExtra,2) ~= 0), error('DBT-Error: Value missing.'),end%if for n = 1:2:length(extraParam) eval([extraParam{n} '= extraParam{n+1};' ]); end%for nendarginNo = arginNo +1;end%if (0)% ****************** Default values ******************% These staments can be removed without affecting the operation of this% function.if isempty(antenna) antenna = [];end%ifif isempty(timeFilter) timeFilter = [];end%ifif isempty(carrierFreq) carrierFreq = 0;end%ifif isempty(bandwidth) bandwidth = 0;end%ifif isempty(noTime) noTime = 128;end%ifif isempty(noTrials) noTrials = 1;end%if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -