How to generate noise with particular frequency?

조회 수: 49 (최근 30일)
Nur Fauzira Saidin
Nur Fauzira Saidin 2015년 9월 21일
댓글: alon cohen 2020년 4월 12일
Hi. I want to generate a noise with a certain frequency, for example 10kHz but I do not know how to. So I just proceed with this code:
% Open standard demo sound that ships with MATLAB.
[perfectSound, freq] = audioread('music.wav');
noise = 0.1*randn(size(perfectSound));
% Play noise
soundsc(noise, freq);
% Get sampling frequency
t=0:1/freq:(length(noise)-1)/freq;
figure(1);
plot(t,noise);
title('Noise');
ylabel('Amplitude');
xlabel('Length (in Second)');
% Graph it
n=length(noise)-1;
f=0:freq/n:freq;
wavefft=abs(fft(noise));%perform Fourier Transform
figure(2);
plot(f,wavefft);%plot Fourier Transform
xlabel('Frequency in Hz');
ylabel('Magnitude');
title('Noise FFT');
Then, result that I got is:
From workspace, the noise frequency is 44100 Hz. What should I do if I want to generate noise with different frequency?
  댓글 수: 1
mobin
mobin 2016년 9월 28일
hi I think that the sampling frequency is 44100 Hz, It's the rate of your sampling. in fact your noise constitutes lots of frequencies, I think you might already have your designed noise frequency. My answer has no contradiction with the answer proposed by @Star Strider

댓글을 달려면 로그인하십시오.

채택된 답변

Star Strider
Star Strider 2015년 9월 21일
Noise (‘white’ noise) is by definition broadband, so it does not have a specific frequency. You can create a 10 kHz signal with noise, but that is as close as you can get to doing what you want.
For example:
len = 15; % Length (sec)
f = 1E+4; % Frequency (Hz)
Fs = 8192; % Sampling Frequency (Hz)
t = linspace(0, len, Fs*len); % Time Vector
signal = sin(2*pi*f*t); % Signal (10 kHz sine)
sound(signal, Fs) % Original Signal
noise = signal + 0.1*randn(size(signal));
pause(15) % Wait For First Sound To Finish Playing
sound(noise, Fs) % Noisy Signal
You could also create and use an audiplayer object with playblocking, instead of inserting a pause call.
  댓글 수: 1
alon cohen
alon cohen 2020년 4월 12일
why did you choose specificly Fs=44100 (or 48000) ?
how does changing Fs affect the real frequency i hear out of my computer?
thanks.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Signal Attributes and Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by