Multiplication of sound and sinusoidal signal
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
ali okumus
am 18 Dez. 2018
Kommentiert: Oswaldo Colin Martinez
am 26 Nov. 2020
clc;
[a,Fs]=audioread("music.wav");
%sound(a,Fs);
si=size(a);
t=si/Fs;
t2=0:1/Fs:1;
f=15000;
signal=sin(2*pi*f*t2);
A=a';
K=A*signal;
When i try to multply i got an error . idont know what to do ?
1 Kommentar
Jan
am 18 Dez. 2018
If you get an error message and want the forum to help you, it is useful to post a copy of the complete message. It is easier to solve a problem than to guess, what the problem is.
Note that size(a) replies a vector. This is not a problem here, because t is not used anywhere.
Akzeptierte Antwort
Omer Yasin Birey
am 18 Dez. 2018
Bearbeitet: Omer Yasin Birey
am 18 Dez. 2018
The problem here is you take the t2 until 1 second, when your sound lasts more (or less) than 1 second
t2=0:1/Fs:1;
However it must last until the duration not until 1. Therefore, change this line with
t2=0:1/Fs:duration;
And also I believe you want to do element wise multiplication so put a dot before the multiplication sign.
clc;
[a,Fs]=audioread('music.wav');
duration = length(a)./Fs;
si=size(a);
t=si/Fs;
t2=0:1/Fs:duration-1/Fs;
f=15000;
signal=sin(2*pi*f*t2);
A=a';
K=A.*signal;
Weitere Antworten (2)
Jan
am 18 Dez. 2018
Bearbeitet: Jan
am 18 Dez. 2018
I guess, you want this:
[a, Fs] = audioread('music.wav');
len = size(a, 1);
t = (0:len - 1) / FS; % time in seconds
freq = 15000;
signal = sin(2 * pi * freq * t);
result = a .* signal.';
This multiplies even stereo signals, but you need >= R2016b for the auto-expanding. Please ask, if you use an older Matlab version.
1 Kommentar
Siehe auch
Kategorien
Mehr zu Spectral Measurements finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!