|
XChirpGetChirpSignal Method
|
생성된 Chirp 신호에 값을 가져온다.
Chirp 신호는 복소수 값을 가지기 때문에, 신호의 길이가 N 이면 데이터는 [N, 2]의 크기를 가진다.
Namespace: Pixoneer.NXDL.NSARAssembly: NXDLsar (in NXDLsar.dll) Version: 3.0.0.4
Syntaxpublic bool GetChirpSignal(
out float[,] OriginChirp,
out float[,] WeightedChirp
)
Parameters
- OriginChirp Single
- [Out]Chirp 파라메터로 부터 생성된 Chirp 신호
- WeightedChirp Single
- [Out]Chirp 신호에 Window Function이 적용된 신호, Window Function을 설정하지 않으면 null을 반환함
Return Value
BooleanChirp 신호 생성 성공 여부
Example
Chirp 신호 생성을 위한 파라메터를 설정하고,
생성된 Chirp 신호를 읽어 csv 파일로 저장하는 예제이다.
// Chirp 신호 생성 파라메터
double fs = 625e6; // Sampling Rate
double Tr = 10e-6; // Chirp Length
double bw = 601.5e6; // Chirp Band Width
double Kr = bw / Tr; // Chirp Rate(Kr > 0 : Up Chirp)
// Chirp 데이터 저장
float[,] vChirp; // Chirp 신호 저장
float[,] wChirp; // window function이 적용된 Chirp 신호 저장
string strOutDir = @"E:\Output\TestChirp\";
Pixoneer.NXDL.NSAR.XChirp sigChirp = new Pixoneer.NXDL.NSAR.XChirp();
// 파라메터 설정 ========================================================
sigChirp.SetParams(fs, Tr, Kr, -bw / 2);
// chirp 신호 가져오기
sigChirp.GetChirpSignal(out vChirp, out wChirp);
System.Console.WriteLine("vChirp Len = {0}, Data {1} x {2}", vChirp.Length, vChirp.GetLength(0), vChirp.GetLength(1));
if (null == wChirp)
{
System.Console.WriteLine("None window function");
}
// chirp 신호 저장
string text = string.Empty;
string strPath = strOutDir + "vChirp1.csv";
for (int i = 0; i < vChirp.GetLength(0); i++)
{
text += string.Format("{0:F9},{1:F9}\n", vChirp[i,0], vChirp[i,1]);
}
System.IO.File.WriteAllText(strPath, text);
// 파라메터 재설정 및 window function 적용 ==================================
sigChirp.SetParams(fs, Tr, bw, true, -bw / 2);
sigChirp.SetParamsWeight(Pixoneer.NXDL.NSAR.eWinFuncType.Kaiser, 0.5);
// chirp 신호 가져오기
sigChirp.GetChirpSignal(out vChirp, out wChirp);
System.Console.WriteLine("vChirp Len => {0}, Data {1} x {2}", vChirp.Length, vChirp.GetLength(0), vChirp.GetLength(1));
System.Console.WriteLine("wChirp Len => {0}, Data {1} x {2}", wChirp.Length, wChirp.GetLength(0), wChirp.GetLength(1));
// chirp 신호 저장
text = string.Empty;
strPath = strOutDir + "vChirp2.csv";
for (int i = 0; i < vChirp.GetLength(0); i++)
{
// 실수부 : vChirp[i,0]
// 허수부 : vChirp[i,1]
text += string.Format("{0:F9},{1:F9}\n", vChirp[i,0], vChirp[i,1]);
}
System.IO.File.WriteAllText(strPath, text);
// windows function 적용된 chirp 신호 저장
if (null != wChirp)
{
text = string.Empty;
strPath = strOutDir + "wChirp2.csv";
for (int i = 0; i < wChirp.GetLength(0); i++)
{
text += string.Format("{0:F9},{1:F9}\n", wChirp[i,0], wChirp[i,1]);
}
System.IO.File.WriteAllText(strPath, text);
}
See Also