Моя задача - загрузить сигнал, затем взять каждый 8-й сэмпл и сравнить его с 0.
Если сэмпл> 0 -> сэмпл = 1 еще сэмпл -> 0.
Iесть код, подобный следующему:
sn = wavread('example.wav',100);
z = sn(1 : 1 : end);
x = sn(1 : 1 : end);
for i = 1:rows(z);
for j = 1:columns(z);
if(z(i,j) < 0);
z(i,j) = 0;
else
z(i,j) = 1;
endif
endfor
endfor
plot(x, "*",z, "o");
Result1
Моя проблема в том, что если я выберу каждый 8-й пример, как это:
z = sn(1 : 8 : end);
Он сохраняет только каждый 8-й образец, и результат таков:
Result2
Мне нужно сохранить 100 образцов и напечатать только каждый 8-й, чтобы сохранить масштаб первогокартинка.
Спасибо за любой совет.
РЕДАКТИРОВАТЬ: я использовал
idx = 1:8:numel(z);
z(idx) = z(idx) > 0;
и теперь это выглядит так:
result3
Есть ли способ распечатать только сэмплы со значением 1 или 0 и заставить их остаться в исходных индексах?Например, для индексов 1,9,17,25,33 - это значение 1 или 0. Я хочу, чтобы они оставались в этих индексах и игнорировали другие, когда я вызываю plot (z).