MATLAB Answers

Replace elements in a complex matrix

2 views (last 30 days)
Angeles Salles
Angeles Salles on 8 Jun 2017
Edited: Chaitral Date on 19 Jun 2017
I'm using the signal processing toolbox. When I plot:
spectrogram(a,2^7,(2^7)-1,2^7,250e3)
I see some things in 'a' the figure I want to replace with background noise. For this I made variable 'x' that is a 65x12374 complex double matrix using this code:
x=spectrogram(a,2^7,(2^7)-1,2^7,250e3)
Now I used the marker on the figure of the spectrogram of 'a' to find the indexes for the parts I want to replace and wrote this:
x(-91.95:-94.27)=x(-100:(-94.27--91.95))
I get the error: Warning: Integer operands are required for colon operator when used as index Subscript indices must either be real positive integers or logicals.
The idea is to fill the content between those indexes with the content of some other part of the spectrogram. Then, I would want to turn back 'x' into a normal double matrix to get a new "original signal clean from what I covered.

Answers (1)

Chaitral Date
Chaitral Date on 19 Jun 2017
Edited: Chaitral Date on 19 Jun 2017
For linear indexing, you must use integers. If you want to find out values of x that are between the range -100 to (-94.27--91.95), you can use the below command,
>> x(-100<=x & x<=(-94.27--91.95))
To replace these values from their respective places, you have to use similar technique.

Community Treasure Hunt

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

Start Hunting!