Change values using repmat

5 vues (au cours des 30 derniers jours)
Carlos Pérez
Carlos Pérez le 26 Oct 2020
Commenté : Ameer Hamza le 26 Oct 2020
Hello everybody,
I have this code
input = '101110'
fs=8000
f0 = 800
duration = 0.1
timeseq=0:1/fs:strlength(input)*duration;
And I want to multiply each 1 of the input and each 0 with the following line.
cos(2*pi*f0*timeseq)
I want to do it without using loops like for, I think I should use fome matlab functions like repmat or repelem but I don't know how they need to be used.
Thank you

Réponse acceptée

Ameer Hamza
Ameer Hamza le 26 Oct 2020
I think you are trying to do something like this
input = '101110';
input_num = input - '0';
fs=8000;
duration = 0.1;
timeseq=0:1/fs:strlength(input)*duration-1/fs;
tone_frequency = 2;
input_vec = repelem(input_num, 1, fs*duration);
out = cos(2*pi*tone_frequency*timeseq).*input_vec;
  2 commentaires
Mireia Boneta Camí
Mireia Boneta Camí le 26 Oct 2020
Hi Ameer, why do you have to put -1/fs in the timeseq?
Ameer Hamza
Ameer Hamza le 26 Oct 2020
So that the number of elements in timeseq are exact multiple of strlength(input)*duration.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by