Multiplication of sound and sinusoidal signal

8 views (last 30 days)
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 Comment
Jan
Jan on 18 Dec 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.

Sign in to comment.

Accepted Answer

Omer Yasin Birey
Omer Yasin Birey on 18 Dec 2018
Edited: Omer Yasin Birey on 18 Dec 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;
  1 Comment
ali okumus
ali okumus on 18 Dec 2018
Thank you very much .I really appreciated your help .it worked for me .

Sign in to comment.

More Answers (2)

Jan
Jan on 18 Dec 2018
Edited: Jan on 18 Dec 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.

ali okumus
ali okumus on 18 Dec 2018
Dear friends
I really appreciate your concerns .i got my problem solved. thank you .

Categories

Find more on Simulink in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!