How to store complex double data to WAV?

11 visualizaciones (últimos 30 días)
Nik Rocky
Nik Rocky el 20 de Sept. de 2022
Comentada: James Muchechetere el 22 de Mzo. de 2024
Hello together,
I receive IQ data (real and imaginary values) from radio and save it to variable "IQ_data_before_write".
Then, I save it using (extended) audiowrite function to WAV file.
After using audioread, I get data in variable "IQ_data_after_read" back , but just real part of it.
Both data is atached.
If I visualize original and read data, I see a mirrored data at my center frequency after audiowrite + audioread.
1. how can I save whole data to WAV? (maybe split data before to real and imag, and after audioread join it again?)
2. Why is this "mirror effect" happens (see spectrum screenshot), of course of failed data? Maybe there are some another reasons (another dimensions)?
Thank you very much
Best regards
Nik
(Screenshots:
1: Original radio spectrum
2: Repeat of data spectrum stored data before writing into WAV file
3: Spectrum of reading IQ data after audiowrite and audioread)

Respuestas (1)

Nik Rocky
Nik Rocky el 20 de Sept. de 2022
I found a solution by spliting to real ang imag, save it in two different wav-files.
% split data to real and imag
data_I = real(IQ_data_before_write);
data_Q = imag(IQ_data_before_write);
% write wav files
audiowrite('data_I.wav',data_I,Fs);
audiowrite('data_Q.wav',data_Q,Fs);
% read wav files
[out_I,Fs] = audioread('data_I.wav');
[out_Q,Fs] = audioread('data_Q.wav');
% join I and Q
data_IQ = out_I + out_Q*1i;
Read-Output has the same structure and values now

Categorías

Más información sobre Continuous Wavelet Transforms en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by