Как правильно читать данные в Matlab - PullRequest
1 голос
/ 31 марта 2020

У меня есть файл .bin с данными в формате с прямым порядком байтов 16 бит.
Когда я использую

[Signal,count]=fread(fid,960000,'int16','l');

, я получаю только целочисленные данные:

255
-1234
9455
25465
-3546
-6878

Как читать эти данные, чтобы получить их в сложной форме? Мне нужно получить:

255 - 1234i
9455 + 25465i
-3546 - 6878i

1 Ответ

2 голосов
/ 31 марта 2020

Предположим, у вас есть эти целые числа в Signal:

complex_signal = Signal(1:2:end)+1i*Signal(2:2:end)

с индексированием ! Идея состоит в том, что ваши действительная и мнимая части переплетены, то есть нечетные индексы 1:2:end содержат действительную часть, а четные индексы 2:2:end - мнимую часть. Просто добавьте два с коэффициентом 1i, чтобы получить комплексные числа.

...