Multiplication of sound and sinusoidal signal
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
ali okumus
le 18 Déc 2018
Commenté : Oswaldo Colin Martinez
le 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 commentaire
Jan
le 18 Déc 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.
Réponse acceptée
Omer Yasin Birey
le 18 Déc 2018
Modifié(e) : Omer Yasin Birey
le 18 Déc 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;
Plus de réponses (2)
Jan
le 18 Déc 2018
Modifié(e) : Jan
le 18 Déc 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 commentaire
Voir également
Catégories
En savoir plus sur Matched Filter and Ambiguity Function dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!