Change values using repmat

5 Ansichten (letzte 30 Tage)
Carlos Pérez
Carlos Pérez am 26 Okt. 2020
Kommentiert: Ameer Hamza am 26 Okt. 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

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 26 Okt. 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 Kommentare
Mireia Boneta Camí
Mireia Boneta Camí am 26 Okt. 2020
Hi Ameer, why do you have to put -1/fs in the timeseq?
Ameer Hamza
Ameer Hamza am 26 Okt. 2020
So that the number of elements in timeseq are exact multiple of strlength(input)*duration.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by