how do i generate sound using MATLAB?

I want to generate and play *sound for frequencies 100Hz and 200Hz tones for 10 sec and 5 sec respectively using MATLAB With sampling frequency as 20500 Hz .Also i want to plot their frequecy spectrum* .Is it possible to do this using MATLAB?

 采纳的回答

You can use sound function

7 个评论

@ Azzi Abdelmalek sir i used sound function,but i am unable to play sound for given interval of time as specified above.can u send me code for above?
amp=10
fs=20500 % sampling frequency
duration=10
freq=100
values=0:1/fs:duration;
a=amp*sin(2*pi* freq*values)
sound(a)
ramdas, it was tagged as homework. If it's homework you can't just ask someone to do it all for you. If it's not homework, say so.
@Image Analyst Sir it is not homework.i wanted to check fourier spectrum.i dont know how it was like that.
how to get amplitude. amplitude is not given? could you help me?
@Yonas Gedamu, Start a new question after you read this:
Then we'll know how to answer you precisely. Right now you have not given enough information. Not given from where? Who told you to do this? Amplitude in the spectral domain or the time domain, etc. I should know how to help you after you provide us the context - background information and any data you already have.
Small correction from Azzi's comment,
sound(a)
should be
sound(a,fs)
I don't have access to the 2014 documentation so I don't know what the inputs were for this function back then.

请先登录,再进行评论。

更多回答(2 个)

See my attached demo that creates a sound and plays it.

5 个评论

Have you tried to use the fft() function on the signal?
@Image Analyst yes sir i used fftn function.but i was getting error in the generation of two given signals for 10 sec and 5 sec respectively.
Just getting back, and I noticed you accepted Azzi's answer so I assume that this question is not applicable anymore. Glad everything is working.
Adding a small correction to the answer above. You should include fs as an argument into the sound function if you want it to play correctly. If you don't MATLAB will use the default sampling freqeuncy, which is not 20500Hz. So the last line should be
sound(a,fs)
@Bow, I don't think you were talking about my code. My code did/does use Fs and doesn't call the signal "a". (I downloaded it to check.) Regardless, I'm attaching the latest version which uses the new sound function "audioplayer()":
player = audioplayer(y, Fs);
play(player);
I'd advise anyone to use this version (attached to this comment) instead of the original version of the m-file attached to my original 6 year old answer.

请先登录,再进行评论。

can I use your demo??
If you agree , I want to ask you to explain it to me please
best regards
Zina Al Shadidi

3 个评论

Yes, you can use it. The explanations are in the comments. The code is well and heavily commented.
sorry Image Analyst
I can not find it or any comments
It's attached to my answer. I'm attaching it again here.
Open the code in MATLAB and you'll see many, many lines with a % on them (indicating comments). The comments will also be color coded in green. If you have any questions not explained well by the existing comments, write back to tell me what chunk of code is not well explained/commented.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Signal Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by